AUTOSAR OS Error Hook问题的根本原因排查及解决方法?

问题遇到的现象和发生背景

车载控制器(英飞凌3系列MCU),基于autosar标准的vector底层代码。在多次上下电后,发生通讯停止的故障。板子上电后所有CAN报文发出一帧后就通讯丢失,从而软件也无法通过UDS指令执行新的刷写过程。而且比较奇怪的现象是,一旦发生了这个故障,后续不论板子上下电多少次,软件reset多少次后,该故障仍然存在,除非通过debug port擦掉APP部分(保留bootloader),重新刷写入原来的软件,故障会消除。

操作环境、软件版本等信息

HIL台架或者单板都会复现该问题。软件为本地编译版本。

尝试过的解决方法

尝试过代码调试。通过Lauterbach工具调试后发现,软件发生了os error hook故障,软件陷入到ErrorHook函数的while 1死循环中。其中OS的错误代码为E_OS_LIMIT,同时发生错误时的OS service为:OSServiceId_ActivateTask。
进一步排查发现,在进入到ErrorHook函数之前,OS schedule table中调度的优先级较低的Rte_slow这个task始终不能调度到,而运行正常的板子上,是能够调度到这个task的。
尝试过代码反读,发现写入芯片中的代码是完整且正确的,可以排除刷写导致的问题。
同时,擦除APP就会解决问题,证明bootloader是没问题的,问题发生在APP。
目前有过的几个猜测:
1.其他OS task的运行周期比较短,且优先级较高,而Rte_slow这个task优先级较低,所以active失败,导致了errorhook报错。
2.errorhook故障被记录,存在data flash中,后面数次上下电都会读取到故障状态并自动进入到ErrorHook函数中。

我想要达到的结果

各位工程师是否有过相同或者类似问题的排查经验,麻烦帮忙找一下问题根本原因,或提供下解决方案,或者更进一步的问题排查思路,如果有AUTOSAR的代码分析就更好了。
还有,如果该问题已经发生,而且故障板子没有ddebug port口,想要通过抢刷,需要怎么发送抢刷指令?

ChatGPT
推测考虑的原因可能是内存损坏或硬件故障造成数据完全失配,导致MCU无法处理进一步请求. 建议进行内存自检,检查电路,确保内部电源稳定。