跳到主要内容

平台重置函数调用程序

两年前

平台重置函数调用程序

过帐人gbmej公司0分 7个答复
0票以上

你好,
我在函数中得到了断言平台\重置\功能():

#ifdef RAM\u构建
无效平台重置功能(uint32错误)
{
重置原因=错误;
断言错误(0);
}

你在论坛上说这个函数是调用的时候的函数平台重置()由SW调用。但是,我从未调用过这个函数,在SDK中也没有看到调用方。你能解释一下这个函数是怎么调用的吗?我没有读错误代码,但即使有错误代码值,我不知道我能做什么,因为我不知道调用方。。。

谢谢。
gbmej公司

两年前

PM\U对话框

你好,我是gbmej,

Τ从platform_reset()调用的platform_reset_func()是一个由ROM代码实现的函数。得到这个断言的最可能的原因是内存不足,或者有什么东西触发了680本身的复位引脚。你能澄清一下你想达到什么目的吗?因为你的描述很笼统。它将非常有助于为您提供正确的指导方针。

谢谢,下午好

两年前

gbmej公司 0分

谢谢你的回答。

我有另一个CPU驱动器680,它可以重置它使用680的复位引脚。但在大多数情况下,永远不会调用函数platform_reset_func(),也不会抛出断言。680刚刚重启。
680也可以在出现错误时重新启动(硬错误、freertos错误,如堆栈溢出等)。但是在这种情况下重新启动之前,我记录了重启状态,然后让680重新设置自己(调用hw\u cpm\u reboot\u system()或使用看门狗),我从来没有看到我的日志。
正如你所说,我有一些东西重新启动680,但我不知道什么。。。
正如我之前所说,我没有读过错误代码(680放在一个黑盒子里),但即使我能读到,我也不知道哪些是可用的错误代码,我可以在哪里玩,以防止重新启动。

谢谢,gbmej

两年前

PM\U对话框

你好,我是gbmej,

重置后,如果不使用\uu retained \u UNINIT属性,则日志中的数据将不会保留。在680重新启动和系统初始化再次开始后,此属性将使您的数据保持在未初始化的保留RAM中。你能在调试模式下运行你的代码并检查代码崩溃的地方吗?您启用或禁用了看门狗吗?请尝试运行你的固件与启用和禁用看门狗,让我知道你的代码卡住。另外,你能澄清一下SDK的哪一个例子和你使用的是哪一块板吗?您是否使用DA14680芯片开发了自定义板或在我们的开发工具包中运行固件?如果你有一个自定义板,请检查电源线和一个可能的原因二,为什么你得到一个生化需氧量复位。

谢谢,下午好

两年前

gbmej公司 0分

你好,

我有一个定制板,在一个黑盒子里(没有jtag,没有序列号)。我在重新启动之前记录了这个断言。我无法在开发板上或带有jtag的板上复制。我唯一能看到的是这个断言被抛出了,我不知道为什么。而且这个断言非常罕见,所以我很难对它进行调查。
-监视器被禁用。
-SDK 1.0.8版
我会照你说的检查电源线。
谢谢你的帮助

gbmej公司

两年前

PM\U对话框

你好,我是gbmej,

请在启用看门狗的情况下运行固件。另外,请检查您的定制板的电源线,并告诉我结果。

谢谢,下午好

两年前

gbmej公司 0分

你好,
断言错误代码为重置内存分配失败. 哪种代码可以引发此错误?我必须扩大哪个堆/栈/范围?
谢谢,
gbmej公司

注意:在我的项目中,马洛克连接到FreeRTOS malloc;我已经启用了FreeRTOS分配错误。我在FreeRTOS上没有错误(没有调用回调),但是我已经重置了平台重置内存分配失败错误代码。。。

两年前

PM\U对话框

你好,我是gbmej,

你能通过改变堆的大小来增加堆的总大小吗配置总堆大小自定义\配置\ qspi.h头文件中的宏。最明显的原因是由于内存分配失败,这意味着有一个内存泄漏在您的软件,你分配数据的地方,你永远不会释放他们。

谢谢,下午好