Keil MDK 无法设置断点【worldsing】

要解决一个问题就怕不知道怎么搜索,或是别人没有遇到过:

同样碰到Keil MDK Debug调试无法设置断点问题,首先来问百度,GOOGLE,一下是我搜索到的结果:

1、keil 不能设置断点,每次点调试都出现以下对话框, 有几个按钮不能点。

image

解决办法:购买正版Keil或够找破解包,worldsing笔记里有(仅供学习用),商业请支持正版;

2、软件能Debug, 硬件无法Debug, 硬件仿真Debug时提示:

**JLink Warning: T-bit of XPSR is 0 but should be 1. Changed to 1.

解决办法:仿真器有问题,Keil 与仿真器驱动不匹配,找到KEIL的安装目录里的Segger文件夹,里面有4个主要的文件:

JL2CM3.dll
JLink.exe
JLinkARM.dll
JLTAgdi.dll

把这几个DLL换成老版本的。

3、部分C代码行不能设置断点,如第4行无法设置断点

image

解决办法:修改C/C++编译选项,默认是Leve 0(O0) 即不做优化。

image

4、无法软件仿真, 无法运行到main()

image

解决办法:Target Options –> Output –> Debug information 勾上

image 

5、在Keil 在RAM中无法设置断点

解决办法:STM32 在MDK Keil下,RAM中进行调试,可设置断点

6、Keil调试时提示:

*** error 65: access violation at 0x40021008 : no 'write' permission

*** error 65: access violation at 0x40021004 : no 'read' permission

image

解决办法:选择的CPU型号与代码不符合,Target Options –> Device换个大容量型号的或该代码

7、Keil Debug时部分C文件无法设置断点,代码能正在Flash运行,这个是笔者遇到的问题,没有

搜到解决答案,试过以上6中方法 都没能得到解决。如下图所示60的代码能正常运行,但就是不能

打断点,也没有被优化。

image

解决办法:查看不能打断点的C文件是否含有内嵌汇编代码或是否含有汇编C函数,把汇编代码提出来,调试

完毕后再合并成原来的文件。

image

原文地址:https://www.cnblogs.com/worldsing/p/3412323.html