你好亲爱的员工对话框:
我有一个问题关于wrap_platform_reset(),我的客户说他有时与手机连接Soc, Soc将调用wrap_platform_reset()和0 xf2f2f2f2返回错误代码
我发现一些解释说:
/ *
wrap_platform_reset发生的最明显的原因是由于内存分配失败,这意味着有一个内存泄漏你的西南,你分配数据的地方和你永远不会释放他们(您可以验证在函数的参数错误,应该RESET_MEM_ALLOC_FAIL)。
* /
我检查了堆的任务:
RAM_BSS_1 0 x00815000
{
* (ke_heap)
}
ScatterAssert (ImageLength (RAM_BSS_1) < 0 x3000)
}
这意味着12 k是用于堆分配。是足够的吗?
如果有内存泄漏我的西南,它将重置时,触发malloc和更多的堆空间将不会帮助重置问题?
我怎么能找到他们,当我需要释放这些记忆?其实这弄错了我很多。有任何应用程序报告可以帮助我了解ke melloc机制。
谢谢~
设备:
嗨bigheadbaby,
关于堆分配你能找到多少堆分配的内核消息. map文件(搜索heap_db_area、heap_env_area heap_msg_area)。0 x3000堆非常大,我严重怀疑这表明你的堆大小。如果有一个内存泄漏sw然后你继续分配内存是的在某些时候当分配内存wrap_platfrom_reset你最终会。没有特定的方法找出内存泄漏。如果您使用的是ke_malloc为了分配房间,你应该从non_ret_heap分配,你应该自由空间使用ke_free()只要你不需要那个房间并确保所有的消息处理程序返回KE_MSG_CONSUMED为了分配空间被释放。
由于MT_dialog
亲爱的MT_DIALOG:
谢谢你的解释。
似乎我已经找到一些可能性为什么它将导致复位
我们把一些延迟,而(1)主循环和我猜脂肪酸rwip_schedule()不能很好地工作……
例如,如果我想用GPIO完成软件IIC函数,似乎延迟函数将导致一个重置……这是否意味着我不能把任何在主循环延迟行动吗?
如果我可以,我必须关掉leackage味精会引起内存,我想广告可能会带来一些味精时期,最终产生一个复位。亲密之行动将帮助解决这个问题? ?还有其他味精可能会导致与soc重置当我没有连接。那么我认为延迟主循环可能成为可能。
谢谢~ ~ ~
嗨bigheadbaby,
你能请让我知道你为什么把延迟,而(1)?有什么具体的原因你添加了一个延迟的原因吗?请注意,强烈建议不要添加任何延迟到这个函数。原因是schedule_while_ble_on()函数调用rwip_schedule()函数,这是所有的等待消息。如果你把而延迟的情况(1)这意味着schedule_while_ble_on()也将被推迟但队列将继续接收消息,所以调度器必须储备很多。因此,你会得到wrap_platform_reset ()
谢谢,PM_Dialog
非常感谢~
最后,请帮助我了解函数rwip_schedule(), ~ ~ ~ ~ ~ ~ ~ ~ ~ ~帮助
我将尽量避免延迟函数while1根据我们的软件架构。
我做了一个测试,我现在安静的肯定,如果阿德,通过我把一个长时间的延迟,1,ke_malloc叫做时期但rwip_schedule()只能延迟完成后运行。
但是我认为rwip_schedule()是一个while循环找到回调处理这些公司,
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
这意味着它将完成一次时间处理所有的消息,也可以不积累,最终将导致内存? ? ?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
如果rwip_schedule()可以完成所有的信息和及时释放内存,有什么原因会导致这个错误,我只是想知道更多关于KE调度机制,如果你可以,请给我一些细节。如果有一些pdf指出,可以帮助我了解这个,也请尽快通知我
再次感谢
嗨bigheadbaby,
DA14580只安排等待消息而祝福时主动和核心rwip_schedule()函数执行。异步消息可以发送到堆栈但他们将同步rwip_schedule时被执行。在主循环中活跃的一部分,内核将被授予控制调用rwip_schedule(),它将使控制只要消息和事件需要处理。rwip_schedule()调用发生在schedule_while_ble_on()自内核需要活跃BLE硬件来处理消息。我强烈推荐你去看看7.2.1主循环回调段嗯- b - 051: DA14580软件平台参考(SDK5)用户手册。你能找到并下载它从我们的支持门户。关于你的问题,我不能够理解你到底是什么意思,所以你能把你的问题说清楚好吗?你还有这个错误吗?
谢谢,PM_Dialog
谢谢
但是我找不到在哪里下载这个应用程序,嗯- b - 051: DA14580软件平台参考用户手册(SDK5)
我点击链接你给我只有这些信息显示:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
版本日期:20/12/2016
版本号:1.2
教程:
收到更新通知
订阅这个页面
最左边的列中主复选框打开或关闭特定订阅。根据网站的设置,你可能有更多的选择积极subscriptions. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
嗨bigheadbaby,
你不能下载它,因为你没有接受软件许可协议(SLA)然而。请尝试再次下载,点击进入会出现从下载的挂锁。在那之后你将不得不同意许可协议和你应该等到你的访问将被授予。
谢谢,PM_Dialog
我还不知道在哪里可以找到这个SLA
一个邮件访问我能达到这个链接吗?
嗨bigheadbaby,
请到产品DA14580并导航到软件和工具。然后去下载SDK。在那里你会看到一个挂锁图标,点击,接受这个协议,你将被授予SDK访问过几天。
谢谢,PM_Dialog