OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2038|回复: 4

请教大家关于FreeRTOS内存泄漏分析问题

[复制链接]

74

主题

182

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
279
金钱
279
注册时间
2021-2-5
在线时间
133 小时
发表于 2023-6-14 17:06:07 | 显示全部楼层 |阅读模式
请教大家一个问题,是这样的,服务器给到底层指令就会创建任务运行,执行完成之后就会使用vTaskDelete(null)删除自己,这个过程是循环的,等于是在进行稳定测试,现在有个问题就是出现了内存泄漏,我用xPortGetFreeHeapSize发现每次创建任务都会让内存减少,整个内存随着任务一次次创建减少;  我的看法是这样的,删除自身之后,任务堆栈是在空闲任务释放,但是服务器指令一直下来,就会导致空闲任务无法运行,从而无法释放内存,也就导致内存泄漏,这个理解有没有问题
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

451

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3316
金钱
3316
注册时间
2016-3-19
在线时间
815 小时
发表于 2023-6-15 11:31:52 | 显示全部楼层
删除自身任务,内存释放确实是在空闲任务中进行,如果有其它任务在运行,空闲任务得不到运行的话,就会出现内存释放不了的情况

如果项目功能允许的情况下,服务器给到底层指令 可以作为一个常规任务,创建后不删除

如果必须要创建任务后删除任务,看看下发指令可不可以空闲一定时间后再次下发
Nothing is impossible
回复 支持 反对

使用道具 举报

74

主题

182

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
279
金钱
279
注册时间
2021-2-5
在线时间
133 小时
 楼主| 发表于 2023-6-16 14:55:04 | 显示全部楼层
unnormal 发表于 2023-6-15 11:31
删除自身任务,内存释放确实是在空闲任务中进行,如果有其它任务在运行,空闲任务得不到运行的话,就会出现 ...

感谢指点,现在是维护公司的代码,测试的时候发现这个问题,突然想起可以打印空闲内存的大小,打印查看变化发现不是任务堆栈释放的问题,而是链表部分申请的内存释放有问题,虽然还没找到具体位置,但有了查找方向
回复 支持 反对

使用道具 举报

0

主题

451

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3316
金钱
3316
注册时间
2016-3-19
在线时间
815 小时
发表于 2023-6-20 11:17:37 | 显示全部楼层
15284083060 发表于 2023-6-16 14:55
感谢指点,现在是维护公司的代码,测试的时候发现这个问题,突然想起可以打印空闲内存的大小,打印查看变 ...

弱弱的问一下    问题解决了吗
Nothing is impossible
回复 支持 反对

使用道具 举报

0

主题

451

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3316
金钱
3316
注册时间
2016-3-19
在线时间
815 小时
发表于 2023-6-20 11:18:09 | 显示全部楼层
15284083060 发表于 2023-6-16 14:55
感谢指点,现在是维护公司的代码,测试的时候发现这个问题,突然想起可以打印空闲内存的大小,打印查看变 ...

如果解决了   方便分享一下经验吗
Nothing is impossible
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 17:01

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表