问题:在使用TC3XX芯片调用接口向外挂flash芯片存储数据时,芯片不断进行复位;如不调用该存储接口,则芯片不会进行复位。
调试发现,调用借口后,芯片进入Trap,从而激活看门狗不断对芯片进行复位。
Trap 类型:Class 3 TIN3(Call Depth Underflow )
现象:flash地址错误, 从flash中读取数据时,看门狗复位ECU
表层原因:MCU通过SPI读取flash数据时,地址超出flash地址范围,进入Trap
根本原因:flash地址错误,导致计算出来的数据长度比较长,从flash中读取的数据覆盖掉栈空间中的其他数据
TC3系Trap列芯片中的Call Depth Underflow Trap通常与调用堆栈(Call Stack)的异常操作相关
上下文切换或任务调度错误
在AUTOSAR OS等系统中,若任务或中断的上下文切换未正确维护调用深度信息(例如堆栈帧损坏),可能触发CDU
示例:操作系统未正确处理任务抢占后的堆栈恢复,或保护机制(如内存保护)被触发后未正确回滚调用深度。
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/u010360138/article/details/148569185
|