一、原因
在准备玩AliOS-Things的时候,发现它里面提供的stm32的调试例子,都是用的stlink。
二、环境搭建
请参考官方文档。
三、使用Jlink调试
现在手里有一块stm32f4的开发板,型号是stm32f407,因为这里只是为了说明怎么使用Jlink进行调试,所以只需选一个相似的board,可以让程序跑起来就行,所以这里选择用AliOS-Things的stm32f401re-nucleo的bsp来演示使用jlink调试,其中AliOS-Things版本如下图所示:
3.1 创建debug配置文件
打开文件{alios-things源码}\build\site_scons\gen_debug_configs.py,然后在registry_board
里面注册新的调试board,因为这里用的是stm32f401re-nucleo,所以注册如下图所示:
[外链图片转存失败(img-zyl22W5t-1563718700145)(\image\1563711810067.png)]
然后添加调试配置,如下图所示:
图中1的地方upload
设置为false;
图中2的地方是JLinkGDBServerCL.exe
的路径,你也可以直接加入到系统路径里面;
图中3的地方是具体的设备型号,可以参考Jlink
提供的用户手册,来详细了解-if
、-device
等参数的含义。
最后是运行gen_debug_configs.py,产生新的调试配置,如图:
注意要先进入目录{alios-things源码}\build\site_scons,然后运行gen_debug_configs.py
这样在{alios-things源码}\build\site_scons\debug\目录下,会产生一个新的文件stm32f401re-nucleo.json。
3.2 调试
这里我们调试stm32f401re-nucleo的hello应用程序,首先修改需要编译程序(如下图中划红线部分),然后点击√
号进行编译,如下图所示:
再然后,打开调试视图,如下图所示,
图中1的地方就是打开调试视图;
图中2的地方打开launch.json
;
图中3的地方就是先复位设备,然后加载应用程序,这就是为什么前面upload
为什么要改成False
。
最后点击上图Debug
地方的三角,调试结果如下图所示:
三角,调试结果如下图所示: