Air780E/Air780EP/Air780EQ/Air201模块遇到内存死机如何分析
简介
本文档适用于合宙Air780E、Air780EP、Air780EQ、Air201
关联文档和使用工具:
移芯平台模块出现死机问题分析
EPAT抓取底层日志
从Ramdump里分析内存泄漏问题
对于遇到内存不足死机的问题,可以从ramdump里找出哪些函数在消耗ram。
进入trace32后,在自动弹出下发图片的窗口里能找到哪个函数在哪个task里用了多少ram没有归还,如果遇到哪个API大量申请了ram没有归还,基本上就是问题点了
![wKgZomaaHJ6AL24ZAADyCGIkYxA829.png](https://file1.elecfans.com/web2/M00/FD/6C/wKgZomaaHJ6AL24ZAADyCGIkYxA829.png)
为了查找方便,在trace_node选择某个数据,框里面右键 -> 点击format
![wKgZomaaHKaAFg-qAAJGmtyqZ-g645.png](https://file1.elecfans.com/web2/M00/FD/6C/wKgZomaaHKaAFg-qAAJGmtyqZ-g645.png)
![wKgZomaaHLOAIDHMAAdfN4ZyWpQ669.png](https://file1.elecfans.com/web2/M00/FD/6C/wKgZomaaHLOAIDHMAAdfN4ZyWpQ669.png)
上图里看到0x00868909 这个API在消耗大量的ram,从map文件,或者从trace_32工具菜单 view -> symbols -> browes 里搜索,Ctrl+F,或者Cov - > list functions,就能找到函数名称。
![wKgaomaaHL2AKMG-AAbOY3gI6BQ487.png](https://file1.elecfans.com/web2/M00/FE/54/wKgaomaaHL2AKMG-AAbOY3gI6BQ487.png)
这样查找问题解答方向上 就相对明确了。
从Ramdump里分析栈溢出
需要检查下trace32里有没有freertos文件夹,如果没有可以在这里下载放到根目录freertos
一般来说,栈溢出会有断言的情况,但是也有代码申请了一大块栈空间,导致栈底的ram没有被改变,但是实际上代码已经操作了栈外空间,且freertos不会报错,燃石在trace32里能分析出来。
打开trace32 -> freertos -> stack Coverage -> List Stacks
![wKgaomaaHMaAA4DwAAMpnHUN_FQ595.png](https://file1.elecfans.com/web2/M00/FE/54/wKgaomaaHMaAA4DwAAMpnHUN_FQ595.png)
可以看到ram使用情况,注意这里认为栈空间只有1KB,但是实际上可能是远超的,不过没关系,如果max里是0%,说明还有很多栈空间,不用去管
![wKgaomaaHNGACArWAAOTRvq5aA0650.png](https://file1.elecfans.com/web2/M00/FE/54/wKgaomaaHNGACArWAAOTRvq5aA0650.png)
Tmr Svc这个task居然用到了93%
![wKgaomaaHmeADTcAAAB-Mm6pQts994.png](https://file1.elecfans.com/web2/M00/FE/55/wKgaomaaHmeADTcAAAB-Mm6pQts994.png)
右键点击红框,在弹出菜单里选择display memory->dump
![wKgZomaaHm6AYtEJAAJzTid4ugM894.png](https://file1.elecfans.com/web2/M00/FD/6D/wKgZomaaHm6AYtEJAAJzTid4ugM894.png)
距离溢出只有不到70字节,如果用户代码里有类似uint8_t temp[71],那么很容易就操作了栈外的ram,死机就很正常了
-
内存
+关注
关注
8文章
2877浏览量
73407 -
死机
+关注
关注
0文章
17浏览量
8571 -
合宙通信
+关注
关注
0文章
144浏览量
1644
发布评论请先 登录
相关推荐
MQTT应用看这篇!合宙Air780EP_LuatOS_MQTT应用指南
![MQTT应用看这篇!合宙<b class='flag-5'>Air780EP</b>_LuatOS_MQTT应用指南](https://file1.elecfans.com/web2/M00/FE/92/wKgaomad_iCAGM1mACObj6OhrXM912.png)
合宙Air780EP模块——AT指令MQTT接入OneNET开发指南
![合宙<b class='flag-5'>Air780EP</b><b class='flag-5'>模块</b>——AT指令MQTT接入OneNET开发指南](https://file1.elecfans.com/web2/M00/04/49/wKgaombDBK2AAonzAAAoF8GMJwg647.png)
【合宙Air780E开发板趣味应用】Air780E开发板方言打麻将
合宙LuatOS开发板Core_Air780EP使用说明
![合宙LuatOS开发板Core_<b class='flag-5'>Air780EP</b>使用说明](https://file1.elecfans.com/web2/M00/06/07/wKgaombW1g6Aaex-AABI1iQIZxo681.png)
评论