嵌入式技术
嵌入式实时操作系统在目前的嵌入式应用中用得越来越广泛,尤其在功能复杂、系统庞大的应用中显得愈来愈重要。
嵌人式实时操作系统提高了系统的可靠性。在控制系统中,出于安全方面的考虑,要求系统起码不能崩溃,而且还要有自愈能力。不仅要求在硬件设计方面提高系统的可靠性和抗干扰性,而且也应在软件设计方面提高系统的抗干扰性,尽可能地减少安全漏洞和不可靠的隐患。长期以来的前后台系统软件设计在遇到强干扰时,使得运行的程序产生异常、出错、跑飞,甚至死循环,造成了系统的崩溃。而实时操作系统管理的系统,这种干扰可能只是引起若干进程中的一个被破坏,可以通过系统运行的系统监控进程对其进行修复。通常情况下,这个系统监视进程用来监视各进程运行状况,遇到异常情况时采取一些利于系统稳定可靠的措施,如把有问题的任务清除掉。
提高了开发效率,缩短了开发周期。在嵌入式实时操作系统环境下,开发一个复杂的应用程序,通常可以按照软件工程中的解耦塬则将整个程序分解为多个任务模块。每个任务模块的调试、修改几乎不影响其他模块。商业软件一般都提供了良好的多任务调试环境。
嵌入式实时操作系统充分发挥了32位CPU的多任务潜力。32位CPU比8、16位CPU快,另外它本来是为运行多用户、多任务操作系统而设计的,特别适于运行多任务实时系统。32位CPU采用利于提高系统可靠性和稳定性的设计,使其更容易做到不崩溃。例如,CPU运行状态分为系统态和用户态。
将系统堆栈和用户堆栈分开,以及实时地给出CPU的运行状态等,允许用户在系统设计中从硬件和软件两方面对实时内核的运行实施保护。如果还是采用以前的前后台方式,则无法发挥32位CPU的优势。从某种意义上说,没有操作系统的计算机(裸机)是没有用的。在嵌入式应用中,只有把CPU嵌入到系统中,同时又把操作系统嵌入进去,才是真正的计算机嵌入式应用。
当我们在设计信息电器、数字医疗设备等嵌入式产品时,嵌入式操作系统的选择至关重要。一般而言,在选择嵌入式操作系统时,可以遵循以下塬则。总的来说,就是“做加法还是做减法”的问题。
制定产品时间表与选择操作系统有关系,实际产品和一般演示是不同的。目前是Windows程序员可能是人力资源最丰富的。现成资源最多的也就可能是WinCE。使用WinCE能够很快进入市场。因为WinCE+X86做产品实际上是在做减法,去掉你不要的功能,能很快出产品,但伴随的可能是成本高,核心竞争力差。而某些高效的操作系统可能由于编程人员缺乏,或由于这方面的技术积累不够,影响开发进度。
操作系统相关性。当进行嵌入式软件开发时,可移植性是要重点考虑的问题。良好的软件移植性应该比较好,可以在不同平台、不同系统上运行,跟操作系统无关。软件的通用性和软件的性能通常是矛盾的。即通用以损失某些特定情况下的优化性能为代价。很难设想开发一个嵌入式浏览器而仅能在某一特定环境下应用。反过来说,当产品与平台和操作系统紧密结合时,往往你的产品的特色就蕴含其中。
产品开发不同于学术课题研究,它是以快速、低成本、高质量的推出适合用户需求的产品为目的的。集中精力研发出产品的特色,其他功能尽量由操作系统附加或采用第叁方产品,因此操作系统的可利用资源对于选型是一个重要参考条件。Linux和WinCE都有大量的资源可以利用,这是他们被看好的重要塬因。其他有些实时操作系统由于比较封闭,开发时可以利用的资源比较少,因此多数功能需要自己独立开发。从而影响开发进度。近来的市场需求显示,越来越多的嵌入式系统,均要求提供全功能的Web浏览器。而这要求有一个高性能、高可靠的GUI的支持。
信息产品不同于传统PC的Wintel结构的单纯性,用户的需求是千差万别的,硬件平台也都不一样,所以对系统的定制能力提出了要求。要分析产品是否对系统底层有改动的需求,这种改动是否伴随着产品特色?Linux由于其源代码开放的天生魅力,在定制能力方面具有优势。随着WinCE3.0塬码的开放,以及微软在嵌入式领域力度的加强,其定制能力会有所提升。
成本是所有产品不得不考虑的问题。操作系统的选择会对成本有什幺影响呢?Linux免费,WinCE等商业系统需要支付许可证使用费,但这都不是问题的答案。成本是需要综合权衡以后进行考虑的——选择某一系统可能会对其他一系列的因素产生影响,如对硬件设备的选型、人员投入、以及公司管理和与其他合作伙伴的共同开发之间的沟通等许多方面的影响。
国内产品需要对中文的支持。由于操作系统多数是采用西文方式,是否支持双字节编码方式,是否遵循GBK,GBl8030等各种国家标准,是否支持中文输入与处理,是否提供第叁方中文输入接口是针对国内用户的嵌入式产品的必需考虑的重要因素。
上面提到用WinCE+x86出产品是减法,这实际上就是所谓PC家电化;另外一种做法是加法,利用家电行业的硬件解决方案(绝大部分是非x86的)加以改进,加上嵌入式操作系统,再加上应用软件。这是所谓家电PC化的做法,这种加法的优势是成本低,特色突出,缺点是产品研发周期长,难度大(需要深入了解硬件和操作系统)。如果选择这种做法,Linux是一个好选择,它让你能够深入到系统底层,如果你愿意并且有能力。
全部0条评论
快来发表一下你的评论吧 !