OpenEdv-开源电子网

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

UCOSIII中内存块数量有啥用

[复制链接]

24

主题

63

帖子

0

精华

初级会员

Rank: 2

积分
52
金钱
52
注册时间
2018-1-19
在线时间
50 小时
发表于 2018-7-19 10:13:19 | 显示全部楼层 |阅读模式
5金钱
我是一个刚学UCOSIII的新手。我看完原子UCOSIII存储管理以后,对内存区内内存块数量有些疑问。申请内存时,如果所申请的内存过大,不能把几个内存块连在一起,就只能再创个更大的内存块。同时连续申请内存块而不单个释放又是不可以的,那么内存块数量还有啥意义?

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

88

主题

7377

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
14980
金钱
14980
注册时间
2013-11-13
在线时间
1823 小时
发表于 2018-7-19 11:11:59 | 显示全部楼层
所以文档上说UCOSIII的内存管理很粗糙!这是文明的说法,直白的说:很垃圾!
回复

使用道具 举报

3

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
60
金钱
60
注册时间
2016-9-5
在线时间
10 小时
发表于 2018-7-19 11:58:33 | 显示全部楼层
首先要理解内存块是什么意思,内存块就是,内存管理的最小单元。如果你把内存块设置太小,哪管理他的内存表就要求大了。
比如内存有10K,内存块设置为1K 哪内存表就要10个字节,需要的总共内存 10K+10;
                          内存块设置10个字节 那么内存表就要1K字节,需要的总共内存 10K+1K
假定:内存块 1K个字节 内存块 10个。你要用内存1.1K 那么10K内存,你只能用5次就没了,因为虽然你用了1.1k,但分配的时候你要占用2个内存块。5次 就用完了。
同理  你用1个字节,你也只能用10次。
所以没做优化的内存管理系统,内存块大小要根据你使用情况来设置个合适的参数。
回复

使用道具 举报

24

主题

63

帖子

0

精华

初级会员

Rank: 2

积分
52
金钱
52
注册时间
2018-1-19
在线时间
50 小时
 楼主| 发表于 2018-7-19 13:00:53 | 显示全部楼层
movzh 发表于 2018-7-19 11:58
首先要理解内存块是什么意思,内存块就是,内存管理的最小单元。如果你把内存块设置太小,哪管理他的内存表 ...

我的意思是UCOSIII自带的内存管理内存块数量好像没有什么用,因为不能连续用内存块,必须用一个释放一个。不过谢谢你了了。
回复

使用道具 举报

24

主题

63

帖子

0

精华

初级会员

Rank: 2

积分
52
金钱
52
注册时间
2018-1-19
在线时间
50 小时
 楼主| 发表于 2018-7-19 13:01:56 | 显示全部楼层
zuozhongkai 发表于 2018-7-19 11:11
所以文档上说UCOSIII的内存管理很粗糙!这是文明的说法,直白的说:很垃圾!

然后我还是没明白,UCOSIII的内存块数量设计到底有啥用。我现在还处在理解状态
回复

使用道具 举报

20

主题

200

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
462
金钱
462
注册时间
2015-11-28
在线时间
89 小时
发表于 2018-7-24 09:36:23 | 显示全部楼层
额. 给空指针 申请内存啊.
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-23 04:25

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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