2. 在VS Code上使用GCC开发嵌入式应用
资源总汇
这篇文章基于nrf52832介绍如何在VS Code上面使用GCC进行单片机的编译、烧录和调试,其实很多单片机都可以采用类似的方式进行开发,希望读者可以触类旁通。
在开始之前,请先前往https://code.visualstudio.com/Download下载适合你电脑操作系统的VS Code版本,并进行安装。
2.1. 编译
安装工具链
安装CMake。
下载适合你操作系统的Arm GUN 工具链,然后解压到你平时安装软件的地方。
如:/usr/local/gcc-arm-none-eabi-9-2019-q4-major
下载配置nRF5 SDK
下载nRF5 SDK并解压,作为演示这里解压到/home/jiy/nRF5_SDK_16.0.0_98a08e2
目录,实际操作时请修改为实际路径。
打开/home/jiy/nRF5_SDK_16.0.0_98a08e2/components/toolchain/gcc/Makefile.posix
文件,并且更改GNU_INSTALL_ROOT
为GNU工具链所在位置:(注意bin和后面的斜杆不要漏了!)
例如:
GNU_INSTALL_ROOT ?= /usr/local/gcc-arm-none-eabi-9-2019-q4-major/bin/
GNU_VERSION ?= 7.3.1
GNU_PREFIX ?= arm-none-eabi
编译测试
使用命令行工具进入/home/jiy/nRF5_SDK_16.0.0_98a08e2/examples/peripheral/blinky/pca10040/s132/armgcc
目录,这是官方提供的一个闪灯的小例子,在SDK的examples
目录下还有更加全面的SDK使用案例。
执行make
命令,你可以看到程序开始编译。
cd /home/jiy/nRF5_SDK_16.0.0_98a08e2/examples/peripheral/blinky/pca10040/s132/armgcc
make
2.2. 烧录
下载安装nRF Command Line Tools,这个工具用于烧录擦除nRF芯片的nrfjprog
、合并hex文件的mergehex
命令,Windows的安装文件中还附带了SEGGER J-Link software。
下面简单介绍烧录命令,详细文档请输入nrfjprog --help
命令查看帮助信息:
# 擦除flash
nrfjprog -f nrf52 --eraseall
# 烧录程序并预先擦除所占位置flash扇区
nrfjprog -f nrf52 --program _build/nrf52832_xxaa.hex --sectorerase
# 重启芯片
nrfjprog -f nrf52 --reset
如果你有nrf52832的开发板,在烧录程序并重启之后,就可以看到led闪起来了。
2.3. 调试
安装SEGGER J-Link software
如果你是Windows用户,在烧录步骤安装nRF Command Line Tools
的时候已经安装过SEGGER J-Link software了,请前往安装目录找到相应的路径。
如果你是Linux或者Mac OS用户,请下载安装SEGGER J-Link software,并找到路径。
安装VS Code插件
在VS Code中搜索插件C/C++ Extension Pack
并点击安装,这是VS Code的C语言开发扩展,居家旅行必备。
同样的,在VS Code搜索安装Cortex-Debug
插件,这是一款强大的Arm调试插件。
项目配置
使用VS Code打开/home/jiy/nRF5_SDK_16.0.0_98a08e2/examples/peripheral/blinky
目录,还是刚刚的点灯例子。
创建.vscode
目录,然后在里面创建settings.json
文件,配置调试信息:
{
"cortex-debug.armToolchainPath": "/usr/local/gcc-arm-none-eabi-9-2019-q4-major/bin/",
"cortex-debug.armToolchainPrefix": "arm-none-eabi",
"cortex-debug.JLinkGDBServerPath": "/Applications/SEGGER/JLink/JLinkGDBServer"
}
请把cortex-debug.armToolchainPath
和cortex-debug.JLinkGDBServerPath
对应的内容修改为你电脑上实际的工具链
和JLinkGDBServer
的路径。
继续创建launch.json
文件,写入以下内容:
{
"version": "0.2.0",
"configurations": [
{
"type": "cortex-debug",
"request": "launch",
"servertype": "jlink",
"cwd": "${workspaceRoot}",
"executable": "pca10040/s132/armgcc/_build/nrf52832_xxaa.out",
"name": "Cortex Debug",
"device": "nrf52",
"interface": "swd"
}
]
}
选择VS Code左侧的Debug菜单点击启动按钮,不出意外的话你就可以使用Cortex-Debug
插件和GDB
工具开始调试了。