首页  |   新闻  |   技术  |   案例  |   展会  |   下载  |   论坛   |  社区   
造车网
资讯      技术      企业      展会  
 E杂志  在线研讨会
 AutoTV 视频  工业经理人
   您现在的位置: 首 页 >> 正文

一种嵌入式系统的内存分配方案


造车网 http://www.zaoche168.com/ 2009年08月17日

  1 嵌入式系统中对内存分配的要求
  
  ①快速性。
  
  嵌入式系统中对实时性的保证,要求内存分配过程要尽可能地快。因此在嵌入式系统中,不可能采用通用操作系统中复杂而完善的内存分配策略,一般都采用简单、快速的内存分配方案。当然,对实性要求的程序不同,分配方案也有所不同。例如,VxWorks采用简单的最先匹配如立即聚合方法;VRTX中采用多个固定尺寸的binning方案。
  
  ②可靠性。
  
  也就是内存分配的请求必须得到满足,如果分配失败可能会带来灾难性的后果。嵌入式系统应用的环境千变万化,其中有一些是对可靠性要求极高的。比如,汽车的自动驾驶系统中,系统检测到即将撞车,如果因为内存分配失败而不能相应的操作,就会发生车毁人亡的事故,这是不能容忍的。
  
  ③高效性。
       
  内存分配要尽可能地少浪费。不可能为了保证满足所有的内存分配请求而将内存配置得无限大。一方面,嵌入式系统对成本的要求使得内存在其中只是一种很有限的资源;另一方面,即使不考虑成本的因素,系统有限的空间和有限的板面积决定了可配置的内存 
容量是很限的。
  
  2 静态分配与动态分配
  
  究竟应用使用静态分配还是动态分配,一直是嵌入式系统设计中一个争论不休的。当然,最合适的答案是对于不同的系统采用不同的方案。如果是系统对于实时性和可靠性的要求极高(硬实时系统),不能容忍一点延时或者一次分配失败,当然需要采用静态分配方案,也就是在程序编译时所需要的内存都已经分配好了。
  
  例如,火星探测器上面的嵌入式系统就必须采用静态分配的方案。另外,WindRiver公司的一款专门用于汽车电子和工业自动化领域的实时操作系统OSEKWorks中就不支持内存的动态分配。在这样的应用场合,成本不支持内存的动态分配。在这样的应用场合,成本不是优先考虑的对象,实时性和可靠性才是必须保证的。
  
  当然,采用静态分配一个不可避免的总是就是系统失去了灵活性,必须在设计阶段就预先知道所需要的内存并对之作出分配;必须在设计阶段就预先考虑到所有可能的情况,因为一旦出现没有考虑到的情况,系统就无法处理。这样的分配方案必须导致很大的浪费,因为内存分配必须按照最坏情况进行最大的配置,而实际上在运行中可能使用的只是其中的一小部分;而且在硬件平台不变的情况下,不可能灵活地为系统添加功能,从而使得系统的升级变得困难。
  
  大多数的系统是硬实时系统和软实时系统的综合。也就是说,系统中的一部分任务有严格的时限要求,而另一部分只是要求完成得越快越好。按照RMS(Rate Monotoin Scheduling)理论,这样的系统必须采用抢先式任务调度;而在这样的系统中,就可以采用动态内存分配来满足那一部分可靠性和实时性要求不那么高的任务。
  
  采用动态内存分配的好处就是给设计者很大的灵活性,可以方便地将原来运行于非嵌入式操作系统的程序移植到嵌入式系统中,比如,许多嵌入式系统中使用的网络协议栈。如果必须采用静态内存分配,移植这样的协议栈就会困难得多。
  
  另外,采用动态内存分配可以使设计者在不改变基本的硬件平台的情况下,比较灵活地调整系统的功能,在系统中各个功能之间作出权衡。例如,可以在支持的VLAN数和支持的路由条目数之间作出调整,或者不同的版本支持不同的协议。说到底,动态内存分配给了嵌入式系统的程序设计者在比较少的限制和较大的自由。因此,大多数实时操作系统提供了动态内存分配接口,例如malloc和free函数。
      
   3 RTOS提供的内存分配接口
       
  不同的RTOS由于其不同的定位,采用不同的内存分配策略。例如VRTX中,采用类似于GNU C中由Doug Lea开发的内存分配方案,即Binning算法,系统内存被分成了一些固定尺寸的内存块的算法,系统内存被分成了一些固定尺寸的内存块的集合。这种方法的优点是查找速度快而且不会产生内存碎片。但是,它的缺点也很明显,就是容易造成浪费,因为内存块的尺寸只有有限个,分配时只能取较大的内存块来满足一个较小的需求,累积起来,浪费就很大了;而且操作系统管理这样一个内存分配表也是一个很大的负担。

 [1]  [2]  [3]  [4]  [5] 

 
相关链接
2009中国国际工业博览会-工业自动化展 [ 2009-11-03]
采购合适的汽车坐套 [ 2009-08-18]
事故车送修的技巧 [ 2009-08-18]
如何避免供应链中断 [ 2009-08-17]
气温升高 汽车空调应这样检查 [ 2009-08-17]
新车磨合期要注意啥 节省燃油技巧指南 [ 2009-08-17]
风河公司与Freescale联合推出预先集成车载设 [ 2009-08-17]
汽车电子自主研发成效显著 关键技术待突破 [ 2009-08-17]
VDC Research Group:风河为最领先嵌入式Linux厂商 [ 2009-08-06]
Microchip推出可用于汽车导航系统的模拟电阻式触摸屏控制器 [ 2009-08-03]
TI副总裁访华,描绘收购Luminary后的MCU新蓝图 [ 2009-07-29]
多功能嵌入式车辆行驶监控终端设计 [ 2009-07-13]
汽车电子自主研发成效显著 关键技术待突破 [ 2009-06-25]
英特尔8.84亿美金收购风河,全面布局PC以外的市场 [ 2009-06-10]
Atmel发布即插即用主机侧加密认证IC AT88SA10HS [ 2009-06-10]
  相关群组   
  相关话题   
  关于 " 一种嵌入式系统的内存分配方案 " ,填写反馈

验证码:    看不清

用户名:          密 码:         
还不是 zaoche168 注册会员? 立即免费注册 节省更多时间!
  直通车 :   ( 无须注册,轻松沟通 )
*姓名:     *单位名称:
*电话:     *电子邮件:
 
    
 
在线研讨会
 • 西门子“人机工程仿真领域解决方案”在线研讨会
 • Dymola解决方案在轨道交通行业中的应用在线研讨会
 • NX 产品设计解决方案网络研讨会
 • 倍福 XFC(eXtreme Fast Control Technology)极速控制技术在线研讨会
 • siemens PLM 数字化制造解决方案
 • SIEMENS面向可制造、可装配、可维护的产品设计过程研讨会
 • 西门子NX8 CAE软件新功能介绍在线研讨会
 • 西门子:Femap 10.3新功能介绍及其应用案例在线研讨会
 • 西门子:CAM Express 8 新增功能介绍在线研讨会
 • 西门子“Tecnomatix 10软件新版本介绍”在线研讨会
热点信息

 
  北京市朝阳区东四环中路58号远洋国际中心C座2402室 电话:010-57111937 传真:010-65307859
  Copyright ©1997-2012 zaoche168.com & SooQ. All rights reserved. 造车网 版权所有 京ICP备09015258号
IIAnews.com&SooQ 在线研讨会 2011运动控制应用技术在线研讨会 • 魏德米勒直流不间断电源产品特点及应用[回放]    • 2011科尔摩根运动控制产品及其印刷行业应用方案[回放]    • 2011SIRIUS(国产)和新一代SIRIUS(进口)控制和保护产品[回放]    • 2010科尔摩根 (Kollmorgen) 伺服系统新品推介 [回放]    • 2010魏德米勒OMNIMATE Power电源接插件[回放]    • 2010魏德米勒全系列工具产品介绍[回放]    • Thomson直线运动单元产品[回放]    • 2010安全控制应用技术[回放]    • 2010康耐视机器视觉在各大行业的应用[回放]   
分享到: