硬汉嵌入式论坛

 找回密码
 立即注册
查看: 6957|回复: 9
收起左侧

[ThreadX全家桶] ThreadX内存管理方式?

[复制链接]

19

主题

72

回帖

129

积分

初级会员

积分
129
发表于 2021-4-8 17:33:19 | 显示全部楼层 |阅读模式
ThreadX内存管理方式:


1. 字节内存:最大的不足就是会导致内存碎片


2. 块内存:一块的内存大小是固定的,虽然可以建立多个内存块池,但还是没有FreeRTOS heap_4分配来得直接。


如果要频繁的使用分配内存和释放内存(这个内存大小随机),感觉这两种方式都有不足之处。






回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107439
QQ
发表于 2021-4-9 08:12:32 | 显示全部楼层
你貌似搞错了,FreeRTOS的heap_4的动态内存就是碎片方式的,他应该跟字节内存方式比较。
回复

使用道具 举报

19

主题

72

回帖

129

积分

初级会员

积分
129
 楼主| 发表于 2021-4-9 13:10:51 | 显示全部楼层
eric2013 发表于 2021-4-9 08:12
你貌似搞错了,FreeRTOS的heap_4的动态内存就是碎片方式的,他应该跟字节内存方式比较。

我做了一个测试,大量使用动态分配内存和释放内存。

heap_4: 监控freertos内存发现不会溢出

threadx字节内存:监控到字节内存池碎片越来越大,直至溢出。

同样都支持内存整理,不知道为什么threadx的字节内存池容易出现大量内存碎片,


回复

使用道具 举报

613

主题

3067

回帖

4926

积分

至尊会员

积分
4926
发表于 2021-4-9 17:17:19 | 显示全部楼层
去这个地方下载测试看看效果

http://www.armbbs.cn/forum.php?m ... d=105867&extra=
回复

使用道具 举报

613

主题

3067

回帖

4926

积分

至尊会员

积分
4926
发表于 2021-4-9 17:18:55 | 显示全部楼层
血染风采2017 发表于 2021-4-9 13:10
我做了一个测试,大量使用动态分配内存和释放内存。

heap_4: 监控freertos内存发现不会溢出;

你测试内存申请,释放 程序贴出来看看,使用的什么方试进行 动态内存分配,释放的 ?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107439
QQ
发表于 2021-4-10 08:54:31 | 显示全部楼层
血染风采2017 发表于 2021-4-9 13:10
我做了一个测试,大量使用动态分配内存和释放内存。

heap_4: 监控freertos内存发现不会溢出;

动态大小的内存申请和释放,内存碎片是不可避免,只是测试方法和大批量测试机制的问题。
回复

使用道具 举报

19

主题

72

回帖

129

积分

初级会员

积分
129
 楼主| 发表于 2021-4-12 11:46:19 | 显示全部楼层
hpdell 发表于 2021-4-9 17:17
去这个地方下载测试看看效果

http://www.armbbs.cn/forum.php?mod=viewthread&tid=105867&extra=

自己实现内存分配可能不是一个好的方式。FreeRTOS和ThreadX的内存管理器都经过的良好的测试。你这个内存管理似乎不是可重入和线程安全的,这在系统中将是灾难性的。
回复

使用道具 举报

19

主题

72

回帖

129

积分

初级会员

积分
129
 楼主| 发表于 2021-4-12 11:52:02 | 显示全部楼层
eric2013 发表于 2021-4-10 08:54
动态大小的内存申请和释放,内存碎片是不可避免,只是测试方法和大批量测试机制的问题。

内存碎片确实不可避免,但是频繁调用分配和释放内存,FreeRTOS的不会溢出,ThreadX的溢出了,监控到的ThreadX的内存碎片多的吓人(几万个内存碎片了),直接都导致内存溢出了。虽然ThreadX的块内存不会有内存碎片,但是块的大小是有固定的,没有字节内存方便,这就让人难受了。。。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107439
QQ
发表于 2021-4-12 12:19:44 | 显示全部楼层
血染风采2017 发表于 2021-4-12 11:52
内存碎片确实不可避免,但是频繁调用分配和释放内存,FreeRTOS的不会溢出,ThreadX的溢出了,监控到的Thr ...

其实这个东西研究不研究意义不大,这种动态内存管理是不可以用到安全关键项目的。无法通过安全认证。

方面的话,可以到官方Github发你的测试代码和测试方法。让他们研究下。

回复

使用道具 举报

3

主题

66

回帖

75

积分

初级会员

积分
75
发表于 2021-4-12 14:30:39 | 显示全部楼层
安全级的软件 没有动态内存一说
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-31 22:35 , Processed in 0.219228 second(s), 26 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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