文章目录
写在前面
还记得你上一次打开嵌入式集成开发环境(例如 KEIL、IAR)是什么时候吗?随着开源软件的流行,用到 KEIL、IAR 此类付费 IDE 的机会是越来越少了。写代码用“现代化”的代码编辑器、代码编译用 GCC、调试代码用 GDB,这些工具几乎都是可以跨平台使用,当迁移开发环境时,重新学习成本也是相对小很多。
Visual Studio Code 是由微软开发,同时支持 Windows 、 Linux 和 macOS 等操作系统且开放源代码的代码编辑器,支持测试,并内置了 Git 版本控制功能,同时也具有开发环境功能,例如代码补全、代码片段和代码重构等。[维基百科]
如果搭配一些扩展工具以及 GNU ARM 嵌入式工具链,VS Code 可以完全替代其他嵌入式 IDE。本文将介绍如何基于 Visual Studio Code 来搭建嵌入式开发环境 ,以实现快速开发调试嵌入式应用。
硬件平台
- 本文使用 nRF52840-MDK 开发板,其他开发板类似
- Windows/macOS/Linux PC
安装 Visual Studio Code
- 根据使用的操作系统,直接从 Visual Studio Code 官网下载安装最新版本
- 打开 VS Code,点击 “Extensions” 图标
- 搜索 C/C++ 插件(由 Microsoft 提供),点击安装
安装 pyOCD
pyOCD 是使用 Python 实现的、开源、跨平台的调试工具,配合基于 CMSIS-DAP 的硬件调试器,可以下载调试市面上绝大部分 Arm Cortex-M 微控制器。没错,你可以简单地认为这就是开源版的 J-Link 软件!
最新稳定版本的 pyOCD 可以通过 pip
安装,命令如下:
pip install -U pyocd
安装 GNU Arm Embedded Toolchain
你还需要用 GCC 编译、GDB 调试,GNU Arm Embedded Toolchain 是目前使用比较广泛的嵌入式工具链,该工具链已经由 Arm 官方维护,比较稳定可靠了。
根据所使用的操作系统,从官网下载适当版本并安装。安装完成后,你需要将工具链的 bin
目录添加到系统环境变量中。
# 将工具链 bin 目录添加到系统环境变量中
export PATH="<path to install directory>/gcc-arm-none-eabi-6-2017-q2-update/bin:${PATH}"
然后验证是否能够正常使用:
arm-none-eabi-gcc --version
配置调试功能
Visual Studio Code 使用 launch.json
文件来对调试功能进行配置,可以参考以下步骤:
-
打开项目工程目录
-
在项目根目录下找到
.vscode/launch.json
文件,没有的话则自己新建。在该文件中输入以下配置:
{
"version": "0.2.0",
"configurations": [
{
"name": "C++ Launch",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceRoot}/armgcc/_build/nrf52840_xxaa.out",
"args": [],
"stopAtEntry"