京山网站建设,搜索框html代码,wordpress 如何回到初始化,网站编辑是做什么大家周末好呀#xff0c;文章转自bug菌的公众号#xff0c;文章介绍步复位情况下调试bug#xff0c;希望对大家有用。1调试窘境经常有朋友在开发中遇到这样的窘境#xff0c;当单片机程序运行异常以后#xff0c;由于调试信息做得并不是很全面#xff0c;导致相应的问题场… 大家周末好呀文章转自bug菌的公众号文章介绍步复位情况下调试bug希望对大家有用。1调试窘境经常有朋友在开发中遇到这样的窘境当单片机程序运行异常以后由于调试信息做得并不是很全面导致相应的问题场景非常难分析。当时的你肯定会叹息道:要是我一直插着仿真器就好了这个bug还不是分分钟的事~每个人都想有颗“后悔药”可吃然而遇到这种场景也并非绝路。主要是因为大部分朋友插上仿真器以后调试器在启动时会发出硬件重置信号应用程序当前的状态都会丢失包括内存变量、状态等等对于一些长时间的偶发故障调试更不太友好。此时此刻有一种调试需求是朋友们非常想要的一旦程序出了问题我只需要插上仿真器目标硬件不会复位而是与我当前所调试的程序同步类似于仿真程序的时候的“全速运行”然而通过添加断点便可查看程序具体的运行状态内存等等信息让bug闻风丧胆。很多朋友可能也只是想想毕竟大家都比较专注程序中的应用逻辑而忽略了调试器这块的功能研究自己就定义这种调试方式比较难吧或者没有这种功能而不了了之。大家调试的需求也是一种用户需求相应工具的开发厂家会根据相应的需求进行开发所以该功能在大部分主流的开发工具中都已具备下面我们就验证一下这个功能的可行性2配置过程软硬件环境IDE版本: Keil V5.36.0.0 (IAR等主流IDE工具均可)调试工具版本: jlinkV9 (目前主流调试器基本都已具备)MCU型号STM32F429展示方法直接采用全局变量进行累加然后进行串口输出如果重新连接目标平台串口输出的全局变量还是顺着之前的计数进行累计便可以证明MCU没有复位而是从程序运行处开始仿真。代码实例如下1#include led.h2#include delay.h3#include key.h4#include sys.h5#include usart.h67uint32_t Cnt 0;89/******************************
10*** Function测试程序
11*** Author 公众号:最后一个bug
12******************************/
13
14int main(void)
15{
16
17 u16 times0;
18 delay_init();
19 NVIC_Configuration();
20 uart_init(9600);
21 while(1)
22 {
23 times;
24 if(times%300)
25 {
26 printf(golobal data :\r\n,Cnt);
27 }
28 delay_ms(10);
29 }
30}步骤如下1、首先编译好工程把将要实验的程序完整的烧录一次必须要保证MCU中正在运行的程序与所要仿真的工程同步这样调试器通过调试接口获取的程序运行位置信息才能与工程代码中的位置一一对应。2、去掉启动时加载应用程序并加入Loader.ini文件主要用于加载已经编译生成的.axf文件到Keil中从而进行调试。可能你该问了.axf文件是什么其实axf全称为:ARM Executable File该文件包含bin代码和大量的调试信息这些调试信息可以被调试器使用从而定位到我们的C代码。3、在调试器Setting选项中去掉Reset after Connect为了调试器链接以后不进行复位动作从而破坏现场。4、接下来Update Target Before Debugging选择需要去掉直接调试运行目标不需要勾选也就不会更新Flash。3验证结果直接在全局变量打印输出的地方放置断点程序运行到断点处正常停止。然后我们看一下输出的串口信息数据是否连续,如果打印的数据连续说明程序没有复位接着反正前正在运行的程序往下执行。通过串口接收数据时间戳可以区分断点和调试运行数据并且数据都是连续的说明此调试过程在无需硬件重置即可连接到正在运行的目标。4思考以前我了解到很多朋友觉得仿真程序是把运行程序通过加工调试信息然后全部下载到MCU然后进行仿真调试。这种想法在目前的在线调试中是不太正确的只需要知道程序运行到哪里并且查看内部信息、控制程序的运行等便可以反推定位程序当前所运行的位置和状态这也是本文开头的前提条件烧录到Flash上的固件与你即将要仿真的代码工程要保持同步否则接下来的调试当然就是牛头不对马嘴。仿真并不是什么神秘的东西你可以认为就是与MCU内部仿真模块进行通信从而完成调试信息的交互和控制。最后好了今天就跟大家分享这么多了如果你觉得有所收获一定记得点个赞~