7.5.14 MCU ramdump 功能
注意
目前 MCU0/MCU1的 Crash 信息共享一块内存。MCU0/MCU1同时出现异常的情况下,MCU ramdump 功能保存的信息不可用。
概述
MCU ramdump 功能的开发,主要是为了 mcu 在发生 crash 或进入异常时,能打印异常信息并将这些信息进行保存,便于我们分析定位出现异常的位置。
异常处理流程
当 MCU 进入异常时候,MCU 会将现场信息保留在一个全局变量中,该全局变量可以被 acore 读取,也可以通过 MCU shell 读取。
如果是 MCU0出现异常,系统将会重启,系统重启流程中会判断重启原因。如果判断重启原因是mpainc,系统会确保保存 MCU 异常现场信息的全局变量对应的内存空间不清0,我们可以在系统重启后读取到 ramdump 的数据,并基于此来分析异常发生的原因。
异常处理流程如下所示:
MCU0和 MCU1的异常处理流程基本类似,区别只在于 MCU0在处理异常后会重启系统。