调试
在单片机开发中,调试是必不可少的,在寻找bug或者理解单片机运行流程的时候
格外好用。
keil的调试还真是让人喜悦,非常好用
开启调试
1.将程序下载到单片机中
2. 点击下列图片中图标,开启调试
3. 等待程序下载并进入调试界面
4. 然后开启调试旅程
调试无非就是打断点,然后一步一步运行。查看关键位置的值,开是否符合规定
或者执行流程
调试界面介绍
调试界面还是很友好的,可以在源码框左边打断点,在菜单栏中一步步执行并
切换到更加关键的串口。
菜单栏介绍
左边框依次是:
单步跳入:如调用函数,跳入函数
单步跳过:跳过函数,不跳入
单步跳出:跳出当前函数
跳至当前游标:没用过
后面框中的则是在调试中所用到的一些功能框,比如显示调用栈等等。
后面仅介绍几个常用的,你可以点开看看出现什么框。
汇编框
汇编框的有无,调试的时候懂点汇编是真的爽,不会也没啥事。
寄存器框
顾名思义就是控制寄存器框的有无。
watch 框(尤为重要)
该框可以用于观测式子的值,在调试的时候那真是如鱼得水,只需要输入表达式
等该式子有值或者值改变的时候,说明运行到了
外设框
该框可以显示各个外设寄存器的值,在调试的时候,通过关泽外设寄存器的值变化,
可以观测树bug所在位置或者执行流程。比如
nrf52832的radio外设当中断发生的时候,查看外设对应寄存器变化,就可以
发现发生了什么中断
内存框
这个估计大多数都用不到,因为这个涉及到的太底层啦。哈哈哈,很容易一头雾水
调试技巧
- 首先肯定是断点要打好,一般打到所调用函数处即可
- 然后是单步跳入、跳出的使用喽
- 最后是配合上面几个框:寄存器、watch、外设框等等的值的变化,看是定位bug或者执行流程。其中最主要的还是watch哪个框。