你好,
发现一个问题,我的程序偶尔会挂死在如下地方,但断电重启一下偶尔会好,请问这个可能是什么问题,能不能给些跟踪思路。谢谢!
/**
****************************************************************************************
* @brief平台重置的包装器。它将在软件重置之前被调用
*从堆栈中发出。可能的原因将包含在错误字段中
* @param[in] error复位原因。它将是:
* RESET_NO_ERROR、RESET_MEM_ALLOC_FAIL RESET_TO_ROM RESET_AND_LOAD_FW
* @return不返回任何内容。
****************************************************************************************
*/
空白wrap_platform_reset (uint32_t错误)
{
ASSERT_WARNING(错误= = RESET_AFTER_SPOTA_UPDATE);//在SPOTA重置的情况下不中断
platform_reset_func(错误);
}
关键词:
设备:
可以把数组jump_table_base里的wrap_platform_reset函数,换成你自己写的函数,然后打印错误。
一般错误就这么几种,见arch.h文件。你先看看是哪一种?估计mem_alloc_fail的可能性最大…
/// FW检测到的可能错误
#定义RESET_NO_ERROR 0 x00000000
#定义xf2f2f2f2 RESET_MEM_ALLOC_FAIL 0
///重启平台并留在ROM中
#定义xa5a5a5a5 RESET_TO_ROM 0
///重置平台,重新加载FW
#定义xc3c3c3c3 RESET_AND_LOAD_FW 0
如果错误是RESET_MEM_ALLOC_FAIL 0xF2F2F2F2,我应该修改哪一段??
#定义DB_HEAP_SZ 1024
#定义ENV_HEAP_SZ 328
#定义MSG_HEAP_SZ 1312
#定义NON_RET_HEAP_SZ 1024
???
谢谢!!