环境:
目标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会自动执行该命令.
参考图片: