社区首页
技术讨论创新帖
全部新帖
资料区
社区活动
联系管理员
★ 社区积分制度
★ 新手必读
★ 申请版主★
请
登录
后使用快捷导航
没有帐号?
注册
首页
|
电子技术
|
嵌入式
模拟电子
单片机
电源管理
传感器
半导体
电子应用
|
工业控制
物联网
汽车电子
网络通信
医疗电子
手机便携
测试测量
安防电子
家用电子
机器人
新能源
电子头条
|
社区
|
论坛
测评
博客
大学堂
|
下载
|
下载中心
电路图
精品文集
电路图
|
参考设计
|
Datasheet
|
活动
|
直播
datasheet
datasheet
文章
搜索
登录
注册
论坛
切换旧版
电子工程世界-论坛
»
论坛
›
电子技术交流
›
国产芯片交流
›
全志R128内存泄漏调试案例
返回列表
发新帖
回复
阅
473
|
回
0
aleksib
当前离线
纯净的硅(中级)
最后登录
2024-11-20
在线时间
38 小时
威望
967分
芯积分
480分
(兑换)
E金币
0枚
(兑换)
(兑换)
好友
0
aleksib
276
帖子
0
TA的资源
纯净的硅(中级)
+ 好友
私信
楼主
发表于2023-11-20 16:56
只看该作者
全志R128内存泄漏调试案例
[复制链接]
# 内存泄露调试案例 ## 问题背景 硬件:R128 软件:FreeRTOS + rtplayer_test(Cedarx)+ AudioSystem ## 问题复现 复现步骤: 1. rtplayer_test /data/boot.mp3 2. 串口输入"l", 循环播放 3. 串口输入"b" , 播放器后台执行 ## 具体表现 rtplayer_test 循环播放老化音频十几分钟后,音乐停止播放,报错如下: ![在这里插入图片描述](https://img-blog.csdnimg.cn/bd90c923db5c43c5a4cf75f64d41dad6.jpeg#pic_center) ## 问题分析 1. 根据上面报错的log,播放停止时,系统内存不足;在老化过程中出现的内存不足,一般是某处存在内存泄漏 2. reboot重启,重新执行老化播放流程,串口执行free命令,观察内存的剩余情况: 首次播放时的内存: ``` c906>free ==> Round [1] <== Total Heap Size :1907128 Bytes ( 1862 KB) Free : 547632 Bytes (534 KB) Min Free : 536208 Bytes (523 KB) List Task MIN Free Stack(unit: word) Task StatePriorityStack # ************************************************ Name State Pri HWM Idx StkCur StkBot adb-shell X 4 394 44 0x87233a0 0x8722650 AudioDecode R 4 3872 49 0x874d2c0 0x87459c0 IDLE R 0 52 2 0x863dfe0 0x863de40 tcpip B 3 470 12 0x8677ae0 0x8676c30 Demux B 6 3126 47 0x87333a0 0x872b960 usb-hardware-sc B 6 8018 14 0x871a3a0 0x870a630 adbd-input B 5 900 24 0x876eb90 0x876cec0 amp-admin B 6 4002 11 0x8675ab0 0x866dda0 AudioMT2pb B 4 3882 52 0x8779be0 0x8772050 AudioRender B 6 3350 50 0x8756950 0x874ed30 amp-ser2 B 6 4006 8 0x865d830 0x8655b00 amp-ser3 B 6 4006 9 0x8665910 0x865dbe0 amp-ser4 B 6 4006 10 0x866d9f0 0x8665cc0 hub-main-thread B 6 8082 13 0x870a2b0 0x86fa620 adbd-shell-ser- B 4 906 45 0x8726330 0x8724660 XPlayer B 4 3912 48 0x8744e10 0x873d220 AudioMT2 B 4 1907 18 0x873cb00 0x8738e10 RTplayerThreadB 4 3989 51 0x876a630 0x8762980 CLI B 6 3772 15 0x8722060 0x871a640 Tmr Svc B 6 374 3 0x863f070 0x863e320 amp-send-task B 6 930 4 0x8642db0 0x8641070 amp-recv-task B 6 924 5 0x8644e90 0x8643150 adbd-output B 5 843 25 0x8770cd0 0x876f060 adb-event B 5 894 46 0x872a300 0x87286d0 amp-ser0 B 6 4006 6 0x864d670 0x8645940 amp-ser1 B 6 4006 7 0x8655750 0x864da20 ``` 播放几次后的内存情况: ```language c906>free ==> Round [1] <== Total Heap Size :1907128 Bytes ( 1862 KB) Free : 456992 Bytes (446 KB) Min Free : 453440 Bytes (442 KB) List Task MIN Free Stack(unit: word) Task StatePriorityStack # ************************************************ Name State Pri HWM Idx StkCur StkBot adb-shell X 4 394 44 0x87235b0 0x8722650 AudioDecode R 4 3872 49 0x874d5e0 0x87459c0 IDLE R 0 52 2 0x863dfe0 0x863de40 tcpip B 3 458 12 0x8677ae0 0x8676c30 usb-hardware-sc B 6 8018 14 0x871a3a0 0x870a630 adbd-input B 5 900 24 0x876eb90 0x876cec0 amp-admin B 6 4002 11 0x8675ab0 0x866dda0 AudioMT2pb B 4 3882 52 0x8779be0 0x8772050 AudioRender B 6 3350 50 0x8756950 0x874ed30 CLI B 6 3772 15 0x8722060 0x871a640 Tmr Svc B 6 374 3 0x863f070 0x863e320 amp-ser0 B 6 4006 6 0x864d670 0x8645940 amp-ser1 B 6 4006 7 0x8655750 0x864da20 amp-ser2 B 6 4006 8 0x865d830 0x8655b00 amp-ser3 B 6 4006 9 0x8665910 0x865dbe0 amp-ser4 B 6 4006 10 0x866d9f0 0x8665cc0 hub-main-thread B 6 8082 13 0x870a2b0 0x86fa620 XPlayer B 4 3912 48 0x8744e10 0x873d220 AudioMT2 B 4 1907 18 0x873cb00 0x8738e10 adbd-output B 5 843 25 0x8770cd0 0x876f060 amp-recv-task B 6 924 5 0x8644e90 0x8643150 Demux B 6 3126 47 0x8733150 0x872b960 amp-send-task B 6 924 4 0x8642db0 0x8641070 adb-event B 5 890 46 0x872a2a0 0x87286d0 adbd-shell-ser- B 4 906 45 0x8726330 0x8724660 RTplayerThreadB 4 3989 51 0x876a630 0x8762980 ``` 观察Free项的剩余内存,可发现在老化播放过程中,内存不断减少,存在泄漏。 ### 泄漏点定位 可借助memleak工具,定位内存泄漏处。mrtos menuconfig选上memleak ``` -> System components -> aw components -> Memleak Components Support [*] Tina RTOS Memleak # 使能内存泄露分析工具 (16)Tina RTOS Memleak Backtrace Level# 内存泄露分析栈回溯层数 [ ] Tina RTOS Double Free Check ``` memleak用法如下 ```language 作用:内存泄露分析 用法:memleak 1 使能内存泄露分析,记录所有内存块申请、释放信息 memleak 0 关闭内存泄露分析,删除所有内存块的申请、释放信息 memleak 1 thread_name1 thread_name2 使能内存泄露分析,记录指定任务的内存块申请、释放信息 ``` 串口执行memleak 1 音频老化测试(参考复现步骤),音频播放几次后,执行rtpc q 命令退出播放 串口执行memleak 0 关闭内存泄露检测时,会打印可疑的内存泄露点及其回溯信息; 有两个地方: ``` 007: ptr = 0x08760960, size = 0x00000f00, thread = AudioRender backtrace : 0x08336AEE backtrace : 0x08336B46 backtrace : 0x08396D52 backtrace : 0x084B025E backtrace : 0x08446856 backtrace : 0x084496C6 008: ptr = 0x0875f990, size = 0x00000f00, thread = AudioRender backtrace : 0x08336AEE backtrace : 0x08336B46 backtrace : 0x0839757E backtrace : 0x084B025E backtrace : 0x08446856 backtrace : 0x084496C6 ``` callstack 回溯 ``` pvPortMalloc at /workspace/freertos/r128/test_0624_rtplayer/rtos-dev/lichee/rtos/kernel/FreeRTOS-orig/Source/portable/MemMang/heap_4.c:658 pvPortCalloc at /workspace/freertos/r128/test_0624_rtplayer/rtos-dev/lichee/rtos/kernel/FreeRTOS-orig/Source/portable/MemMang/heap_4.c:577 softvol_ap_update_mode at /workspace/freertos/r128/test_0624_rtplayer/rtos-dev/lichee/rtos/components/common/aw/AudioSystem/audio_plugin/softvolume.c:250 _AudioTrackStart at //workspace/rtos-r128/lichee/rtos/components/common/aw/AudioSystem/AudioTrack.c:163 RTSoundDeviceStart at /workspace/codec_lib/cedarx_rtos/temp/rtos_cedarx/cedarx/rtos_out/libcore/playback/src/rtosSoundControl.c:766 startSoundDevice at /workspace/codec_lib/cedarx_rtos/temp/rtos_cedarx/cedarx/rtos_out/libcore/playback/src/audioRenderComponent.c:800 (inlined by) doRender at /workspace/codec_lib/cedarx_rtos/temp/rtos_cedarx/cedarx/rtos_out/libcore/playback/src/audioRenderComponent.c:942 (inlined by) doRender at /workspace/codec_lib/cedarx_rtos/temp/rtos_cedarx/cedarx/rtos_out/libcore/playback/src/audioRenderComponent.c:898 ``` 通过回溯信息,发现在`resample_ap_update_mode`处产生了内存泄漏。 ## 根本原因 播放器老化过程中,只调用`AudioTrackCreate`一次,循环播放时会多次调用`_AudioTrackStart`,最后退出播放才调用`AudioTrackDestroy`销毁;所以`softvol_ap_update_mode`这里,老化过程会多次调用到,会有多次分配,但只在退出时`AudioTrackDestroy`里才销毁。 ## 解决方法 只在`AudioTrackCreateWithStream`时创建一次,`AudioTrackDestroy`,测试10小时左右未出现内存泄漏 ![在这里插入图片描述](https://img-blog.csdnimg.cn/e0c4fb2f066f481e9ec4b2cbab01d1db.jpeg#pic_center)
此帖出自
国产芯片交流论坛
点赞
关注
(0)
回复
分享
扫一扫,分享给好友
复制链接分享
链接复制成功,分享给好友
举报
提升卡
变色卡
千斤顶
返回列表
发新帖
回复
您需要登录后才可以回帖
登录
|
注册
发表回复
回帖后跳转到最后一页
浏览过的版块
微控制器 MCU
51单片机
活动
更多>>
有奖直播报名中!抢占工业4.1先机,WT·世健科技日等你来!
罗姆有奖直播 | 重点解析双极型晶体管的实用选型方法和使用方法
STM32N6终于要发布了,ST首款带有NPU的MCU到底怎么样,欢迎小伙们来STM32全球线上峰会寻找答案!
免费下载 | 安森美电动汽车充电白皮书,看碳化硅如何缓解“里程焦虑”!
是德科技有奖直播 | 应对未来高速算力芯片的设计与测试挑战
TI 有奖直播 | 使用基于 Arm 的 AM6xA 处理器设计智能化楼宇
安世半导体理想二极管与负载开关,保障物联网应用的稳健高效运行
报名直播赢【双肩包、京东卡、水杯】| 高可靠性IGBT的新选择——安世半导体650V IGBT
开源项目
更多>>
使用 Panasonic 的AN33016UA的参考设计
OP113FSZ-REEL7精密比较器典型应用
AM2S-0518SZ 18V 2瓦直流转直流转换器的典型应用
LTC3526EDC 2 节电池至 5V 升压转换器的典型应用电路
LTC3630AEDHC 5V 至 76V 输入至 5V 输出、150mA 稳压器和 20kHz 最小突发频率的典型应用电路
DN0023,使用 SPV1020 为太阳能应用中的 12V 铅酸电池充电的设计说明
具有大接地回路电压的 LTC2862AMPS8-1 RS485 链路的典型应用
NCV8537MN180GEVB:1.8 V LDO 稳压器评估板
移动机器人Buggy3套件,包括RDDRONE-FMUK66和外设
使用 NXP Semiconductors 的 ISP1161 的参考设计
随便看看
全志R128内存泄露调试案例
#内存泄露调试案例##问题背景硬件:R128软件:FreeRTOS+rtplayer_test(Cedarx)+AudioSystem##问题复现复现步骤:1data/boot.mp32.串口输入"l",循环播放3.串口输入"b",播放器后台执行##具体表现rtplayer_test循环播放老化音频十几分钟后,音乐停止播放,报错如 ...
全志R128蓝牙占用内存资源较大,修改menuconfig配置后经常编译不过或无法运行解决方法
R128蓝牙占用内存资源较大,尝试修改过以下两处的蓝牙配置,修改后再重新编译就会失败1、使用menuconfig修改配置CONFIG_BT_VAR_MEM_DYNC_ALLOC=y,后初始化蓝牙失败```[cmdERR]bt_ready():556,Bluetoothinitfailed(err-105)```添加打印定位到是内存分配失败2 ...
【Follow me第二季第3期】 开箱 + RA6M5
简介等待了这么久,快递终于是到了,这块板子被里三层外三层的包裹着。箱子非常大,到最后只拆剩下了一点点。[attach]863648[/attach]板子正面照[attach]863649[/attach]板子附送的线[attach]863650[/attach]这个板子是我所有带网口的板子中唯一一个附送了网 ...
EEWORLD大学堂----财哥说钛丝
KiCad8怎么画异形焊盘?
Altium Designer 3D模型问题
FM3164:带存储器的集成电路处理器
求救!
大家帮看看这个是什么芯片
请问linux-2.6.22.14内核自带SD卡的 驱动么?
查找数据手册?
搜索
EEWorld Datasheet 技术支持
热门标签
源代码
单片机
放大器
TI
ST
电源
分立器件
传感器
测试测量
模拟
阻尼吸收保护电容器
电容位移传感器
自动化控制系统
模拟量采集器
短波传播
计算机IOT
色环电阻
差分GPS
OpenBlock
Kboot
相关文章
更多>>
消息称铠侠最快明天获上市批准,市值有望达 7500 亿日元
11 月 21 日消息,路透社报道称,在贝恩资本的支持下,铠侠将于当地时间周五(11 月 22 日)获东京证券交易所上市批准。 根据其 IPO 指示价,铠侠的市值预计达到约 7500 亿日元(当前约
美国政府敲定对格芯 15 亿美元《CHIPS》法案补贴,支持后者提升在美产能
11 月 21 日消息,美国商务部当地时间昨日正式宣布将向格芯 GlobalFoundries 提供合计 15 亿美元(当前约 108.71 亿元人民币)的《CHIPS》法案直接资金,具体补贴发放将
SK 海力士宣布量产全球最高的 321 层 1Tb TLC 4D NAND 闪存,计划 2025 上半年对外出货
11 月 21 日消息,SK 海力士刚刚宣布开始量产全球最高的 321 层 1Tb(太比特,与 TB 太字节不同)TLC(Triple Level Cell)4D NAND 闪存。 据介绍,此 32
UWB上车新花样,无线BMS也能用它?
填补国内空白!中国移动、华为等联合发布首颗GSE DPU芯片
三星电子 NRD-K 半导体研发综合体进机,将导入 ASML High NA EUV 光刻设备
苹果揭秘自研芯片成功原因:竞争对手没法用最新尖端技术
芯片大混战将启:高通、联发科涉足笔记本,AMD 被曝入局手机
Exynos 2600 芯片成关键,消息称三星将打响 2nm 芯片反击战
曾称华为不可能追上!台积电制程遥遥领先,2nm未量产已招大客户抢单
新帖速递
STM32和无源蜂鸣器播放声音的问题
车规级AECQ200介绍,混合铝电解电容器的选择
嵌入式教程_DSP技术_DSP实验箱操作教程:2-28 搭建轻量级WEB服务器实验
OPA847IDBVR运放器国产替代
AG32VF407测试UART
【得捷电子Follow Me第二期】第一章 收到货物的分享
请问这个红外接收头是什么型号?能用哪个型号代替?谢谢
出售全新未拆封ZYNQ 7Z020 FPGA核心板
用在锂电池供电的水表设置上的LORA模块,当有100块水表集中安装在一个楼道内时,节能
请问一下,当某个端口被设置为 RX0后,这个端口的输入输出方向还有必要设置吗
今年怎么这么难,比疫情时还难,三十了面临失业好迷茫
请教稳压管测试问题
【小华HC32F448测评】关于小华半导体的UART中断发送和PRINTF构造和重定向
【BIGTREETECH PI开发板】 HDMI输出测试
【BIGTREETECH PI开发板】+08.音频测试(zmj)
精选推荐
CW32L010学习笔记
帮忙分析下EMI不过的原因
报名剩2天:30套RV1106 Linux开发板(带摄像头),邀您挑战边缘AI~
拯救电源EMI的铁三角:电感、磁珠、电容
开关电源上拉电阻和上拉电阻电路图解
启明云端&触觉智能与您相约2024年慕尼黑国际电子元器件博览会,不见不散!
深度学习框架的相关讨论
[STM32H7R/S]测评 ⑦制作一个NANO EDGE AI STUDIO采集数据使用的Data Logger
启明云端&触觉智能与您相约2024年慕尼黑国际电子元器件博览会,不见不散!
【2024 DigiKey创意大赛】基于树莓派的幸福晚年辅助宝
等待很久的STM32N6终于要发布了!
ST首款带有NPU的MCU到底怎么样,欢迎小伙们来STM32全球线上峰会寻找答案!报名峰会,还能赢【开发板、京东卡】呦~12月12日14:00不见不散!
查看 »
有奖直播报名| 高可靠性IGBT新选择 —— 安世半导体650V IGBT
【直播时间】12月19日(周四)下午15:00-16:30
【直播好礼】定制双肩商务包、30元京东卡、吸管玻璃杯
查看 »
安世半导体直播报名中
直播主题:安世半导体理想二极管与负载开关,保障物联网应用的稳健高效运行
直播时间:12月17日(周二)下午14:00
报名就有机会获得:定制双肩商务包、30元京东卡、吸管玻璃杯
查看 »
PI 电源小课堂 | 无 DC-DC 变换实现多路高精度输出反激电源
时间:即日起-12月15日
看视频学习电源干货,答题赢取京东卡!
查看 »
参会有好礼 | 2024 瑞萨电子MCU/MPU工业技术研讨会
深圳站:11月30日(周六)深圳湾万怡酒店
上海站:12月06日(周五)上海喜玛拉雅酒店
奖励设置:现金红包、螺丝刀套装或30元京东卡
查看 »
Littelfuse 新品赋能电子产品安全可靠并高效, 10+挑战等你探索!
Littelfuse 应用赋能星球,覆盖了诸多应用痛点及解决办法,邀请工程师一起探索,解锁更多设计力!
查看 »
下载资料赢好礼!看Vicor模块化电源解决方案如何推动创新
活动时间:即日起-2024年12月31日
如何参与:点击活动页内您想了解的模块,找到资料下载即可参与抽奖,活动结束后统一发奖!
查看 »
有奖活动|英飞凌高密度双相电源模块为高性能运算平台而生
活动时间:即日起-12月15日
活动奖励:蓝牙音箱、氮化镓充电器套装、黑色小背包
查看 »
本月精选下载推荐:
Vishay——选型-汽车级表面贴装和通孔超快整流器
查看 »
本周精选下载推荐:电源管理基础Dummies
本周小编给大家带来一本超简单、超干货的电子书——《电源管理基础Dummies》!内容深入浅出,排版舒服简洁,分分钟能get到电源管理最核心的知识内容。
查看 »
关闭
站长推荐
1
/10
电子工程世界版权所有
京B2-20211791
京ICP备10001474号-1
电信业务审批[2006]字第258号函
京公网安备 11010802033920号
Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复
返回顶部
返回列表
论坛首页
版块列表
专业技术中心
TI技术论坛
ST传感器与低功耗无线技术论坛
ADI参考电路
DigiKey得捷技术专区
ADI · 世健工业技术
电子技术交流
嵌入式系统
单片机
国产芯片交流
电机驱动控制
FPGA/CPLD
模拟电子
电源技术
PCB技术
RF/无线
传感器
综合技术交流
下载中心专版
大学堂专版
测评中心专版
创意与实践
电子竞赛
DIY/开源硬件专区
淘e淘
创意市集
行业应用
汽车电子
移动便携
医疗电子
工控电子
安防电子
休息一下
聊聊、笑笑、闹闹
工作这点儿事
为我们提意见&公告
EEWorld颁奖专区
信息发布
最新帖子
最新帖子
最新回复
精华
消灭零回复
测评中心
活动中心
积分兑换
E金币兑换
芯积分
厂商专区
TI技术论坛
ST传感器与低功耗无线技术论坛