码迷,mamicode.com
首页 > 其他好文 > 详细

Keil下Debug随笔

时间:2018-04-30 19:58:31      阅读:136      评论:0      收藏:0      [点我收藏+]

标签:地方   硬件   自动   进入   去掉   介绍   解决办法   更新   覆盖   

       很多时候我们需要通过硬件仿真来调试程序,在仿真时有时候会遇到这样的情况,那就是选择全速运行时,我们的全局变量无法随时更新,而在那设一个断点后发现值是变化的,那么为什么会出现这种情况呢,那就是可能是我们在编译器上没有选择实时更新的这个选项!

  解决办法:在Debug模式下,点击菜单栏下的View,在下面有一个Periodic Window update 点一下,选定一下就行了!

还有很多时候,我们会发现有些很难复现,出现一次bug的时候通常重新进入debug模式时,会自动将先前的程序覆盖掉,并且会复位至最先状态,这样很难发现出现bug时整个系统运行的状态,那么在这里介绍一种通过改变编译器配置的方式,不下载程序,不复位然后查看程序运行状态!

第一步将下面两张图中的红框的勾选去掉!

  技术分享图片

                                 图一

技术分享图片

                                                       图二

第二步:将下图第一个红框勾选去掉,在第二个红框中选择配置文件,配置文件需自己设置,文件后缀格式为.ini

技术分享图片

                                                             图三

配置成这样:同时config.ini中的配置为:LOAD %L INCREMENTAL

技术分享图片

                                                               图四

技术分享图片

                                                             图五

 

       这样配置好以后就可以直接进MCU看各个寄存器状态了!这样等MCU运行一段时间后进入Debug模式你会发现程序运行指针已经不在

main那了,而是指在程序运行的地方!且放在watch1中查看的全局变量值也会更新至当前的值!

技术分享图片

 

Keil下Debug随笔

标签:地方   硬件   自动   进入   去掉   介绍   解决办法   更新   覆盖   

原文地址:https://www.cnblogs.com/wangshucai/p/8974205.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!