原帖 | Jack | 2024-09-07 03:14 | 👍1 | 阅读约1
bug调试的checklist:
1.栈大小
2.优化等级,开发阶段建议0
3.进入死循环(全速运行程序然后按暂停,看是否进入Hardfault,然后用栈回溯,或者cmbacktrace,离线/在线捕获的场景区别见 cm_backtrace也是可以捕获hardfault)
4.打印每个相关函数的返回值
5.打印链路上的指针为空的情况,打断点到指针运行处,看指针里面是不是0x00000000
6.Freertos最好使用Freertos本身的api,比如使用queue.h文件里面的函数,task.h里面的函数,而不是CMSIS_os_V2.h里面的函数。
7.比如按键操作如果用polling的方式,它运行很快,打断点不方便观察,应该在每个状态机或if语句里放置printf(“1/r/n”);printf(“2/r/n”);等
相关笔记