Keil不复位进入调试界面,防止破坏现场
Keil设置
- 魔法棒->Utilities(实用工具)的Update Target before Debugging取消勾选。Update Target before Debugging(调试前更新目标)顾名思义是在进入调试前不更新目标。

- 魔法棒->Debug->Load Application at Startup(开机时加载应用程序)取消勾选。Load Application at Startup用于控制进入调试模式时是否自动加载应用程序。

- 魔法棒->Debug->setting->Reset after Connect(连接后复位)取消勾选,注意要在连接调试器之前就要设置好,否则会复位单片机的。

如何可以正常调试
设置好上述选择之后,进入调试之后会发现无法打断点等操作。只需要在command框中输入LOAD %L INCREMENTAL命令。
有一个小技巧是在魔术棒->Debug->Initialization File(初始化文件)

这个文件在进入调试时会自动运行里面的命令,而且支持c语言式的命令。
我们可以把LOAD %L INCREMENTAL加入到你自己的ini文件中,c语言式的作用是例如看门狗和低功耗在调试时都可能让我们的调试失去连接,我们可以在这个文件中添加关闭他们的代码。例如看门狗的寄存器地址是0x04000000 那我们可以 这样去设置**((uint32_t*)(0x04000000)) = xxx;
