求教:uC/OS-II内存管理在实际使用中的问题

  • gtrjolin1991
  • LV0工程师
  • |      2013-03-25 10:49:00
  • 浏览量 1074
  • 回复:9
uC/OS-II的内存管理中创建的内存块大小都是一样的大小. 如果都块大小是100. 而我们在申请内存的时候使用大小为20的情况加多,这样就会导致内存的使用效率不高 如果定义块大小为20. 那么在使用到大块的数据内存就没办法调用内核函数. 是否有办法创建内存池的时候可以自己定义内存块大小和数目. 如: 大小为20的50块. 大小为100的10块 大小为1000的为2块. ....... 求高手指点下,最好能有源码.谢谢!
  • 0
  • 收藏
  • 举报
  • 分享
我来回复

登录后可评论,请 登录注册

所有回答 数量:5
liudd 2013-04-05
嗯,好的,谢谢。
0   回复
举报
发布
xiamx 2013-04-03
我还不是很清楚你的修改需求。只要不是想搞成有多种不同大小的存储块,只是想静态的修改这个存储块大小和个数的话,应该只需要找找相关的参数宏,然后跟踪一下这些宏有没有什么特别的要求。UCOS2的定制能力要做到这点该不会是很难的吧。以上都是个人观点,未经考证。

UCOS2内存管理的内核代码我也没有仔细研究过,只是阅读过一些书籍,了解过它的外部特性,内存管理实现的思想也知道一些。具体的细节性问题不敢瞎说,只是依感觉,你找找相关的资料,说不定在那个config的配置文件中有的。代码上,你顺着malloc这个函数往底层找相关内存块大小的代码。

UCOS2确实用的人很多,一般的需求都是可以满足的,至少有些需求转个弯也还是可以满足的。实在不行,Missque提供的资料也可以参考一下,换个OS也可以趁机会扩展一下眼界和思路。希望能帮到你。
0   回复
举报
发布
gtrjolin1991 2013-04-02
学习了
0   回复
举报
发布
wanli 2013-04-02
ucos不管是ucos-II还是ucos-III里面内存块大小都是一样的,正如2楼所说的。
自己改写ucos会很复杂,而且ucos本身架构设计的时候并没有设计成可变内存块
推荐你换一个操作系统,uTenux可以有可变内存池的功能,能实现你要效果
0   回复
举报
发布
liussadfa 2013-03-26
顶起....
0   回复
举报
发布
x
收藏成功!点击 我的收藏 查看收藏的全部帖子