嵌入式开发常见问题解决方法
开源Linux
共 5257字,需浏览 11分钟
·
2024-05-28 08:00
其实,嵌入式开发的难度相对来说不算大,只是嵌入式开发会遇到各种各样奇奇怪怪的问题,问题多了,很多人就觉得难。
一、问题复现
1.1 模拟复现条件
1.2 提高相关任务执行频率
1.3 增大测试样本量
二、问题定位
2.1 打印LOG
2.2 在线调试
2.3 版本回退
2.4 二分注释
二分注释即
以类似二分查找法的方式注释掉部分代码,以此判断问题是否由注释掉的这部分代码引起。
2.5 保存内核寄存器快照
三、问题分析处理
3.1 程序继续运行
3.1.1 数值异常
3.1.1.1 软件问题
|
|
|
|
|
|
-
在设计阶段应该合理分配内存资源,为栈设置合适的大小; -
将函数内较大的临时变量加”static”关键字转化为静态变量,或者使用malloc()动态分配,将其放到堆上; -
改变函数调用方式,降低调用层数。
3.1.1.2 硬件问题
3.1.2 动作异常
3.1.2.1 软件问题
3.1.2.2 硬件问题
3.2 程序崩溃
3.2.1 停止运行
3.2.1.1 软件问题
-
在外设时钟门未使能的情况下操作该外设的寄存器; -
跳转函数地址越界,通常发生在函数指针被篡改,排查方法同数值异常; -
解引用指针时出现对齐问题:
|
|
|
|
|
|
|
|
|
|
3.2.1.2 硬件问题
3.2 .2 复位
3.2.2.1 软件问题
3.2.2.2 硬件问题
四、回归测试
五、经验总结
来源地址: https://www.cnblogs.com/jozochen/p/8541714.html
评论