VSCode搭建stm32开发环境
MCU免费开发环境
⼀般芯⽚⼚家会提供各种开发IDE⽅案,通常其中就包括其⾃家的集成IDE,如:
意法半导体
NXP Codewarrior
TI CCS
另外也可以⽤eclipse、VS studio、VS code等搭建开发环境
VS Code 搭建stm32开发环境
1.搭建准备
程序安装
1.下载并安装
2.下载并安装
⽀持最新的HAL库,⼯程代码配置与⽣成⼯具,⽀持⽣成IAR、Keil、STM32CubeIDE、Makefile等⼯程,这⾥使⽤其⽣成的Makefile⼯程。
3.下载并安装
该⼯具集成有精简版的mingw,这⾥我们使⽤其bash终端和版本管理均⾮常有⽤。
4.下载并安装
编译器,GUN的arm的通⽤交叉编译链⼯具,基本上常⽤的arm处理器均⽀持;
安装时勾选设置全局环境变量以便于配置;
使⽤离线免安装包时,解压到合适的位置,在系统环境变量添加\bin⽬录,运⾏CMD或者Windows PowerShell,测试⼀下是否可⽤。命令:arm-none-eabi-gcc -v
5.下载并安装
MinGW 的全称是:Minimalist GNU on Windows 。它实际上是将经典的开源 C语⾔编译器 GCC 移植到
了 Windows 平台下,并且包含了 Win32API 和MSYS,因此可以将源代码编译⽣成 Windows 下的可执⾏程序,⼜能如同在 Linux 平台下时,使⽤⼀些 Windows 不具备的开发⼯具。
⼀句话来概括:MinGW 就是 GCC 的 Windows 版本。
其安装⼀般为在线安装,按⽹上步骤即可。
这⾥我们主要需要使⽤其 mingw32-make 功能.
离线安装
如果由于环境不能在线安装,可安装其离线安装包
下载压缩⽂件并解压到合适的位置,在系统环境变量添加\bin⽬录,运⾏CMD或者Windows PowerShell,测试⼀下是否可⽤。命令:gcc -v
同时为⽅便使⽤,复制 ⼀份为 ,这样后⾯编译程序使⽤ make 即可。
6.安装mysy2
shell 命令⾏开发环境,可⽤于替代 git-bash、cmd、power shell,功能相对更完善。
安装之后,在vscode中配置 settings.json--"terminal.integrated.shell.windows": "C:\msys64\d", 详见下节。
7.下载并安装(可选)
8.Jlink、ST-Link驱动
9.STM32CubeProg ⽤于stm32下载程序
VS Code插件搭建所需
安装开发所需基础插件(插件在 vs code 拓展栏搜索名称即可)
C/C++(必要)
增加了对C / C ++的语⾔⽀持,语法智能感知、加亮及调试功能
GBKtoUTF8
cortex-debug
2.⼯程⽰例
2.1 使⽤Cube-MX ⽣成Makefile⼯程
1.芯⽚选型、HAL版本、引脚配置、时钟树配置等,可参照下⾯博客
2.⼯程管理中,选择⽣成makefile⼯程,然后点击 generate code即可
2.2 vs code配置
默认情况下,⼯程下是不含.vscode的⽂件夹的,修改编辑⽤户或⼯程settings.json⽂件时会⾃动创建;
user--settings.json⽂件参考修改如下(包含配置终端和⼀些格式等设置):
{
"C_Cpp.updateChannel": "Insiders",
"http.proxySupport": "off",
"workbench.iconTheme": "vscode-icons", //取消左侧⾃动聚焦
"explorer.autoReveal": false,
"[c]": {
"editor.defaultFormatter": "ms-vscode.cpptools" //默认格式化⼯具
},
"[h]": {
"editor.defaultFormatter": "ms-vscode.cpptools" //默认格式化⼯具
},
"editor.formatOnSave": true, //⽂件保存时⾃动格式化
"editor.formatOnPaste": true, //代码粘贴时⾃动格式化
"editor.formatOnType": true, //⾃动格式化键⼊⾏
// "terminal.integrated.shell.windows": "D:\\Program Files\\Git\\",
"terminal.integrated.shell.windows": "C:\\msys64\\d",
"terminal.integrated.shellArgs.windows": [
"-defterm",
"-mingw64",
"-no-start",
"-here",
"-use-full-path" //使⽤系统环境变量
],
"al.windowsExec": "D:\\Program Files\\Git\\"
}
或者在菜单中设置 File--Preferences--Settings--Features--Terminal
2.3 ⼯程makefile
1.实际开发需要熟悉 makefile
⼯程后⾯添加的⽂件程序需要由makefile来组织编译;
打开⼯程makefile,编译⼯具指定,默认 PREFIX = arm-none-eabi- ,如果已设置环境变量则⽆需修改,否则需添加(实际绝对路径路径) GCC_PATH = D:\gcc-arm-none-eabi-5_4-2016q3-20160926-win32\bin
PREFIX = arm-none-eabi-
# The gcc compiler bin path can be either defined in make command via GCC_PATH variable (> make GCC_PATH=xxx)
# either it can be added to the PATH environment variable.
ifdef GCC_PATH
CC = $(GCC_PATH)/$(PREFIX)gcc
AS = $(GCC_PATH)/$(PREFIX)gcc -x assembler-with-cpp
CP = $(GCC_PATH)/$(PREFIX)objcopy
SZ = $(GCC_PATH)/$(PREFIX)size
else
CC = $(PREFIX)gcc
AS = $(PREFIX)gcc -x assembler-with-cpp
CP = $(PREFIX)objcopy
SZ = $(PREFIX)size
endif
HEX = $(CP) -O ihex
BIN = $(CP) -O binary -S
2.4 ⼯程 .vscode json配置(4个)
1.c_cpp_properties.json
主要有添加include路径,编译器路径,宏定义等,设置好后索引、编译就跟keil⼀样⽅便;
打开⼯程 .vscode 下⾯的 c_cpp_properties.json 配置脚本,这个json不允许有注释,如果你⾃⼰编写了头⽂件⼜不在workspaceFolder下,路径也要加到includePath和browse⾥。设置如下:
{
"configurations": [
{
"name": "Win32",
"includePath": [
"${workspaceFolder}/**",
"${workspaceFolder}Drivers/STM32F4xx_HAL_Driver/Inc",
"${workspaceFolder}Drivers/STM32F4xx_HAL_Driver/Inc/Legacy",
"${workspaceFolder}Drivers/CMSIS/Device/ST/STM32F4xx/Include",
"${workspaceFolder}Drivers/CMSIS/Include",
"${workspaceFolder}Drivers/CMSIS/Include",
"D:/gcc-arm-none-eabi-5_4-2016q3-20160926-win32/arm-none-eabi/include"
],
"defines": [
"_DEBUG",
"UNICODE",
"_UNICODE",
"USE_HAL_DRIVER",
"STM32F407xx"
],
"compilerPath": "D:\\gcc-arm-none-eabi-5_4-2016q3-20160926-win32\\bin\\",
"cStandard": "c11",
"cppStandard": "c++17",
"intelliSenseMode": "gcc-x86"
}
],
"version": 4
}
2.launch.json
所需要调试的⽂件的路径、调试时的CWD(⼯作路径)、调试器的路径及⼀些调试参数(程序启动参数等);
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: go.microsoft/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"cwd": "${workspaceRoot}",
"executable": "./bin/HAL_Test.elf",
"name": "stm32 Debug",
"request": "launch",
"type": "cortex-debug",
"servertype": "stutil",
"device": "STM32F407ZG",
"preLaunchTask": "编译并下载",
"postDebugTask": "复位设备"
}
]
}
3.tasks.json
{
// See go.microsoft/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"label": "编译",
"type": "shell",
"command": "make -j6",
"problemMatcher": [],
"group": {
"kind": "build",
"isDefault": true
}
},
{
"label": "编译并下载",
"type": "shell",
"command": "make -j6 && make update",
"problemMatcher": []
},c语言编译器ide代码编辑
{
"label": "重新编译",
"type": "shell",
"command": "make clean && make -j6",
"problemMatcher": []
},
{
"label": "复位设备",
"type": "shell",
"command": "STM32_Programmer_CLI -c port=SWD -hardRst",
"problemMatcher": []
}
]
}
4.⼯程下打开终端,输⼊ make
⼯程编程会⽣成 .bin ⽂件,这个就是我们要烧录的⽬标⽂件。
5.使⽤ Jlink 的 Jflash ⼯具烧录
6.使⽤ JLink GDB server 调试,调试⽅法如同Linux下⾯的GDB,主要使⽤命令⾏
3. vs code 配置
1.取消⽂件⾃动定位到侧边栏
当我在右侧点击某个⽂件时,左侧会⾃动定位到该⽂件所在位置,这点特别烦,尤其在项⽬⽬录很长的时候。
在⽤户 settings.json 中修改
"explorer.autoReveal": false
2.设置默认终端
File--Preferences--Settings-- 中打开⽤户 setting.json⽂件,修改如下:
"terminal.integrated.shell.windows": "D:\\Program Files\\Git\\bin\\",
"al.windowsExec": "D:\\Program Files\\Git\\bin\\",
2.使⽤插件推荐(根据需求选择)
插件功能
C/C++  C / C ++的语⾔⽀持,语法智能感知、加亮及调试功能,当然需要系统安装arm-none-eabi-gcc编译器Include Autocomplete头⽂件⾃动匹配
Code Runner代码⼀键运⾏
Cortex Debug提供jlink、stlink等调试接⼝功能
filesize显⽰⽂件⼤⼩
Python Python的语⾔⽀持,语法智能感知、加亮及调试功能,需要系统安装python
Git History查看版本历史及⽐较
GitLens代码中显⽰提交信息、⽇志查看⽅便,同时提供操作图标
GBKtoUTF8
ARM arm汇编语⾔⽀持
Bracket Pair Colorizer彩虹花括号,程序逻辑范围查看⽅便
DeviceTree设备树语法⽀持
vscode-icons⽂件图标,可快速查看⽂件类型
PlatformIO IDE

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。