STM32 keil工程移植到Visual Studio Code环境中编译

目录

一、概述

二、GCC + Vscode搭建步骤

三、移植注意注意点

3.1 .ioc工程文件处理

3.2 修改Makefile或CMakeLists.txt

3.3 串口打印函数处理

3.4 检查并修改项目文件

3.5 配置OpenOCD或STM32CubeProgrammer(如果您打算进行调试)

3.6 测试与验证


一、概述

        GCC + Vscode 搭建 STM32 开发环境(一)- 环境部署 - 知乎 (zhihu.com)

        要在Visual Studio Code (VS Code) 中编译STM32 Keil工程,您需要安装必要的扩展和工具,并配置tasks.json和launch.json文件。

二、GCC + Vscode搭建步骤

        1. 安装Visual Studio Code。

        2. 安装适用于STM32开发的扩展,例如C/C++扩展由Microsoft提供,以及可能需要的其他扩展,如PlatformIO。

        3. 安装适用于STM32的交叉编译工具链,如ARM GCC。

        4. 在Visual Studio Code中创建一个新的工作区,并将Keil工程的源代码文件复制到工作区中。

        5. 创建一个合适的构建任务配置文件(tasks.json),用于定义编译过程。这通常包括指定编译器路径、编译选项、链接器选项等。

        6. 创建一个编译脚本(例如Makefile或CMakeLists.txt),或者使用现有的构建系统,确保它与Visual Studio Code的构建任务兼容。

        7. 配置Visual Studio Code的调试器,以便能够使用GDB或其他调试器进行调试。这可能需要创建或修改launch.json文件。

        8. 测试构建任务,确保工程能够成功编译。检查输出窗口,确保没有错误或警告。

        9. 如果需要,配置Visual Studio Code的IntelliSense功能,以获得代码自动完成和智能提示。

        10. 进行必要的调试和测试,确保代码在新环境中运行正常。

        请注意,这个过程可能需要根据您的具体工程配置和所使用的库进行调整。确保所有路径和依赖项都正确无误,以避免编译错误。

        以下是tasks.json和launch.json的基本示例:

        tasks.json (在 .vscode 文件夹中):

{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "build",
            "type": "shell",
            "command": "arm-none-eabi-gcc",
            "args": [
                "-mcpu=cortex-m4",
                "-mthumb",
                "-Wall",
                "-o",
                "build/${fileBasenameNoExtension}.elf",
                "${file}",
                "--specs=nosys.specs"
            ],
            "problemMatcher": [
                "$gcc"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            }
        }
    ]
}

        launch.json (在 .vscode 文件夹中):

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Cortex Debug",
            "cwd": "${workspaceFolder}",
            "type": "cortex-debug",
            "request": "launch",
            "servertype": "stutil",
            "device": "STM32F103C8",
            "interface": "swd",
            "runToEntryPoint": "main",
            "svdFile": "path_to_SVD_file",
            "swo": {
                "enabled": true,
                "cpuFrequency": 72000000,
                "swoFrequency": 4000000,
                "source": "probe",
                "port": 0
            }
        }
    ]
}

        注意:需要根据您的具体项目和开发板调整编译命令和参数。对于调试,您可能需要安装并配置arm-none-eabi-gdbOpenOCD或其他适合您硬件的工具。上述launch.json中的"device"和"svdFile"需要根据您的具体STM32型号进行修改。

三、移植注意注意点

3.1 .ioc工程文件处理

        在原有keil工程下找到原本CUBEMX生成的.ioc工程文件

        将.ioc文件复制一个新的文件夹下双击打开工程,将IDE选为Makefile;点击generate code生成代码

3.2 修改Makefile或CMakeLists.txt

        如果您选择使用Makefile或CMake来管理编译过程,您需要确保它们能够正确地引用您的源代码文件、库文件和编译工具链。

        Makefile或CMakeLists.txt文件应包含所有必要的编译指令、链接指令和依赖关系,以便Visual Studio Code能够正确地构建您的项目。

        生成目录框架如下,会生成makefile文件,在本目录中执行命令行make 已经可以编译通过。

3.3 串口打印函数处理

        函数处理将原本keil工程中的源文件以及头文件添加进vscode工程中,在makefile中包含这些文件,然编译看是否会出现报错,进行相关修改。Vscode工程中usart打印重定向有点区别

3.4 检查并修改项目文件

        如果您的Keil工程依赖于特定的项目设置文件(如`.uvprojx`),您可能需要将这些设置转换为Visual Studio Code能够理解的格式。这通常意味着您需要手动配置编译器选项、包含路径、宏定义等。

        特别注意那些与硬件平台(如STM32系列)紧密相关的设置,确保它们在新的环境中得到正确配置。

3.5 配置OpenOCD或STM32CubeProgrammer(如果您打算进行调试)

        如果您打算在Visual Studio Code中进行调试,您可能需要安装和配置OpenOCD(Open On-Chip Debugger)或STM32CubeProgrammer等调试工具。

        这些工具允许您通过JTAG或SWD接口与STM32芯片通信,进行断点设置、变量查看等调试操作。3.5

3.6 测试与验证

        在将工程完全迁移到Visual Studio Code之后,进行全面的测试是非常重要的。这包括单元测试、集成测试和性能测试等。确保代码在新环境中运行稳定,并且所有功能都按预期工作。

        如果您遇到任何问题或难题,不要犹豫寻求社区的帮助。有许多在线论坛、聊天室和邮件列表等资源,可以提供关于STM32、Visual Studio Code和相关工具的帮助和支持。

        请注意,这个过程可能需要一些时间和耐心,特别是如果您是第一次尝试将Keil工程移植到Visual Studio Code中。但是,一旦您熟悉了整个过程,您就会发现Visual Studio Code是一个功能强大且灵活的IDE,可以为您的STM32开发提供许多便利。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大雨淅淅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值