关于如何使用keil程序运行时,不破坏现场环境的情况下进入debug模式
首先一定要确保你当前工程和运行程序的工程一致!!!
已我现在使用的MCU,FM33G048,调试器Jlink为例。
一定要在jlink连接目标设备前先设置完毕!!
进入设置,然后按下图进行设置
最后一个图有个loadaxf.ini文件,这个文件一定要放在keil的工程文件同一个文件夹下!!!
loadaxf文件内容如下:
LOAD %L INCREMENTAL
完成上述步骤以后,你就可以保存一下项目,然后连接目标设备,点击debug了!
但是!问题来了!假如我们的设备有看门狗功能,你连接的这段时间,有可能触发看门狗。
这时候就又要说道loadaxf.ini这个文件了。keil会你debug时自动调用这个文件。而这个文件可以向写c语言一样添加代码!
目前我用的芯片是FM33G048,芯片有一个寄存器可以在debug状态下自动关闭看门狗,看下图
其他MCU也一定有的,STM32啥的都有,自己找一下。我这个寄存器地址是0x40000004
所以,我们可以在loadaxf.ini文件内加入一条语句,在启动时设置这个寄存器,去关闭看门狗!如下:
*((uint32_t *)0x40000004) = 0x03
这个时候,你点击debug以后,就会自动给你关闭看门狗,也就不用担心看门狗复位了!
再再再然后,拓展一下。如果目标设备具有低功耗功能,那你debug时进入低功耗了也会丢失连接。所以这个地方你可以设置一个变量,用这个变量来阻止mcu进入低功耗,当然,默认都是不阻止的。这个地方就不详细解释了。只是作为拓展。
上图是在工程代码中的内容
*((uint32_t *)0x20000000) = 0x01; /*Debug时不进入低功耗*/
上面是在loadaxf.ini中的内容
以上,自己体会吧。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律