SOC有时重置有时与手机配对:WRAP_PLATFORM_RESET()

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

你好亲爱的对话人员:
我有一个问题关于wrap_platform_reset(),我的客户说,有时他用手机连接soc,soc会调用wrap_platform_reset()并返回错误代码0xf2f2f2f2
我发现一些解释说:
/ *
WRAP_PLATFORM_RESET的最明显原因发生是由于内存分配故障,这意味着您的SW中存在内存泄漏,您将在某处分配数据,并且您永远不会释放它们(您可以在函数的参数错误中释放它们,应该是reset_mem_alloc_fail)。
* /

我检查了堆分配:
RAM_BSS_1 0x00815000
{
*(KE_HEAP)
}
散点索(ImageLength(RAM_BSS_1)<0x3000)
}
这意味着12k用于堆分配。这是足够的吗?
如果我的SW中存在内存泄漏,它将重置Malloc触发,并且更多堆空间无帮助重置问题?
我如何找到它们,当我需要释放这些内存时?实际上这会让我很多。有没有应用笔记可以帮助我理解Ke Melloc机制。

谢谢〜

设备:
mt_dialog.
离线
最后一次露面:2个月3周前
职员
加入:2015-06-08 11:34
嗨bigheadbaby,

嗨bigheadbaby,

关于堆分配,您将能够找到在.map文件中为内核消息分配多少堆(搜索堆_db_area,heap_env_area,heap_msg_area)。一个0x3000堆非常大,如果这表明你的堆大小,我会认真怀疑。如果您的SW中存在内存泄漏,并且在分配内存时,请在某些点处保持分配内存,您将在WRAP_PLATFROM_RESET中结束。没有具体方法可以找到内存泄漏的位置。如果要使用ke_malloc以分配房间,则应从NON_RET_HEAP分配,并且只要您不再需要该房间即可使用KE_FREE()释放空间,并确保所有消息处理程序返回KE_MSG_CONSUMED按顺序返回KE_MSG_CONSUMED为了释放分配的空间。

谢谢mt_dialog.

Bigheadbaby.
离线
最后一次露面:2年5个月前
加入:2017-12-14 13:52
亲爱的mt_dialog:

亲爱的mt_dialog:
谢谢你的解释。
似乎我发现了一些可能导致重置的可能性
我们延迟了(1)主循环,我猜funcion rwip_schedule()不能与之良好......
例如,如果我想使用GPIO来填充软件IIC函数,似乎延迟函数会导致重置......这是否意味着我不能在主循环中放置任何延迟动作?
如果我可以,也许我必须关闭将引起内存搭接的消息,我猜广告可能会周期性地带来一些消息,最终会产生重置。关闭adv行动将有助于这个问题?当IM未连接到SoC时,是否有其他消息可能会导致重置。然后我认为主循环中的延迟可能是可能的。
谢谢~~~

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

嗨bigheadbaby,

你能让我知道为什么你延迟进入(1)?是否有任何特定的原因为什么添加延迟?请注意,强烈建议不要将任何延迟添加到此功能中。原因是schedule_hille_ble_on()函数调用RWIP_Schedule()函数,该函数用于所有挂起的消息。如果您延迟进入(1),这意味着Schedule_hille_ble_on()也将被延迟,但队列将继续接收邮件,因此调度程序将必须保留其中许多。结果,您将获得Wrap_platform_reset()

谢谢,PM_DIALOG.

Bigheadbaby.
离线
最后一次露面:2年5个月前
加入:2017-12-14 13:52
非常感谢〜

非常感谢〜
最后,请帮我了解函数Rwip_schedule(),~~~~~帮助~~~~~
根据我们的软件架构,我将尽力避免延迟功能。
我已经完成了测试,我现在确保如果ADV是开启,通过我延迟延迟1,ke_malloc会定期调用但rwip_schedule()只能在延迟完成后运行。
但我认为Rwip_schedule()是一段时间循环,以找到回调来处理这些消息,
-------------------------------------
这是否意味着它会在一段时间内完成所有消息,或者它不能最终导致内存累积???
-------------------------------------
如果rwip_schedule()可以在时间完成所有消息和释放内存,则有可能导致此错误的原因,我只想了解有关Ke计划机制的更多信息,如果可以,请为我提供一些细节。如果有一些PDF笔记可以帮助我理解这一点,请也会才能实现我
再次感谢

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

嗨bigheadbaby,

DA14580仅在BLE核心处于活动状态以及RWIP_SCHEDULE()函数执行时安排挂起的消息。消息可以向堆栈异步发送,但在执行RWIP_Schedule时,它们将同步地服务。在主循环的活动部分中,内核将被授予对RWIP_SCHEDULE()调用的控件,并且只要需要处理消息和事件,它将保持控制。由于内核要求BLE硬件来处理消息,因此在Schedule_While_ble_On()中呼叫呼叫_while_ble_on()中发生。我强烈建议您查看7.2.1主回调段落UM-B-051:DA14580软件平台参考(SDK5)用户手册。您可以找到它并从我们的支持门户下载它。关于你的问题,我无法理解你的意思是什么,所以请你澄清你的问题吗?你还有这个错误吗?

谢谢,PM_DIALOG.

Bigheadbaby.
离线
最后一次露面:2年5个月前
加入:2017-12-14 13:52
谢谢

谢谢
但我找不到下载此应用笔记的地方,UM-B-051:DA14580软件平台参考(SDK5)用户手册
我点击您给我的链接,但只显示了这些信息:

-----------------------------------------------------------------------------
版本日期:2016/12/20
版本号:1.2
教程:

收到更新通知
订阅此页面
左侧最多列中的主复选框转或关闭给定的订阅。根据网站的设置,您可能有活动订阅的其他选项.------------------------------------------------------

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

嗨bigheadbaby,

您无法下载它,因为您还没有接受软件许可协议(SLA)然而。请尝试再次下载并击中下载中显示的挂锁。之后,您必须同意许可协议你应该等到你的访问权限。

谢谢,PM_DIALOG.

Bigheadbaby.
离线
最后一次露面:2年5个月前
加入:2017-12-14 13:52
我仍然不知道在哪里

我仍然不知道在哪里找到这个sla
是一个邮件访问我可以到达这个链接吗?

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

嗨bigheadbaby,

请转到产品DA14580并导航到软件和工具。然后尝试下载SDK。在那里,你必须看到挂锁图标 - 点击即可接受协议,您将被授予将在几天内进行SDK访问。

谢谢,PM_DIALOG.