Hardfault Dump 使用说明

Hardfault Dump 到 Flash

SDK 支持代码运行中遇到 Hardfault 后 dump 到 flash 的功能,可以使用接口 set_crash_dump_info(uint32_t crash_dump_addr, uint32_t crash_dump_size), 这个函数声明在头文件 platform_ext.h中,使用时填入想要 dump 的起始地址和大小即可。

目前,所有 RAM 都支持 dump,且根据 DSP 状态来决定是否 dump dsp share ram。

RTL8763E 系列:

  1. 如果要都 dump 的话,size 应设定为 580KB:

    ITCM1_SIZE+DTCM0_SIZE+DTCM1_SIZE+EXT0_SIZE+DSP_SHM_SIZE

    116+48+60+46+308 = 578

    4k 对齐,580KB

  2. 如果 flash 不够的话可以减到 352KB:

    ITCM1_SIZE+DTCM0_SIZE+DTCM1_SIZE+EXT0_SIZE+80K

    116+48+60+46+80 = 350

    4K 对齐,352KB

RTL8773E 系列:

  1. 如果要都 dump 的话,size 应设定为 800KB:

    ITCM1_SIZE+DTCM0_SIZE+DTCM1_SIZE+EXT0_SIZE+DSP_SHM_SIZE

    128+64+224+64+320 = 800

    4k 对齐,800KB

  2. 如果 flash 不够的话可以减到 560KB:

    ITCM1_SIZE+DTCM0_SIZE+DTCM1_SIZE+EXT0_SIZE+80K

    128+64+224+64+80 = 560

    4K 对齐, 560KB

备注

  • MPPGTool-v6.2.83.2_Watch 以及后续版本支持 dump flash,可以配置需读回的地址和大小;Hardfault 记录在 ReadbackFlash0.bin

  • DebugAnalyzer-v4.0.0.29 以及后续版本支持对 dump 后的实时 log 文件反向解析,选择 Decode From File,勾选 Parse Flash Log后点击 Start

  • 若人为构造 Hardfault 用于测试,需避免频繁触发,误将已完成 dump 的内容擦除。

Hardfault 后 Dump PSRAM

如果想在发生 Hardfault 时,打印 PSRAM的数据,可以调用接口 set_psram_dump_info(uint32_t psram_dump_addr, uint32_t psram_dump_size), 这个函数声明在头文件 platform_ext.h中,使用时填入想要 dump 的起始地址和大小即可。