要解決一個問題就怕不知道怎么搜索,或是別人沒有遇到過:
同樣碰到Keil MDK Debug調試無法設置斷點問題,首先來問百度,GOOGLE,一下是我搜索到的結果:
1、keil 不能設置斷點,每次點調試都出現以下對話框, 有幾個按鈕不能點。
解決辦法:購買正版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行無法設置斷點
解決辦法:修改C/C++編譯選項,默認是Leve 0(O0) 即不做優化。
4、無法軟件仿真, 無法運行到main()
解決辦法:Target Options –> Output –> Debug information 勾上
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
解決辦法:選擇的CPU型號與代碼不符合,Target Options –> Device換個大容量型號的或該代碼
7、Keil Debug時部分C文件無法設置斷點,代碼能正在Flash運行,這個是筆者遇到的問題,沒有
搜到解決答案,試過以上6中方法 都沒能得到解決。如下圖所示60的代碼能正常運行,但就是不能
打斷點,也沒有被優化。
解決辦法:查看不能打斷點的C文件是否含有內嵌匯編代碼或是否含有匯編C函數,把匯編代碼提出來,調試
完畢后再合並成原來的文件。








