单片机学习小组
直播中

张健

7年用户 1334经验值
私信 关注

NUC972莫名死机是怎么回事?如何解决?

基于rt-thread的工程,应用程序是之前在STM32F429上正常运行的移植到NUC972上后出现莫名的死机问题。
工程的主要功能用到 lcd、文件系统(uffs)、uart(omrom、modbus协议通信)等。
在程序正常跑一段时间后会莫名死机,lcd的显示画面会变色和发生偏移,控制台没有异常和寄存器打印信息,通过仿真的方式可以知道程序最终跑到了data abort异常,问题是在出现上述现象时不是马上进入异常,还跑了10多秒才发生的异常,像是程序重新在0地址开始往下跑了,最终在不会运行到的地方发生异常,仿真看到的 lr 寄存器地址记得好像是0x26c吧。

回帖(1)

美信电子

2024-5-20 18:00:17
针对此问题,可以尝试以下方法解决:

1. 检查代码是否有死循环或者是指针越界等问题,这些问题会导致程序异常退出。

2. 使用调试工具(如 Jlink、openocd 等)进行调试,查看运行时栈空间的使用情况、堆的使用情况等,找出最终跑到的地址在哪个函数里面。

3. 调整优先级,判断是否因为优先级问题导致的死机。建议将文件系统操作、uart通信等比较耗时的操作放在一个低优先级的任务中处理。

4. 查看时钟和中断相关的代码,确认时钟配置是否正确,中断是否被正确处理。

5. 尝试将代码模块分离开来逐个进行测试,定位问题可能出现的区域,持续测试,直到问题被解决。

6. 与客服联系,寻求制造商提供的技术支持和解决方案。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分