目录
3.5 配置OpenOCD或STM32CubeProgrammer(如果您打算进行调试)
一、概述
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-gdb
和OpenOCD
或其他适合您硬件的工具。上述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开发提供许多便利。