欢迎来到天天文库
浏览记录
ID:31841300
大小:134.50 KB
页数:4页
时间:2019-01-20
《嵌入式操作系统中的关键技术》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、嵌入式操作系统中的关键技术陶品 现在许多嵌入式系统要胜任的工作越来越复杂,需要采用32位的嵌入式处理器,这样嵌入式操作系统就成为嵌入式系统设计中必不可少的一个环节。众所周知通用操作系统(如MicrosoftWindows系列的操作系统)并不适合直接应用在嵌入式操作系统上,为了适应嵌入式系统的需要,必须在整个系统的软件架构中引入嵌入式操作系统。 在嵌入式系统应用中,早期的16位及16位以下的微处理器计算能力有限,要处理的任务一般比较简单,因而程序员可以在应用程序中自己管理微处理器的工作流程,很少需要用到嵌入式操作系统。当系统变得较为复杂后,对系统中断的处理以及多个功能模块之间
2、的协调需要由程序员自己来控制和解决,这样做的结果是,随着程序内部的逻辑关系变得越来越复杂,软件开发小组对于驾驭复杂的功能模块逐渐显得力不从心,为了保证中断相关处理的正确性和完整性,为了保证不同模块之间对硬件资源的共享和互斥,为了保证系统能定期执行各种任务,软件开发小组不得不编写和维护一个复杂的专用操作系统和应用程序的结合体,这样做使得系统的开发和维护成本加大,也不利于系统的升级。所以在逐渐变得复杂的嵌入式系统中采用成熟的嵌入式操作系统成为更好的解决方案,如嵌入式Linux,VxWorks、pSOS、WinCE、DeltaOS、uCOS、TinyOS等等。 为了实现一个支持各种硬
3、件体系结构、运行稳定高效的嵌入式操作系统需要付出很多的心血,嵌入式操作系统本身包含大量的代码,而且这些代码非常精巧、相应的数据结构非常复杂,即使是读懂这些代码也要花费很多时间。比如最简单的μCOS-II嵌入式操作系统的最小实现也需近千行代码,而普通的嵌入式Linux内核则有近百万行代码。在嵌入式开发中推荐采用一种通用的嵌入式操作系统,而不是自己从头编写一个专用的嵌入式操作系统,因为通甩的嵌入式操作系统经过多年的发展一般来说稳定性,性能、功能等各方面都会比自己重写一个专用的操作系统要好,而且购买它们的成本也比自己从头开发要低得多;另外,通用嵌入式操作系统一般都遵循操作系统接口标准——
4、POSIX,使用这些系统调用接口进行开发可以大大方便上层应用软件在不同嵌入式操作系统、不同操作系统版本之间的移植,系统升级换代方便、成本低、速度快。 总结来说采用嵌入式操作系统的原因是:解决多任务所带来的复杂性;提高应用程序的可移植性;降低系统开发和维护成本。 嵌入式操作系统中的关键技术 在一个完整的嵌入式系统中,嵌入式操作系统介于底层硬件和上层应用程序之间,如图1所示,它是整个系统中不可缺少的重要组成部分。 嵌入式操作系统与传统操作系统的基本功能是一致的,即:首先嵌入式操作系统必须能正确、高效地访问和管理底层的各种硬件资源,很好地处理资源管理中的冲突;其次嵌入式
5、操作系统要能为应用程序提供功能完备、使用方便、与底层硬件细节无关的系统调用接口。 但嵌入式操作系统也有其独特的需求和技术特点,主要区别是: 1)许多嵌入式系统应用有实时性要求,因此多数嵌入式操作系统都具备实时性的技术指标,能保障系统的实时响应速度; 2)为适应嵌入式系统计算资源的限制,嵌入式操作系统核心部分的体积必须尽可能的小; 3)为了适应各种应用需求的变化,嵌入式操作系统还应该具有可裁减性、可伸缩性、易移植性的特点,让开发人员可以根据需要对嵌入式操作系统进行剪裁和移植; 4)嵌入式操作系统往往是长期连续运行的,因此要求要有很高的可靠性,不能“死机”; 5
6、)针对特定的应用需求,嵌入式操作系统往往还要对某些模块做特别的性能优化和功能增强。 实时性 许多应用场合对嵌入式系统有实时性的要求,比如汽车的安全气囊要求能在一个极短的时间内侦测到汽车碰撞事件的发生并控制打开安全气囊。为了实现上述目标,一方面硬件的传感器和安全气囊要有足够快的响应速度,另一方面就是微处理器、嵌入式操作系统和相应的事件响应程序要能处理得足够快。 普通操作系统为了实现在多进程并发执行时进行正确的资源管理,往往会对某段代码通过关中断的方式进行保护,而且由于多个进程并发执行后情况变得异常复杂,关中断的时间可能被拖得很长且不确定,中断的关闭就会使得实时请求不能通过
7、中断信号迅速告知CPU,因此系统可能出现的最长关中断时间决定着操作系统的实时性的指标。嵌入式操作系统为了提高实时性能,就必须尽量缩短操作系统代码中的关闭中断过程,并通过精心的设计确定关中断的时间长短。这些设计包括: 1)操作系统中的进程必须是具有严格优先级差异的,而且应该是抢占式的操作系统内核,即最高优先级的进程即使是最后出现,也应该最先获得运行,而且是无条件立即停止当前进程的运行来切换到具有最高优先级的进程。如图2所示。 2)与实时处理相关的函数应尽量
此文档下载收益归作者所有