提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
程序员的工作中调试/debug,修bug,改bug是占比非常重的一部分的,那有什么办法可以让我们更方便,更直观的找到程序代码中的问题所在呢?那这期就来说说keil软件自带的debug。
一、使用步骤
我们编译,download后方可进入debug(如上图),如果进不去则需要设置如下:
1、在Debug 选项中勾选Use Simulator,表示使用软件仿真;
2、设置J-LINK/J-TRACE Cortext;
3、Run to main()则表示跳过汇编代码,直接跳转到main函数开始仿真;
4、设置Dialog DLL项目为DARMSTM.DLL和Parameter项目为-pSTM32F103C8的软硬仿真。
1 2 3 4 5 6 7 8 9 10 11
1:复位
2:执行到断点处
3:停止运行
4:执行一行
5:结束当前行
6:跳出当前函数
7:汇编窗口
8:堆栈局部变量窗口,可查看局部变量的值的变化
9:观察窗口,输入想观察的变量或表达式,即可查看其值
10:查看地址存储数据
11:可查看引脚的PWM输出方波等。
二.实例bug
最近遇到一个bug就是 app端配置的数据,待设备断电再上电,该数据不会被保存,而是恢复到默认值0。首先我会考虑到该数组的数据有没有 wirte falsh,能不能read flash,经过上面的方法证明是可以的,那么问题出在哪里呢?
于是我发现原来是最后一个字节的数据并没有保存到数组中:
但是怎么解决的,看起来很简单,把数组加一个字节不行吗,还真不行,会崩溃。