欢迎您访问新疆栾骏商贸有限公司,公司主营电子五金轴承产品批发业务!
全国咨询热线: 400-8878-609

新闻资讯

技术百科

在VSCode中进行ARM嵌入式开发

作者:P粉9866888292026-01-09 00:00:00
VSCode可通过配置插件和工具链胜任ARM嵌入式开发全流程。需安装ARM GCC、OpenOCD、CMake;配置C/C++、CMake Tools等插件;编写启动文件、链接脚本与裸机代码;用OpenOCD+GDB实现调试烧录。

VSCode本身不是嵌入式IDE,但通过合理配置插件和工具链,完全可以胜任ARM嵌入式开发——从代码编辑、编译、调试到烧录,整套流程都能高效完成。

安装必要工具链

ARM嵌入式开发依赖几个核心组件,缺一不可:

  • ARM GCC交叉编译器:推荐使用ARM GNU Toolchain (arm-none-eabi-gcc),官网下载并解压后把bin/目录加入系统PATH
  • OpenOCD:用于JTAG/SWD调试和烧录,Windows用户可直接下载预编译版,Linux/macOS建议用包管理器安装(如sudo apt install openocd
  • CMake(可选但推荐):现代嵌入式项目多用CMake管理构建,VSCode配合CMake Tools插件体验更佳

配置VSCode核心插件

以下插件是ARM开发的“刚需”,安装后重启VSCode:

  • C/C++(Microsoft官方):提供智能提示、跳转、宏展开等,需在c_cpp_properties.json中正确设置compilerPath指向arm-none-eabi-gcc
  • CMake Tools:自动识别CMakeLists.txt,支持选择Kit(即ARM工具链)、配置、构建、调试一键触发
  • Native DebugCppvsdbg(Windows):配合OpenOCD实现GDB调试;更推荐用VSCode内置的launch.json + gdb方式,稳定性更好
  • STM32 for VSCode(针对STM32用户):提供芯片型号补全、外设寄存器查看、一键生成初始化代码等功能

搭建最小可运行项目

以裸机LED闪烁为例,不依赖HAL或CubeMX:

  • 创建startup.s启动文件(含复位向量、栈指针初始化、调用main
  • 编写main.c,操作寄存器控制GPIO(例如STM32F103需使能APB2时钟、配置GPIOC模式)
  • 准备STM32F103C8T6.ld链接脚本,明确定义FLASH/RAM区域、堆栈位置
  • 用CMakeLists.txt指定目标为elf,链接脚本、启动文件、编译选项(如-mcpu=cortex-m3 -mthumb -ffreestanding

配置好后,按Ctrl+Shift+P → CMake: Build即可生成.elf.hex文件。

调试与烧录实战

调试前确保硬件连接正常(ST-Link/V2或J-Link),然后:

  • 终端启动OpenOCD:openocd -f interface/stlink-v2.cfg -f target/stm32f1x.cfg
  • .vscode/launch.json中配置GDB调试器,miDebuggerPath指向arm-none-eabi-gdbmiDebuggerServerAddress设为localhost:3333
  • 设置断点、按F5启动调试:可单步汇编、查看寄存器、内存、外设地址(如0x40011000对应GPIOC_BSRR)
  • 烧录只需执行arm-none-eabi-gdb your_project.elf -ex "target remote :3333" -ex "load" -ex "quit",或集成进VSCode任务

基本上就这些。关键不在装多少插件,而在理解工具链各环节如何衔接——编译器生成目标码、链接器布局内存、OpenOCD建立通信、GDB注入指令。理清这条链,VSCode就能成为趁手的嵌入式开发环境。