硬汉嵌入式论坛

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

[RL-RTX] 动态分配内存的意义与应用场合

[复制链接]

17

主题

32

回帖

83

积分

初级会员

积分
83
发表于 2018-7-30 09:57:45 | 显示全部楼层 |阅读模式
请教大家,在学习RTX时,我始终没有搞清楚动态分配内存的意义。是因为RTX没有内存管理,所以要求用户自己处理,还是由于给用户开放这个功能,能使内存管理更为高效?
在什么场合下需要进行动态分配内存的操作呢?请大家不吝赐教。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
111540
QQ
发表于 2018-7-30 10:08:26 | 显示全部楼层
有。有两种。
1、一种是是数组式方式的动态分配,每次分配大小固定,这种方式安全可靠,uCOS一直用的这种方式。
这个看教程即可:
http://www.armbbs.cn/forum.php?m ... &extra=page%3D1

2、另一种是类似malloc方式的,这种方式有碎片问题,所以使用的时候一定要保证成对使用,避免碎片,对应的文件是rt_memory.c
这个看综合Demo例子即可
http://www.armbbs.cn/forum.php?m ... &extra=page%3D1
回复

使用道具 举报

17

主题

32

回帖

83

积分

初级会员

积分
83
 楼主| 发表于 2018-7-30 10:38:14 | 显示全部楼层
eric2013 发表于 2018-7-30 10:08
有。有两种。
1、一种是是数组式方式的动态分配,每次分配大小固定,这种方式安全可靠,uCOS一直用的这种 ...

内存动态分配应用场合能不能理解为,类似更高级的C#等语言中的arraylist,
即需要更改数组大小时,动态分配就派上用场了。若是一个定长的数组,也没有必要使用内存动态分配,请教版主,这样的理解对吗?
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
111540
QQ
发表于 2018-7-30 10:42:11 | 显示全部楼层
鬼脚七 发表于 2018-7-30 10:38
内存动态分配应用场合能不能理解为,类似更高级的C#等语言中的arraylist,
即需要更改数组大小时,动态 ...

简单些可以。

类似malloc的动态内存用在什么地方呢,像MP3解码,JPEG解码,视频解码等地方,因为他们的接口函数就是这种需要随意申请各种大小的空间。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
111540
QQ
发表于 2018-7-30 10:42:14 | 显示全部楼层
鬼脚七 发表于 2018-7-30 10:38
内存动态分配应用场合能不能理解为,类似更高级的C#等语言中的arraylist,
即需要更改数组大小时,动态 ...

简单些可以。

类似malloc的动态内存用在什么地方呢?像MP3解码,JPEG解码,视频解码等地方,因为他们的接口函数就是这种需要随意申请各种大小的空间。
回复

使用道具 举报

17

主题

32

回帖

83

积分

初级会员

积分
83
 楼主| 发表于 2018-7-30 10:46:33 | 显示全部楼层
eric2013 发表于 2018-7-30 10:42
简单些可以。

类似malloc的动态内存用在什么地方呢?像MP3解码,JPEG解码,视频解码等地方,因为他们 ...

谢谢版主,现在读您的RTX教程就更清晰明白了
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-1 07:36 , Processed in 0.247311 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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