天天看点

使用Jlink调试基于AliOS-Things的stm32使用Jlink调试基于AliOS-Things的stm32

使用Jlink调试基于AliOS-Things的stm32

一、原因

​ 在准备玩AliOS-Things的时候,发现它里面提供的stm32的调试例子,都是用的stlink。

二、环境搭建

​ 请参考官方文档。

三、使用Jlink调试

​ 现在手里有一块stm32f4的开发板,型号是stm32f407,因为这里只是为了说明怎么使用Jlink进行调试,所以只需选一个相似的board,可以让程序跑起来就行,所以这里选择用AliOS-Things的stm32f401re-nucleo的bsp来演示使用jlink调试,其中AliOS-Things版本如下图所示:

使用Jlink调试基于AliOS-Things的stm32使用Jlink调试基于AliOS-Things的stm32

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

等参数的含义。

使用Jlink调试基于AliOS-Things的stm32使用Jlink调试基于AliOS-Things的stm32

​ 最后是运行gen_debug_configs.py,产生新的调试配置,如图:

​ 注意要先进入目录{alios-things源码}\build\site_scons,然后运行gen_debug_configs.py

使用Jlink调试基于AliOS-Things的stm32使用Jlink调试基于AliOS-Things的stm32

​ 这样在{alios-things源码}\build\site_scons\debug\目录下,会产生一个新的文件stm32f401re-nucleo.json。

3.2 调试

​ 这里我们调试stm32f401re-nucleo的hello应用程序,首先修改需要编译程序(如下图中划红线部分),然后点击

号进行编译,如下图所示:

使用Jlink调试基于AliOS-Things的stm32使用Jlink调试基于AliOS-Things的stm32

再然后,打开调试视图,如下图所示,

​ 图中1的地方就是打开调试视图;

​ 图中2的地方打开

launch.json

​ 图中3的地方就是先复位设备,然后加载应用程序,这就是为什么前面

upload

为什么要改成

False

使用Jlink调试基于AliOS-Things的stm32使用Jlink调试基于AliOS-Things的stm32

最后点击上图

Debug

地方的三角,调试结果如下图所示:

使用Jlink调试基于AliOS-Things的stm32使用Jlink调试基于AliOS-Things的stm32

三角,调试结果如下图所示:

使用Jlink调试基于AliOS-Things的stm32使用Jlink调试基于AliOS-Things的stm32

继续阅读