将S32K344 C40擦写flash放在RAM中运行,偶现死机。死机打印0x0043c188 lib_a-impure.o
查看map文件,发现地址在 .text._kill.__stub 0x0043c180 0x38 linker stubs
请教大模型,回复如下:
在处理嵌入式系统(如使用S32K3微控制器的系统)时遇到死机问题,首先需要明确死机的原因可能涉及多个方面,包括软件错误、硬件故障、配置错误或外部干扰等。针对你提供的信息“text._kill.__stub 0x0043c180 0x38 linker stubs 0x0043c188 lib_a-impure.o S32K3死机”,我们可以从以下几个方面进行排查:
总之,解决死机问题需要综合考虑硬件、软件、配置和外部环境等多个方面。希望这些建议能帮助你找到问题的根源并解决它
Hi @sing
It sounds like read-while-write issue.
In short, it is not possible to access a flash block which is being erased or programmed:
If you are getting fault from 0x43_C188, it means that block 0 is being erased but there was some access during the erase operation. Most likely, this is caused by interrupts. So, I recommend to disable interrupts before running these flash operations. Or it would be necessary to move all the interrupts handlers and vector table to RAM or to another flash block.
Regards,
Lukas
have anyone encounter this problem?how resolve?