嵌入式系统故障排查与后续学习建议
故障排查实例分析
在嵌入式系统开发中,遇到系统故障是常见的情况。下面通过一个具体的故障排查过程,来详细介绍如何定位和解决问题。
当系统出现问题时,我们首先发现可能存在 NVIC 优先级位配置错误的情况。通过查看代码中第 760 行以上的详细注释,推测可能是这方面的问题。同时, ulMaxPROGROUPValue 的最大可接受值为 1,这是通过悬停在所选变量上查看得到的。
接下来,为了找出断言失败的根本原因,我们采取了以下步骤:
1. 分析断言代码 :运行以下命令来排查断言失败的原因:
configASSERT( ( portAIRCR_REG & portPRIORITY_GROUP_MASK ) <= ulMaxPRIGROUPValue );
- 使用 SystemView 分析内存值 :利用 SystemView 的内存查看器,分析
port.c文件中portAIRCR_REG的值。 - 设置数据断点 :由于
portAIRCR_REG是硬编码的内存位置,我们可以设置数据断点,这样每次写入该内存位置时,程序执行就会暂停。通过这种方式,我们可以快速跟踪变量的所有访问方式,而无需在代码中进行搜索。 - <
超级会员免费看
订阅专栏 解锁全文
1476

被折叠的 条评论
为什么被折叠?



