CH573,hardfault

硬件错误中断中,打印了mepc=0x252C7748,MCAUSE=0x00000002,MTVAL=0x0000AE86.

这个看不大懂,MCAUSE=2是代表非法指令,那mepc此时存储的是进入异常前的PC指针吗,可是这个地址在573的RAM范围之外了。该怎么确定问题,解读这三个寄存器?

image.png

另外在.list文件中搜索不到0xAE86的指令,只有0xAE84,0xAE88


可以尝试多打印几次该值,看看是否为相同的值。

出现上述情况一般为代码书写问题。

注意检查代码的RAM分配情况,如是否申请内存未释放/内存泄漏等。



只有登录才能回复,可以选择微信账号登录