0

0

在VSCode中进行ARM嵌入式开发

P粉986688829

P粉986688829

发布时间:2026-01-09 17:40:02

|

381人浏览过

|

来源于php中文网

原创

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

在vscode中进行arm嵌入式开发

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:

睿拓智能网站系统-网上商城
睿拓智能网站系统-网上商城

睿拓智能网站系统-网上商城1.0免费版软件大小:5M运行环境:asp+access本版本是永州睿拓信息专为电子商务入门级用户开发的网上电子商城系统,拥有产品发布,新闻发布,在线下单等全部功能,并且正式商用用户可在线提供多个模板更换,可实现一般网店交易所有功能,是中小企业和个人开展个人独立电子商务商城最佳的选择,以下为详细功能介绍:1.最新产品-提供最新产品发布管理修改,和最新产品订单查看2.推荐产

下载
  • 创建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就能成为趁手的嵌入式开发环境。

相关专题

更多
json数据格式
json数据格式

JSON是一种轻量级的数据交换格式。本专题为大家带来json数据格式相关文章,帮助大家解决问题。

408

2023.08.07

json是什么
json是什么

JSON是一种轻量级的数据交换格式,具有简洁、易读、跨平台和语言的特点,JSON数据是通过键值对的方式进行组织,其中键是字符串,值可以是字符串、数值、布尔值、数组、对象或者null,在Web开发、数据交换和配置文件等方面得到广泛应用。本专题为大家提供json相关的文章、下载、课程内容,供大家免费下载体验。

532

2023.08.23

jquery怎么操作json
jquery怎么操作json

操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

309

2023.10.13

go语言处理json数据方法
go语言处理json数据方法

本专题整合了go语言中处理json数据方法,阅读专题下面的文章了解更多详细内容。

74

2025.09.10

堆和栈的区别
堆和栈的区别

堆和栈的区别:1、内存分配方式不同;2、大小不同;3、数据访问方式不同;4、数据的生命周期。本专题为大家提供堆和栈的区别的相关的文章、下载、课程内容,供大家免费下载体验。

386

2023.07.18

堆和栈区别
堆和栈区别

堆(Heap)和栈(Stack)是计算机中两种常见的内存分配机制。它们在内存管理的方式、分配方式以及使用场景上有很大的区别。本文将详细介绍堆和栈的特点、区别以及各自的使用场景。php中文网给大家带来了相关的教程以及文章欢迎大家前来学习阅读。

568

2023.08.10

堆和栈的区别
堆和栈的区别

堆和栈的区别:1、内存分配方式不同;2、大小不同;3、数据访问方式不同;4、数据的生命周期。本专题为大家提供堆和栈的区别的相关的文章、下载、课程内容,供大家免费下载体验。

386

2023.07.18

堆和栈区别
堆和栈区别

堆(Heap)和栈(Stack)是计算机中两种常见的内存分配机制。它们在内存管理的方式、分配方式以及使用场景上有很大的区别。本文将详细介绍堆和栈的特点、区别以及各自的使用场景。php中文网给大家带来了相关的教程以及文章欢迎大家前来学习阅读。

568

2023.08.10

c++主流开发框架汇总
c++主流开发框架汇总

本专题整合了c++开发框架推荐,阅读专题下面的文章了解更多详细内容。

80

2026.01.09

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 7万人学习

Git 教程
Git 教程

共21课时 | 2.6万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号