Keil 5使用JLink连接正在运行的CPU

时间:2021-12-24 11:46:53

环境:

目标CPU:STM32F429

连接工具:JLink V9

连接方式:SWO

调试工具:Keil MDK 5.20


使用场景:

目标板正在运行,但是出BUG了,需要调试,而当前又没有在线debug,

于是就需要用调试器在不复位CPU的前提下附着到正在运行的板子上.


使用步骤:

1.首先确认你有与当前CPU运行的程序一样的源码,编译时生成了调试信息(Debug Information).

2.修改debug设置,去掉"Load Appcalition at Startup"的勾选.

3.检查JLink的设置,"Connect:Normal"表示正常连接,不复位,"Reset:Normal" 表示连接后不复位,不勾选"Reset after Conn",不勾选"Download to Flash"

4.将JLink连接至目标板的调试接口.

5.点击Keil中的调试按钮,启动调试.前面的设置正确的话CPU会停止运行,但不会复位,此时只能看汇编指令,没有C源码.

6.在Command窗口输入命令:LOAD %L INCREMENTAL(这条命令是加载当前项目的输出文件,读取调试信息,这样就可以看到C源码了).

7.现在就和正常调试一样了.


备注:

第6步还有另一种方式自动加载,在"Debug"设置对话框里填入一个"Initialization File:",

在该文件里面写上"LOAD %L INCREMENTAL",就可以了,点击"开始调试"后,Keil会自动执行该命令.


参考图片:

Keil 5使用JLink连接正在运行的CPU


Keil 5使用JLink连接正在运行的CPU