Keil 5使用JLink直接调试正在运行的CPU
2016-09-08 00:00
246 查看
环境:
目标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会自动执行该命令.
参考图片:
![](http://static.oschina.net/uploads/space/2016/0908/095021_H7BE_2685107.png)
目标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会自动执行该命令.
参考图片:
![](http://static.oschina.net/uploads/space/2016/0908/095021_H7BE_2685107.png)
![](http://static.oschina.net/uploads/space/2016/0908/095048_DYFT_2685107.png)
相关文章推荐
- Keil 5使用JLink连接正在运行的CPU
- 在Keil中使用JLink调试S5PV210配置方法
- 使用keil的调试模式查看代码运行时间(以51单片机代码为例)
- TQ2440 在Keil V5 MDK下创建工程 并 使用Jlink 在RAM调试 方法
- arm:jlink调试和直接烧写运行的不同 [mdk s3c2440]
- 关于 通过jlink使用jtag(或swd)下载程序成功后,keil4 uversion停止运行 的解决方法
- KEIL下使用Jlink调试STM32 核心模块开发板
- Keil 5 使用 Jlink 进行调试出现错误: No Algorithm found for:错误的解决过程
- 使用gdb调试正在运行的程序
- Keil 使用 Jlink 进行调试出现错误: No Algorithm found for: 08000000H - 08001557H错误的解决
- synchronized 关键字,代表这个方法加锁,相当于不管哪一个线程A每次运行到这个法时,都要检查有没有其它正在用这个方法的线程B(或者C D等),有的话要等正在使用这个方法的线程B(或者C D)运行完这个方法后再运行此线程A,没有的话,直接运行 它包
- 如何使用String中的Split方法来按照“分隔符”来分解字符串,可以直接运行
- C#实现测量程序运行时间及cpu使用时间
- C#测量程序运行时间及cpu使用时间
- 深圳远峰YFDVK-255-I开发板使用ADS调试时的CPU初始化脚本
- C#实现测量程序运行时间及cpu使用时间(转载)
- 查看正在运行的程序对cpu的占有率
- C#测量程序运行时间及cpu使用时间(转)
- C#实现测量程序运行时间及cpu使用时间
- 关于Vs 2005 中出现编译通过,但运行时出现“未使用调试信息生成二进制文件”的问题