| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1809 人关注过本帖
标题:一个类嵌入式系统采用的buffer pool管理模块
取消只看楼主 加入收藏
viky2003
Rank: 5Rank: 5
等 级:职业侠客
帖 子:375
专家分:383
注 册:2007-4-11
结帖率:100%
收藏
已结贴  问题点数:100 回复次数:3 
一个类嵌入式系统采用的buffer pool管理模块
我闲着无聊写了个这个经常用到的memory pool管理模块。
在嵌入式系统中用的比较多。如果有错误请指正。

memory_management.rar (38.78 KB)

搜索更多相关主题的帖子: 模块 系统 嵌入式 pool buffer 
2009-11-06 23:37
viky2003
Rank: 5Rank: 5
等 级:职业侠客
帖 子:375
专家分:383
注 册:2007-4-11
收藏
得分:0 
打个广告:我们公司招收Windows CE和Andriod软件工程师,要求是至少一年以上工作经验,重点大学毕业,薪水10w以上。
如果有这个实力可以回帖联系我。



要练习算法就来http:///!!有挑战哦!!
2009-11-06 23:48
viky2003
Rank: 5Rank: 5
等 级:职业侠客
帖 子:375
专家分:383
注 册:2007-4-11
收藏
得分:0 
回复 7楼 StarWing83
谢谢给出意见,学习了。

我写的很多程序都不是在电脑上运行的,所以可能有点不同。
ARM9嵌入式系统应用程序的常用buffer很多都是预留出来,比如MMI常用的buffer都是这样分配出来的。
这样做的好处是可以对每个task需要的buffer进行预估,避免系统的SRAM-DRAM不足。
同时常用buffer经常malloc和free显得效率低下。

至少手机的软件大多是这么做的。

同时assert只是debug时候的有用,在实际系统运行时,这个需要系统支持才能真正可以得到assert信息,比如让
数字电视蓝屏死机,并打印debug信息(assert or fatal error or data abort...)出来。或者让手机死机等等。。

在电脑上用这个来跑,就没有必要assert了。



要练习算法就来http:///!!有挑战哦!!
2009-11-07 12:12
viky2003
Rank: 5Rank: 5
等 级:职业侠客
帖 子:375
专家分:383
注 册:2007-4-11
收藏
得分:0 
回复 10楼 StarWing83
哈哈。
其实我们很多手机系统上的buffer都是用静态数组来分配的,在系统初始化的时候就用到分配了。
如果不够,那么就开不了机,如果还有多余的,那么我们会跟据Memory的配置,将剩余的设置为
一个公共的pool。然后每个task构建这样的pool。如果本task的pool用玩了,就用公共的。
如果公共的完了,别人没的用,就会assert。
这样就不需要malloc和free这样ANSI的函数了,只要适配一对管理pool的API就够了。

不过 smart Phone的内存管理又不一样。


不过谢谢,你毕业欢迎来我们公司,待遇不错哦。


要练习算法就来http:///!!有挑战哦!!
2009-11-10 20:02
快速回复:一个类嵌入式系统采用的buffer pool管理模块
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.027411 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved