platform_reset_func来电

⚠️
嗨,...感谢您来论坛。令人兴奋的消息!我们现在正在迁至我们的新论坛平台,将提供更好的功能,并包含在主对话框网站中。所有帖子和帐户都已迁移。我们现在只接受新论坛上的流量 - 请发布任何新线程https://www.dialog-seminile.com/support.。我们将在未来几天修复错误/优化搜索和标记。
8个帖子/ 0新
最后一篇
GBMEJ.
离线
最后一次露面:2年6个月前
加入:2017-09-13 15:16
platform_reset_func来电

你好,
我有这个功能的断言platform_reset_func()

#ifdef ram_build.
void platform_reset_func(uint32_t错误)
{
reset_reason =错误;
assert_error(0);
}

你在论坛中说这个函数在函数时被调用platform_reset()由SW调用。但是,我从不打电话这个函数,我在SDK中看到了呼叫者。你能解释一下这个函数的调用方式吗?我没有阅读错误代码,但即使使用错误代码值,我不知道我能做什么,因为我不知道来电......

非常感谢。
GBMEJ.

设备:
PM_DIALOG.
离线
最后一次露面:21小时52分钟前
职员
加入:2018-02-08 11:03
嗨gbmej,

嗨gbmej,

τheplatform_reset_func()是从platform_reset()中调用的,是由ROM代码实现的函数。您获得此断言的最可能原因是由于内存不足,或者某些东西触发了680本身上的复位引脚。你能澄清你想要完成的东西,因为你的描述非常通用。为了为您提供正确的指导方针,这将是非常有帮助的。

谢谢,PM_DIALOG.

GBMEJ.
离线
最后一次露面:2年6个月前
加入:2017-09-13 15:16
感谢您的回答。一世

感谢您的回答。

我有另一个CPU驱动680,可以使用680的复位引脚重置它。但在大多数情况下,函数platform_reset_func()永远不会调用,没有抛出断言。680只重新启动。
680可以在错误(硬故障,freertos错误等堆栈溢出等)上重启。但在这种情况下重新启动之前,我在让680重置之前(调用hw_cpm_reboot_system()或使用看门狗)来记录重启状态(调用hw_cpm_reboot_system(),我从未看到我的日志。
正如你所说,我有一些重启680的东西,但我无法知道......
正如我之前所说的那样,我没有读取错误代码(680被放入黑匣子),但即使我可以阅读它,我不知道哪些错误代码以及我可以播放的地方,以防止这种重新启动。

谢谢,GBMEJ.

PM_DIALOG.
离线
最后一次露面:21小时52分钟前
职员
加入:2018-02-08 11:03
嗨gbmej,

嗨gbmej,

重置后,如果您未使用__retained_uninit属性,则不会保留来自日志的数据。此属性将在680重新启动后,将数据保持在未初始化的保留RAM中,并且系统初始化再次启动。您能否在调试模式下运行代码并检查代码崩溃的地方?您是否已启用或禁用看门狗?请尝试使用已启用和禁用的监视器运行您的固件,并告诉我代码卡住的位置。此外,您是否可以澄清SDK的哪个示例以及您使用的是哪种板?您是否开发了一个带有DA14680芯片的定制板或在我们的开发套件中运行固件?如果您有一个定制板,请检查电源线和可能的原因II为什么要获得BOD重置。

谢谢,PM_DIALOG.

GBMEJ.
离线
最后一次露面:2年6个月前
加入:2017-09-13 15:16
你好,

你好,

我有一个自定义板,在一个黑匣子里(没有JTAG,没有串行)。我在重新启动之前记录了这个断言。我无法在DEV板上或JTAG的电路板上复制。我唯一能看到的是,这是一个被抛出的声明,我不知道为什么。此外,这个断言非常罕见,因此我很难调查它。
- 看门狗被禁用了。
- SDK 1.0.8.
我会在你说的时候检查电源线。
谢谢你的帮助

GBMEJ.

PM_DIALOG.
离线
最后一次露面:21小时52分钟前
职员
加入:2018-02-08 11:03
嗨gbmej,

嗨gbmej,

请使用WatchDog运行您的固件。此外,请检查您的定制董事会的电源线,并通过结果告诉我。

谢谢,PM_DIALOG.

GBMEJ.
离线
最后一次露面:2年6个月前
加入:2017-09-13 15:16
你好,

你好,
断言错误代码是reset_mem_alloc_fail.。哪个和平的代码可以抛出这个错误?我必须成长哪个堆/堆栈/范围?
谢谢,
GBMEJ.

注意:在我的项目中,Malloc.连接到Freertos Malloc;我已经启用了FreeRTOS分配错误。我对freertos没有错误(不调用回调),但我有平台重置reset_mem_alloc_fail.错误代码...

PM_DIALOG.
离线
最后一次露面:21小时52分钟前
职员
加入:2018-02-08 11:03
嗨gbmej,

嗨gbmej,

你能试着通过改变来增加总堆大小configtotal_heap_size.在自定义custom_config_qspi.h标题文件中的宏。最明显的原因是由于内存分配失败,这意味着您的软件中存在内存泄漏,您可以在某处分配数据,并且您从未释放过它们。

谢谢,PM_DIALOG.