本帖最后由 tangdengan 于 2025-1-25 16:15 编辑
我们使用HC32F460KCTA/KETA的系统,操作系统是RTT
应用分为bootloader和application,这个产品硬件已经销售了几年了,但现在遇到了一个非常神奇的问题
我们的设备在现场正常工作一段时间后,可能是10天,也可能是一个月或者更长,这个设备会出现不能正常运行的情况
表现出来是 rtt 的主任务提示 task overflow
看到这个,我们一般都认为是 任务的栈空间小了,但是这个出现在 大while还没有到达的时候,并且这个溢出的时候,是在初始化启动其它子任务,并不需要多大的栈开消,况且在没有出故障之前,这个运行是很正常的,其它设备也是这个调用流程,没有问题。这个前面调用的逻辑已经大范围在产品中使用,只有这一批出会现,首先,排险硬件设计和硬件不稳定的情况,我们这批产品之前已经工作了1年多了。
方案1:触发硬件看门狗
一但出现这个情况,我们的外置硬件看门狗会对rst引脚复位,单片机同样是跑到此位置,然后报错。
方案2:现场断电
我们试过在现场将设备断电,过了几分钟后再开启,还是同样的地方报错
方案3:程序对比
通过SWD口将片内程序读出来比较,内部FLASH程序没有被修改
方案4:程序复现
用出现此故障的设备重新刷写与此故障相同的程序,故障现象一致,需要重新刷写一个能正常运行的程序后,再刷回之前版本的程序,又可以正常运行
不知道该故障是否触发单片机的某个“特性”????期待有解决方案。
补充一下FLASH和内存的占用情况
Program Size: Code=133176 RO-data=10464 RW-data=1468 ZI-data=172964
|