

文本内容:
一种嵌入式系统的内存分配方案关键词嵌入式系统内存管理一次分配屡次使用1嵌入式系统中对内存分配的要求
①快速性嵌入式系统中对实时性的保证,要求内存分配过程要尽可能地快因此在嵌入式系统中,不可能采用通用操作系统中复杂而完善的内存分配策略,一般都采用简单、快速的内存分配当然,对实性要求的程序不同,分配方案也有所不同例如,VxWorks采用简单的最先匹配如立即聚合方法;VRTX中采用多个固定尺寸的binning方案
②可靠性也就是内存分配的请求必须得到满足,如果分配失败可能会带来灾难性的后果嵌入式系统应用的环境千变万化,其中有一些是对可靠性要求极高的比方,汽车的自动驾驶系统中,系统检测到即将撞车,如果因为内存分配失败而不能相应的操作,就会发生车毁人亡的事故,这是不能容忍的
③高效性内存分配要尽可能地少浪费不可能为了保证满足所有的内存分配请求而将内存配置得无限大一方面,嵌入式系统对本钱的要求使得内存在其中只是一种很有限的资源;另一方面,即使不考虑本钱的因素,系统有限的空间和有限的板面积决定了可配置的内存容量是很限的2静态分配与动态分配究竟应用使用静态分配还是动态分配,一直是嵌入式系统设计中一个争论不休的总是当然,最适宜的答案是对于不同的系统采用不同的方案如果是系统对于实时性和可靠性的要求极高(硬实时系统),不能容忍一点延时或者一次分配失败,当然需要采用静态分配方案,也就是在程序编译时所需要的内存都已经分配好了例如,火星探测器上面的嵌入式系统就必须采用静态分配的方案另外,WindRiver公司的一款专门用于汽车电子和工业自动化领域的实时操作系统OSEKWorks中就不支持内存的动态分配在这样的应用场合,本钱不支持内存的动态分配在这样的应用场合,本钱不是优先考虑的对象,实时性和可靠性才是必须保证的当然,采用静态分配一个不可防止的总是就是系统失去了灵活性,必须在设计阶段就预先知道所需要的内存并对之作出分配;必须在设计阶段就预先考虑到所有可能的情况,因为一旦出现没有考虑到的情况,系统就无法处理这样的分配方案必须导致很大的浪费,因为内存分配必须按照最坏情况进行最大的配置,而实际上在运行中可能使用的只
[1]
[2]
[3]
[4]
[5]
[6]
[7]模板内容仅供参考 。


