在ubuntu下使用CMake及VSCode对LoRaMac-node代码进行编译调试
准备工作
下载代码LoRaMac-node
阅读LoRaMac-node目录下的doc文件夹中的development-environment.md
开工
安装所需环境
CMaka( >= 3.6),
sudo apt install CMake
若ubuntu版本为16.04及以下,请参照development-environment.md中提示进行安装高版本的CMake
GNU ARM-Toolchain
Step1: Inside Ubuntu, open a terminal and input
sudo add-apt-repository ppa:team-gcc-arm-embedded/ppa
Step2: Continue to input
sudo apt-get update
Step3: Continue to input to install toolchain
sudo apt-get install gcc-arm-embedded
若提示已安装,请先删除原先安装的软件
sudo apt-get remove gcc-arm-none-eabi
安装openocd
sudo apt-get install openocd
安装VSCode
- C/C++ - CMake - CMake Tools - Native Debug
开始操作
- 打开VSCode,将LoRaMac-node文件夹导入到VSCode中
- 会让选择kit,选择刚才安装的gcc-arm-embedded,正常安装目录在/usr/bin
- 点击VSCODE中的如下图标,在此栏的上方图标的三角和锤子分别为config(生成makefile文件),make(生成可执行文件)
- 点击之后,会在.vscode目录下生成launch.json和settings.json文件,其中setting.json中保存的式CMake的配置,修改其中的内容,可以修改生成的makefile,因为我手边没有stm32l1的芯片,所以在这,我修改成了MoteII和ping-pong(发现LoRaMac程序会提示FLASH不够),
修改之后点击CMake下的configure和build,会重新生成可执行文件。
至此,文件编译成功,接下来进行调试
此处我先说一下openocd命令(我也不怎么了解,看development-environment.md现学的)
openocd -f interface/jlink.cfg -c "transport select swd" -f target/stm32l0.cfg
-f 用于选择cfg文件,-c用于执行command
此命令会选用jlink.cfg 按照swd接口的方式去操作STM32L0的芯片
launch.json中有openocd的命令,可以修改其中的命林对其做修改适配我们的烧录器(因为我用的是stlink-v2),
8.直接按F5,启动调试
正常的话,启动之后就会跳转到main函数了