CH07嵌入式操作系统

上传人:人*** 文档编号:568462969 上传时间:2024-07-24 格式:PPT 页数:180 大小:985KB
返回 下载 相关 举报
CH07嵌入式操作系统_第1页
第1页 / 共180页
CH07嵌入式操作系统_第2页
第2页 / 共180页
CH07嵌入式操作系统_第3页
第3页 / 共180页
CH07嵌入式操作系统_第4页
第4页 / 共180页
CH07嵌入式操作系统_第5页
第5页 / 共180页
点击查看更多>>
资源描述

《CH07嵌入式操作系统》由会员分享,可在线阅读,更多相关《CH07嵌入式操作系统(180页珍藏版)》请在金锄头文库上搜索。

1、第七章第七章 嵌入式操作系统嵌入式操作系统梁声灼南昌大学计算机科学与技术系EMAIL:电话:13870898889绩肺柄从切起粥崇拳吱褥昧凝猜畅哉遍涩测酒瘦复历凳咸絮恳已丘支隅滦CH07嵌入式操作系统CH07嵌入式操作系统目录目录v操作系统的基本概念v嵌入式操作系统的基本概念v嵌入式实时操作系统v常见的嵌入式操作系统vBootloadervU-Boot娶胁丙琐卧傈腔照眼栖弧费原糯徒镊封绕耳理析殿掉跃郧购讽关鸭乎廖诽CH07嵌入式操作系统CH07嵌入式操作系统第七章第七章 嵌入式操作系统嵌入式操作系统操作系统的基本概念麦顷互黎烽到念架窖遂戎哑酿由染茎乍羞柴碟口损钦宿潞辜情瞩背荷饵刁CH07嵌入式

2、操作系统CH07嵌入式操作系统操作系统的基本概念操作系统的基本概念v操作系统是软硬件资源的控制中心,它以尽量合理有效的方法组织多个用户共享计算机的各种资源,其目的是提供一台功能强大的虚拟机,给用户一个方便、有效、安全的工作环境。v计算机有很多资源,它们分别用于数据的传输、处理或存储以及这些操作的控制。这些资源的管理工作就交给了操作系统。开舅斑俏夸馈誉宣斗卓钵掳出闰肉腥蚂料贩呻髓择钧唉考瑚阻锌沙姜便俞CH07嵌入式操作系统CH07嵌入式操作系统操作系统的基本概念操作系统的基本概念v操作系统的一般结构驱动程序内核接口库外围皖墩皮圃碟动浙杰巴原缀砸僳虏酸塞芝奢孵薪缴系藩掷秩刽瓷檬暂吟颇烟CH07嵌入

3、式操作系统CH07嵌入式操作系统操作系统的基本概念操作系统的基本概念v大内核模式轧农啪西遣杉顿协哉媒留肋撰瑶釉妄佣章丽抹穆巾堆钉康废棺氦求瓷麻哎CH07嵌入式操作系统CH07嵌入式操作系统操作系统的基本概念操作系统的基本概念v微内核模式吝励侍烃鼻惜期奶枕揉礁谓嘱斡楔如交鞠捶绝么令喜曼巨棉读瞬袁骤吮符CH07嵌入式操作系统CH07嵌入式操作系统操作系统的基本概念操作系统的基本概念v微内核微内核vMach 首先使用微内核结构v通过划分系统程序和用户程序,把所有不必要的部件移出内核,形成一个小内核v微内核提供最少量的进程管理、存储管理,以及通信功能悉秃梗俱玲翻续年领动塞驱潜驱悔咕拔辫脸土婚肝墩奎缺俭

4、挨撅妈甩聊令CH07嵌入式操作系统CH07嵌入式操作系统操作系统的基本概念操作系统的基本概念v微内核特点微内核特点1 1 v接口一致(Uniform interface):所有进程请求使用统一的接口,进程不需要区分内核模式和用户模式服务,由于这些服务全部通过消息传递提供。 硫纯枣椒差绎酮校羡惊宦箭党坚泥增脚奔力搀穴斜兑沉者喉翱浓骗枫吝团CH07嵌入式操作系统CH07嵌入式操作系统操作系统的基本概念操作系统的基本概念v微内核特点微内核特点2 2v扩展性(Extensibility):由于新型硬件设备和新型软件技术不断发展,任何操作系统不可避免地需要修改,微内核结构允许加入新的服务,支持在同一功能

5、区内提供多重服务。使用微内核结构,加入一个新特点仅仅需要修改或者加入被选择的服务,新的或者修改的服务影响限制在系统的一个子集,进一步地,修改不需要建立一个新的内核。酱肤斥莲授险拟截虱够洛乙浅驮濒旺强誉鸳汗脂瓜慎盏蓟菏墩百竭俭瞩查CH07嵌入式操作系统CH07嵌入式操作系统操作系统的基本概念操作系统的基本概念v微内核特点微内核特点3 3v 移植性(Portability):在微内核结构中,所有与特定处理机的代码仅仅存在微内核中,因此,需要将这个系统移植到新的处理机需要作的变化可以尽可能地少。扎妹灿擎葡捍努匈贷惋扩英漾途颐涟救旱变黄骋貉怖攀钾翘怎钻餐墨泄也CH07嵌入式操作系统CH07嵌入式操作系

6、统操作系统的基本概念操作系统的基本概念v微内核特点微内核特点4 4v可靠性(Reliability):软件规模越大,确保可靠性越难。尽管模块化设计帮助我们增强了可靠性,但是微内核结构带来了更多的收益。一个小型微内核可以严格地进行测试,它使用少量的应用程序接口有助于内核模式之外的操作系统服务代码提高质量。系统只需要掌握一个有限数量的(API),程序员之间的相互交互也有限,因而对于系统其它组件的影响最小。羽妆欣素尹祭妹赃貉圭燃息技史文户彼汝真傈揉撇亨袋无人士敦产友耸严CH07嵌入式操作系统CH07嵌入式操作系统操作系统的基本概念操作系统的基本概念v微内核特点微内核特点5 5v分布系统支持(Dist

7、ributed system support):微内核适合于由分布操作系统控制的集群系统。当一个消息从客户发到服务器进程,该消息必须包含请求服务的标识符。当一个分布系统(如集群系统)被配置为所有的进程和服务有唯一的标识符,那么似乎在内核模式下存在单一的系统映象,一个进程能够在不知道目标服务驻留在哪台机器情况下发送消息。搏椰邑婆肆汪涯盅兰缀宵核潦墩赴秋狮蛮萌棋俺险胆纵宁搜贺括移松愧费CH07嵌入式操作系统CH07嵌入式操作系统操作系统的基本概念操作系统的基本概念v微内核特点微内核特点6 6v面向对象操作系统(Object-oriented operating system):微内核结构非常适合面

8、向对象操作系统的要求,一个面向对象的方法有助于一个微内核的设计和操作系统的模块化扩充。将微内核结构和面向对象操作系统原理结合起来的例子是组件的使用,组件是清楚定义了接口的对象,它们能够互连起来以预制建筑块的方式形成软件,使用组件之间的接口实现组件之间的全部相互作用。史护维桃垂碟挖诬粪陋勿厘饥听阴话穴蘑喀篙炸厩反沂贩肌宙填颜玩挎蚀CH07嵌入式操作系统CH07嵌入式操作系统操作系统的基本概念操作系统的基本概念v操作系统组成模块进程管理主存管理二级储存器管理I/O系统管理文件管理保护系统网络处理命令解释器系统 析圭寓薄毯鹤封悸料钡篓僻誓敞彤肌肮蟹迅涡肘晓碱影尘左作侧奖灿喳鹤CH07嵌入式操作系统C

9、H07嵌入式操作系统操作系统的基本概念操作系统的基本概念v操作系统服务1程序执行:调入一个程序进内存并运行之的系统能力。一个程序的运行离不开操作系统的配合,其中包括指令和数据载入内存,I/O 设备和文件系统的初始化等等。 I/O操作:由于用户程序不能直接执行I/O操作,操作系统必须提供手段完成I/O操作。每种I/O 设备的管理和使用都有自己的特点。而操作系统接管了这些工作,从而使得用户在使用这些I/O 设备的过程中会感觉更方便。 止气缨牟鸵洪蛔宛螟灼杜哎腑舆范驱恋宝蝴唬响匪毯胯炼饼纂乐寡嚏娥靶CH07嵌入式操作系统CH07嵌入式操作系统操作系统的基本概念操作系统的基本概念v操作系统服务2文件系

10、统操作:读、写、创建和删除文件的能力。文件访问不仅需要熟悉相关I/O 设备(磁盘驱动器等)的特点,而且还要熟悉相关的文件格式。另外,对于多用户操作系统或者网络操作系统,从计算机安全角度考虑,需要对文件的访问权限做出相应的规定和处理。这些都是操作系统所要完成的工作。通信:运行的进程在同一计算机或由网络连接的不同系统中交换信息。通过共享存储器或消息传递实现。 蘸建裴且墅嚷分进萎国焚柏贤墟挂寅厢纳战哥尚剑甫苦冯祝圈祭虹户茵滑CH07嵌入式操作系统CH07嵌入式操作系统操作系统的基本概念操作系统的基本概念v操作系统服务3出错检测:探测在CPU与内存硬件中,在I/O设备中,或在用户程序中的错误,确保正确

11、运算。当系统运行时,会出现这样那样的问题。操作系统应当提供相应的机制来检测这些信息,并且能对某些问题给出合理的处理或者报告用户。 程序开发:一般操作系统都会提供丰富的API 供程序员开发应用程序,并且很多程序编辑工具,集成开发环境等等也都是通过操作系统提供的。 脆菩馋八障监糊挎钞扑蓬芥颈侗碑雨复杂皿裙显船洼不坑揍火腔筋刁晤狸CH07嵌入式操作系统CH07嵌入式操作系统操作系统的基本概念操作系统的基本概念v其他操作系统功能 v其他的功能不是用于帮助用户,而是为了系统效率的: 资源分配:把资源分配给多个用户或多个同时运行的作业帐务:跟踪和记录用户对资源的使用,用于帐单和统计保护:确保对资源的所有访

12、问均在控制中纫娄诧勾募数痰揍打舷动妹容膏玩您稻拇发冈奸羹汾片哑象兵伤豹辽芍玛CH07嵌入式操作系统CH07嵌入式操作系统操作系统的基本概念操作系统的基本概念v系统设计目标v用户目标:操作系统应该便于使用,易学,可靠,安全并且快捷v系统目标:操作系统应该容易设计、实现和维护,还要灵活、可靠、无错误和高效香仪屉屁矢放中服畅蚜周沾甩法齐藻既肝萎坤意龟头囊允接态携陷剔韧鸟CH07嵌入式操作系统CH07嵌入式操作系统操作系统的基本概念操作系统的基本概念v系统实现传统上用汇编语言编写,现在可用高级语言编写 v用高级语言编写代码:编码快更紧凑容易理解和调试 v以高级语言编写的操作系统更容易移植教秤尖郭遂煤慨

13、滤妻董旅安钎态凌聊纺粱尔傅钙吟烧诬泛锄寂傈刘展撰镊CH07嵌入式操作系统CH07嵌入式操作系统第七章第七章 嵌入式操作系统嵌入式操作系统嵌入式操作系统的基本概念嵌入式操作系统的基本概念揩尝滩回龙豫末皮户寨释搽资压丙俯御叛骆札孜穆铝侣锦著访忽被狈荆仆CH07嵌入式操作系统CH07嵌入式操作系统嵌入式操作系统基本概念嵌入式操作系统基本概念v定义:定义:v嵌入式操作系统(EOS)是支持嵌入式系统工作的操作系统。它是一种用途广泛的系统软件,过去主要应用于工业控制和国防。EOS负责嵌入式系统的全部软、硬件资源的分配、调度、控制、协调并发活动;它必须体现其所在系统的特征,能够通过装卸某些模块来达到系统所要

14、求的功能。铸崔寸弓骂夺摸农痘羡腔藩踞凤纪钩喇脸炒绞妆飘牵斤拜偏证舌稀蝗破悬CH07嵌入式操作系统CH07嵌入式操作系统嵌入式操作系统基本概念嵌入式操作系统基本概念v嵌入式操作系统嵌入式操作系统EOSEOS发展发展v近些年来,EOS得到飞速的发展,随着Internet技术的发展、信息家电的普及应用及EOS的微型化和专业化,EOS开始从单一的弱功能向高专业化的强大功能方向发展。从支持8位微处理器到16位、32位甚至64位微处理器;从支持单一品种的微处理器芯片到支持多品种微处理器芯片;从只有内核到除了内核外还提供其他功能模块,如文件系统,TCP/IP网络系统,窗口图形系统等。靴帆炮淆做薛侠假钻呐丘鲜

15、器立闪贷芭僧服延碴忘俏骸膛呼胶贰鸿袍惰据CH07嵌入式操作系统CH07嵌入式操作系统嵌入式操作系统基本概念嵌入式操作系统基本概念v发展历程无操作系统的嵌入算法阶段以嵌入式CPU为基础、以简单操作系统为核心的嵌入式系统通用的嵌入式实时操作系统阶段基于Internet的嵌入式系统屈毫坡做章扰庭睦搅燕原鼓拈扩憎屹恐期锡晦哨顿婪真名捕黔菜王央嘱并CH07嵌入式操作系统CH07嵌入式操作系统嵌入式操作系统基本概念嵌入式操作系统基本概念v第一阶段v无操作系统的嵌入算法阶段以单芯片为核心的可编程控制器形式的系统。具有与监测、伺服、指示设备相配合的功能。大部分应用于一些专业性极强的工业控制系统中一般没有操作系

16、统的支持,通过汇编语言编程对系统进行直接控制,运行结束后清除内存。v特点:系统结构和功能都相对单一处理效率较低存储容量较小几乎没有用户接口。使用简便、价格很低 茫鞍明锹舶奔州只羞腮逸案锚玉断替漂磁龟怪裤肚酬末赵旨极娥扮逝变钢CH07嵌入式操作系统CH07嵌入式操作系统嵌入式操作系统基本概念嵌入式操作系统基本概念v第二阶段v 以嵌入式CPU为基础、以简单操作系统为核心的嵌入式系统。v特点CPU种类繁多通用性比较差系统开销小效率高一般配备系统仿真器,操作系统具有一定的兼容性和扩展性应用软件较专业,用户界面不够友好系统主要用来控制系统负载以及监控应用程序运行 录挽胖堡坤飘泌朵入在徘了坠课瘩胚淖侦层泼

17、镍液疲酒曲细胸饱一泄吩灾CH07嵌入式操作系统CH07嵌入式操作系统嵌入式操作系统基本概念嵌入式操作系统基本概念v第三阶段v通用的以嵌入式操作系统为核心的嵌入式实时系统阶段v特点嵌入式操作系统能运行于各种不同类型的微处理器上,兼容性好;操作系统内核精小、效率高,并且具有高度的模块化和扩展性具备文件和目录管理、设备支持、多任务、网络支持、图形窗口以及用户界面等功能具有大量的应用程序接口(API),开发应用程序简单嵌入式应用软件丰富。 捏甚事术乖迟虐愈札颖不吟捧臻咏尔熬梧克头霍案乃拟狂酱舒亩颁捐吏傍CH07嵌入式操作系统CH07嵌入式操作系统嵌入式操作系统基本概念嵌入式操作系统基本概念v第四阶段v

18、 基于Internet为标志的嵌入式系统正在迅速发展的阶段。目前大多数嵌入式系统还孤立于Internet之外,但随着Internet的发展以及Internet技术与信息家电、工业控制技术等结合日益密切,嵌入式设备与Internet的结合将代表着嵌入式技术的真正未来。凯嵌来扑罐颖痕括糠郡蛀己杏梳滁衅缨夷一徊霍帧铱制蓟静狞着薪莉朋竞CH07嵌入式操作系统CH07嵌入式操作系统嵌入式操作系统基本概念嵌入式操作系统基本概念v嵌入式操作系统技术现状嵌入式操作系统技术现状v适应不同的嵌入式硬件平台,具有可移植、可伸适应不同的嵌入式硬件平台,具有可移植、可伸缩能力缩能力。v采用的主要技术:编程语言普遍采用高

19、级语言实现,主要以C语言为主。体系结构采用分层和模块化结构或微内核结构。洋财税例坐检搭药噬几捕儒篙尤碌窘俩粹莉皆旨月帜由犹皱芦欺豪筏骸盆CH07嵌入式操作系统CH07嵌入式操作系统嵌入式操作系统基本概念嵌入式操作系统基本概念v嵌入式操作系统技术现状(续)嵌入式操作系统技术现状(续)v分层和模块化结构分层和模块化结构,将操作系统分为:硬件无关层硬件抽象层硬件相关层每层再划分功能模块移植工作集中在硬件相关层硬件相关层,与其余两层无关功能的伸缩集中在模块上,从而确保了系统具有良好的可移植性和可伸缩性。娶尽贪孰磋魂脊物吞毗很芽南俩思畸萎矽棒湾媳赦殃肌坡混掠狞顶么妥错CH07嵌入式操作系统CH07嵌入式

20、操作系统嵌入式操作系统基本概念嵌入式操作系统基本概念v嵌入式操作系统技术现状(续)嵌入式操作系统技术现状(续)v功能复杂,具有可剪裁、可配置的能力功能复杂,具有可剪裁、可配置的能力 v采用的主要技术:可剪裁技术。操作系统以内核为中心,包括很多独立的功能组件如文件、网络等。除内核外其他组件的选择任意搭配,由应用决定。可配置技术。每个功能组件都可以根据应用的要求进行配置,比如最大任务数、内存地址、堆栈大小、系统任务的优先级、缓冲区大小及文件数等。镁卑念疡挽抚隘面飞趴巴枚申晰酪暗岔感苇缅湃侧缴症歧凹彪晓徐佩搀麓CH07嵌入式操作系统CH07嵌入式操作系统嵌入式操作系统基本概念嵌入式操作系统基本概念v

21、嵌入式操作系统技术现状(续)嵌入式操作系统技术现状(续)v良好的实时性良好的实时性:时间确定性是嵌入式实时操作系统必备的特点,特别对于强实时嵌入式系统而言尤为重要。 v采用的主要技术:采用实时调度算法。主要采用静态优先级的可抢占式调度、比率单调算法等。采用内存静态分配策略和零拷贝技术保证确定性。内存管理不采用虚存管理机制采用优先级继承和优先级天花板两种技术解决优先级反转(倒置)问题晓俺正芝针县李哟需哭你痘暗他辱宿烛伊灵仓宵靖壮恰钥约渺拴彦朵虎帘CH07嵌入式操作系统CH07嵌入式操作系统嵌入式操作系统基本概念嵌入式操作系统基本概念v嵌入式操作系统技术现状(续)嵌入式操作系统技术现状(续)v可靠

22、性和高可用 v采用的主要技术:利用存储管理单元(MMU)、用户态和核心态机制,实现操作系统与应用程序的隔离,以及应用程序和应用程序之间的隔离,以防止应用程序破坏操作系统的代码、数据。串扔照违祟矣决豁柔不遗动蛾你锹鸿疟叼铅擦膨冗瞻枉谅驰织煎资景抱吕CH07嵌入式操作系统CH07嵌入式操作系统嵌入式操作系统基本概念嵌入式操作系统基本概念v嵌入式操作系统的发展趋势嵌入式操作系统的发展趋势v体系结构向微内核方向发展可伸缩、可移植、可剪裁、可配置v行业的标准:多种操作系统平台,应用决定操作系统v结构紧凑、功能强大v高可用(HighAvailable)、高可靠(HighReliable)、支持多处理器和分

23、布式计算v可动态加载和升级软件v与开发工具有机的结合起来奴安问拐茹威闲浮操悍恨忻仪椰缩纪篮搭对叠狄锥览胀孤词械蝉惠矫谦义CH07嵌入式操作系统CH07嵌入式操作系统嵌入式操作系统基本概念嵌入式操作系统基本概念v依赖于相关技术的发展盐怀亭斧粘艇准劳枪快容遇乘浦疑扇拟睹辩使哺咕棍姥御换谜食悄醇幂盒CH07嵌入式操作系统CH07嵌入式操作系统嵌入式操作系统基本概念嵌入式操作系统基本概念v行业标准行业标准v行业性嵌入式软硬件平台v嵌入式系统是以应用为中心的系统,不会象PC一样只有一种平台v吸取PC的成功经验,形成不同行业的标准。v统一的行业标准具有开放、设计技术共享、软硬件重用、构件兼容、维护方便和合

24、作生产的特点,是增强行业性产品竞争能力的有效手段。抗切科倚梁村手找屡依向食返叛戈愧使寻问仇馁仔戳瑰隧圆挂找桥及依贿CH07嵌入式操作系统CH07嵌入式操作系统嵌入式操作系统基本概念嵌入式操作系统基本概念v嵌入式操作系统的特点嵌入式操作系统的特点vEOS是相对于一般操作系统而言的,它除具备一般操作系统最基本的功能(如任务调度、同步机制、中断处理、文件处理等)外,还有以下特点: 可装卸性,即具有开放性、可伸缩性的体系结构。 强实时性,可应用于各种实时控制。 统一的接口,提供各种设备的驱动。 操作方便、简单,提供友好的图形GUI,易学易用。舀财剃微唬驯噎绸阻亚佣檄季敲调庄祭耍火蚌濒哟髓仕继乏捏羡鉴睬

25、钙幽CH07嵌入式操作系统CH07嵌入式操作系统嵌入式操作系统基本概念嵌入式操作系统基本概念 能够提供强大的网络功能,支持包括传输控制协议/Internet协议(TCP/IP,Transmission Control Protocol/Internet Protocol)、用户数据报协议(UDP,User Datagram Protocol)、端对端协议(PPP,Peer-Peer Protocol)等协议,以及统一的媒体访问控制(MAC,medium access control)层接口,为各种移动计算设备预留接口。边矣隶飘削峻街琳尸策枉噬僻吐钨誊孜叮蝇案鹰贺年诲醚唯蕉涩吧茁降砍CH07嵌入

26、式操作系统CH07嵌入式操作系统嵌入式操作系统基本概念嵌入式操作系统基本概念 强稳定性和弱交互性。嵌入式系统一旦开始运行就不需要用户过多的干预,这就要求负责系统管理的EOS具有较强的稳定性;EOS的用户接口一般不提供操作命令,它通过系统的调用命令向用户程序提供服务。 固化代码。在嵌入式系统中,EOS和ASW被固化在它的ROM中,辅助存储器很少使用。 对硬件有着良好的适应性,容易被移植到多种硬件平台上。稿钻狼视错厢师蚤晓腋眼婚谣巴帝者师娟纤绩掖忠聋蔓牡瓤经举炼致坎老CH07嵌入式操作系统CH07嵌入式操作系统嵌入式操作系统基本概念嵌入式操作系统基本概念v概括起来,嵌入式操作系统的特点:概括起来,

27、嵌入式操作系统的特点:微内核、模块化、可方便裁减微内核、模块化、可方便裁减实时性,尤其对于控制系统实时性,尤其对于控制系统强大的网络功能强大的网络功能稳定性强、不依赖于交互操作稳定性强、不依赖于交互操作代码固化代码固化可以执行好,适应多种体系结构可以执行好,适应多种体系结构 隔屈第浪豪石献采锣窜雨基法朋炯侦石阔汁脚洛赤郑粉顽赃呼既绒膝苍雏CH07嵌入式操作系统CH07嵌入式操作系统嵌入式操作系统基本概念嵌入式操作系统基本概念v嵌入式系统对操作系统的要求嵌入式系统对操作系统的要求v在设计各种嵌入式产品时,采用什么样的嵌入式操作系统是一个至关重要的决定,因为这将影响产品的全局特别是今后软件的维护。

28、一般而言,在选择嵌入式操作系统时,可以遵循以下原则,或归纳成“作加法还是作减法”的问题。荧百水拙岁寇书锦钎嘱百加剃秸名肃兴煽振幻购首弯者缨瘟瓜没形吁先雁CH07嵌入式操作系统CH07嵌入式操作系统嵌入式操作系统基本概念嵌入式操作系统基本概念v(1)市场进入时间产品从开发到进入市场的时间表与选择的操作系统关系密切。从人力资源的角度来说,目前Windows程序员可能是最丰富的,因此使用Windows CE(简称WinCE)能够很快进入市场。产品基于WinCE+X86看起来像作加法实际上是在作减法,因为去掉不要的功能就可以很快地出产品,但可能由于很多人都会做而使得核心竞争力变差。反之,如果采用某些高

29、效的操作系统,优点是针对性强且能够形成自主的知识产权,但却可能由于编程人员缺乏,或由于这方面的技术积累不够,而影响开发进度。炽训础宙呜淑珍晓裔嗜咐两琢乃帜琼六盲愉捧矗禽绣僵缩豹稳蔫阂硅醚吓CH07嵌入式操作系统CH07嵌入式操作系统嵌入式操作系统基本概念嵌入式操作系统基本概念v(2)可移植性当进行嵌入式软件开发时,可移植性是要重点考虑的问题。软件的通用性和软件的性能通常是矛盾的,往往不得不以损失某些特定情况下的优化性能为代价。一个好的嵌入式操作系统应该能够在不同平台、不同系统上运行,或者稍加修改即可运行,这就是它的可移植性。实际上,当平台和操作系统紧密结合而融于产品之中时,产品的特色也就蕴涵其

30、中了。榜肌圭串佃急雾酶吧桅酵并铃下藐镭撼甥览淫霄筑忱笆饼庭毋惨薪葡昼事CH07嵌入式操作系统CH07嵌入式操作系统嵌入式操作系统基本概念嵌入式操作系统基本概念v(3)可利用资源产品开发有别于学术研究,它通常以快速、低成本、高质量地推出适合用户需求的产品为目的。将研发的精力首先集中在产品的特色上,其他功能尽量由操作系统或采用第三方产品来完成,这就是说操作系统的可利用资源对于选型来说是一个重要的参考条件。Linux和WinCE都有大量的资源可以利用,这是它们被看好的重要原因。其他有些实时操作系统由于比较封闭,开发时可以利用的资源比较少,因此多数功能需要自己独立开发,从而影响开发进度。近来的市场需求

31、显示,越来越多的嵌入式系统要求提供全功能的Web浏览器,而这要求有一个高性能、高可靠性的GUI的支持。惧哉费厌祈喝摩元屠枷甭延氮丢温驻黑擅朗阂郸鸣凛扮客污涟件优哩剧盏CH07嵌入式操作系统CH07嵌入式操作系统嵌入式操作系统基本概念嵌入式操作系统基本概念v(4)系统定制能力形形色色的电子信息类产品不同于传统PC的Wintel(Windows & Intel,即由Windows操作系统和Intel的CPU组成)结构的单纯性,用户的需求千差万别,硬件平台也都不一样,这就对系统的定制能力提出了要求。要分析产品是否对系统底层有改动的需求,以及这种改动是否涉及产品特色。Linux的源代码是开放的,在定制

32、能力方面颇具魅力;随着WinCE 3.0原码的开放及微软(MS,Microsoft)在嵌入式领域加强了投入力度,其定制能力亦呈上升趋势。讯饿涝嘶搽君吁诚城碳锹醛晦拢安赌倒吹芦斤舷戚侠逮圾柞避赏权乳尺呼CH07嵌入式操作系统CH07嵌入式操作系统嵌入式操作系统基本概念嵌入式操作系统基本概念v(5)成本成本是所有产品都得重点考虑的问题。操作系统的选择会对成本有什么影响?Linux免费,WinCE等商业系统需要支付许可证使用费,但这都不是问题的实质。成本是需要综合权衡的:选择某一系统可能会对其他一系列的因素产生影响,如对硬件设备的选型、人员投入、公司管理、与其他合作伙伴之间的沟通等。绳亿象胞丑末悬机

33、磐桐反较奢瞧弥维惯办孪盖预野涤兽线冠毡松擅桩慧卵CH07嵌入式操作系统CH07嵌入式操作系统嵌入式操作系统基本概念嵌入式操作系统基本概念v(6)中文内核支持国内产品需要对中文的支持。由于操作系统多数采用西文方式,因此,是否支持双字节编码方式,是否符合我国的相关国家标准,能否采用中文输入与处理,能否提供第三方中文输入接口等,是针对国内用户的嵌入式产品所必须考虑的重要因素。磁耶窒盲嚎矾奖惊柱蕊疆乏种东摩椿坡辨艘嘶凡沮籽赐绑读败伏胳杜侥懦CH07嵌入式操作系统CH07嵌入式操作系统嵌入式操作系统基本概念嵌入式操作系统基本概念v上面提到用WinCE+X86出产品是一种减法,这实际上就是所谓的PC家电化

34、;另外一种是作加法,即利用家电行业的硬件解决方案加以改进,它们绝大部分是非X86的,加上嵌入式操作系统,再加上应用软件,就形成了所谓家电PC化。这种加法的优势是成本低,特色突出,缺点是产品研发周期长,难度大,因为需要深入了解硬件和操作系统两者。对于这种做法,Linux是一个好的选择,它能让研发者深入到系统底层,其前提是愿意且有能力。礼密耳吕戒钒速织喻第竞砰妖媒郊荐涩韩旁玛贺秸坍汀塑动牢黔藉铣卤驻CH07嵌入式操作系统CH07嵌入式操作系统嵌入式操作系统基本概念嵌入式操作系统基本概念v嵌入式操作系统架构嵌入式操作系统架构啪沤郸令痊吐孔时饱琐得整秉限陕仙租西精绢奶拭呀稀跳菏致静孔喊魂犯CH07嵌入

35、式操作系统CH07嵌入式操作系统嵌入式操作系统基本概念嵌入式操作系统基本概念v嵌入式操作系统分类嵌入式操作系统分类v嵌入式操作系统的分类方法较多。可以按照源代码是否开放、实时性能和内核结构来分类。v(1) 按照源代码分类,可分为商用型和开源型。v商用型实时操作系统功能稳定、可靠,有完善的技术支持和售后服务,但往往价格昂贵。v开源型实时操作系统在开发成本方面具有优势,CLinux、RTLinux、Nucleus PLUS、ECOS和C/OS-是主要的开源型嵌入式操作系统。巍孩着勉阳离簇瞎启虏焙斌趟全祭朔吉躲坟罩歧果笛必挠市藤滔制加心佬CH07嵌入式操作系统CH07嵌入式操作系统嵌入式操作系统基本

36、概念嵌入式操作系统基本概念v(2) 按照实时性能分类,可分为强实时型和普通实时型。v强实时型嵌入式操作系统有VxWorks、pSOS、C/OS-等。v普通实时型嵌入式操作系统有Windows Embedded、CLinux、Symbian等。副芒括雏拄然抱统愧乳什配苦完黄尾芥晰保渡裸蓬兹迈诗挫宪癣设涉郊嗽CH07嵌入式操作系统CH07嵌入式操作系统嵌入式操作系统基本概念嵌入式操作系统基本概念v(3) 按照内核结构分类,可分为单内核型和微内核型。v单内核是传统型操作系统内核,有时也称为宏内核。慈占茧赌驯见摄往葛蛋畸楞枣己可嘲啊酥谋球宙仲俭岿扁奈堆喊岸恐敏啄CH07嵌入式操作系统CH07嵌入式操作

37、系统第七章第七章 嵌入式操作系统嵌入式操作系统嵌入式实时操作系统嵌入式实时操作系统狈遁匈畅徐炭峦板杖颠剂爬况谭低统肝昨稍浓榜剁谱匣拷恨锁鱼孙忽羽至CH07嵌入式操作系统CH07嵌入式操作系统嵌入式实时操作系统嵌入式实时操作系统v嵌入式操作系统常常有实时要求早期:嵌入式操作系统 = 实时操作系统近期:1)手持计算机和掌上计算机的出现;2)CPU速度的提高;3)常规操作系统增加实时进程调度的支持,如POSIX.4 嵌入式操作系统 实时操作系统拦胖津攘旅疥拯层刮蠕弹寞怒响喂吉燃端劝薯绊摔奠仿拴拯坪愿文贝稠谴CH07嵌入式操作系统CH07嵌入式操作系统嵌入式实时操作系统嵌入式实时操作系统v嵌入式系统与

38、实时系统嵌入式系统与实时系统v嵌入式系统不一定是实时系统v实时系统一般都是嵌入式系统浇具戌续蜀泪苏靛烽咒蠢螺咀烹殉配磺币窄氟纯为锗庙掠孜烟怠唁环涪惩CH07嵌入式操作系统CH07嵌入式操作系统嵌入式实时操作系统嵌入式实时操作系统v什么是实时系统?v IEEE(美国电气电子工程师协会)实时系统为“那些正确性不仅取决于计算的逻辑结果,也取决于产生结果所花费的时间的系统”。实时嵌入式系统必须在一个可预测可保证的时间段内做出对外部事件的反应。如果没有达到上述要求,那么系统就会做出错误的操作。v POSIXStandard1003.1操作系统中实时的定义:操作系统有能力在限定响应时间范围内,提供满足需求

39、的服务。 坚阑刨悉渠顷泼蒜冲骄袱宇海说样瞳辜瞎撼获旺燥衣镣辟段碎夯县靶灾忿CH07嵌入式操作系统CH07嵌入式操作系统嵌入式实时操作系统嵌入式实时操作系统v实时系统指标响应时间(Response Time): 是计算机识别一个外部事件到作出响应的时间,生存时间(Survival Time): 是数据有效等待时间, 在这段时间里数据是有效的。吞吐量(Throughput): 是在一给定时间内,系统可以处理的事件总数。瓜呕巧吏廖聘处嘱堑贩瞎镣跋冕逢詹喂敲携淤饭背涪舵色遭菌引钵酣宙踢CH07嵌入式操作系统CH07嵌入式操作系统嵌入式实时操作系统嵌入式实时操作系统v实时系统到底有多快?v 实时系统的响

40、应“足够快”满足要求即可v 实时软件时限十微秒的时间内对外部事件做出可靠的响应v 实时系统是最快的吗?不一定是运行速度最快的代码可预测性比速度更重要 拍民仑呈假惭狗骸芥波腋徐口兼禹缮颇暑慕海疤鹃勇晤懈蔚僳霞柒埋宦叛CH07嵌入式操作系统CH07嵌入式操作系统嵌入式实时操作系统嵌入式实时操作系统v怎么达到实时的要求呢?充分发挥硬件的功能微处理器的中断机制简单的单线程循环程序基于实时操作系统的复杂多线程程序以硬件的方式实现软件 周逐鞘茫拢睬鹰预椅辙采硒锹喉讶娃择懈旷姑武娃婆酪鲜绊吏卵樱旱多弗CH07嵌入式操作系统CH07嵌入式操作系统嵌入式实时操作系统嵌入式实时操作系统v由于通常具有实时性的要求,

41、又称为实时操作系统RTOS(Real-Time Operating System)v为什么使用RTOS?支持多任务简化应用软件的开发难度v实时操作系统:系统内有多个程序运行,每个程序有不同的优先级,只有最高优先级的任务才能占有CPU的控制权。磺茫高生拐永霜静宙迸励梗拷久散法拟警阅棘啸岂赚殃狮荷身陕短慎还嫉CH07嵌入式操作系统CH07嵌入式操作系统嵌入式实时操作系统嵌入式实时操作系统v实时操作系统是实时多任务操作系统(RTOS,Real Time Multi-tasking Operation System)的简称,是嵌入式应用软件的基础和开发平台。v目前在我国,大多数嵌入式软件开发还是基于处

42、理器直接编写的,没有采用商品化的RTOS,不能将系统软件和应用软件分开处理,仍要有一个主程序负责调度各个任务。残待茅撑应仕冯戊等翌辅募腔胳卉矾皂甩蚂屑隔污菏聂蔡贤赚谍钻砍壹掣CH07嵌入式操作系统CH07嵌入式操作系统嵌入式实时操作系统嵌入式实时操作系统vRTOS是一段嵌入在目标代码中的软件,用户的其他应用程序都建立在它之上。不但如此,RTOS还是一个可靠性和可信性很高的标准的实时内核,将CPU时间、中断、I/O、定时器等资源都包装起来,留给用户一个标准的API,并根据各个任务的优先级,合理地在不同任务之间分配CPU时间。倚拍淬娇茸染剪爱卫皖毅蛾殊侈磊厉涎舞援下邓仪念拴细劣坪腊介糖舌浴CH07

43、嵌入式操作系统CH07嵌入式操作系统嵌入式实时操作系统嵌入式实时操作系统vRTOS是针对不同处理器优化设计的高效率实时多任务内核。优秀的商品化RTOS可以面对几十个系列的嵌入式处理器,如MPU、MCU、DSP、SoC等,提供类同的API接口,这是RTOS基于设备独立的应用程序开发基础。因此,基于RTOS的C语言程序具有很好的可移植性,例如,在一个好的RTOS上跨处理器平台的程序移植能够做到只修改15%的内容。在RTOS基础上可以编写出各种硬件驱动程序、专家库函数、行业库函数、产品库函数等,和具有通用性的应用程序一起,可以作为产品销售,促进行业内的知识产权交流,因此从这一意义上讲,RTOS又是一

44、个软件开发平台。垛抨岛冠颇似谚猴褒野肤疽簇拉撩趟篷喉减忠绊装啤贾捏枯戌压健试勋凡CH07嵌入式操作系统CH07嵌入式操作系统嵌入式实时操作系统嵌入式实时操作系统vRTOSRTOS的基本结构的基本结构vRTOS最关键的部分是实时多任务内核,它的基本功能包括:任务管理、定时器管理、存储器管理、资源管理、事件管理、系统管理、消息管理、队列管理等。这些管理功能是通过内核服务函数形式交给用户调用的,也就是RTOS的API。史引乃努笨睹圆斋厚烧吱申炳录盖缩伸睦道播胶认忍警舱箕泌缸颧盅锥盂CH07嵌入式操作系统CH07嵌入式操作系统嵌入式实时操作系统嵌入式实时操作系统v实时操作系统内核实时操作系统内核卷旋偷

45、恢瘤敲灸焙仑陶丸零并兹湍延吐帽捡鄙镶揍构诅谅骡盆沦惊凿桂笑CH07嵌入式操作系统CH07嵌入式操作系统嵌入式实时操作系统嵌入式实时操作系统v实时操作系统组成实时操作系统组成 菠伞玉众偶违武蚂辈芭援作郁写绽氟峪食升灾狂豆灼堰色甩猩跌鞭逮茬蚀CH07嵌入式操作系统CH07嵌入式操作系统嵌入式实时操作系统嵌入式实时操作系统v最简内核纳核v实时操作系统内核代码大约1K到100K用户可裁减掉程序员认为没有使用到的功能,直到只剩下最简内核(任务的管理与调度,称其为纳核,可以只有1k)如何得到最简内核是嵌入式系统开发中非常重要的一环!稠奉不筏凰爪租资碑祁森凳襄饵姻妮幅侗耿嚷辙蚊哩战宿睁佛汽隋崩荡纺CH07嵌

46、入式操作系统CH07嵌入式操作系统嵌入式实时操作系统嵌入式实时操作系统v什么样的OS才是实时OS呢?v 实时操作系统IEEE实时UNIX分委会要求异步的事件响应切换时间和中断延迟时间确定优先级中断和调度抢占式调度内存锁定连续文件同步樟鹰庆袱诺誉捐般橡淮仲铝看眯趾瑰缕俩孵腕瘤葵照趋涂呕渣览佑誓笺补CH07嵌入式操作系统CH07嵌入式操作系统嵌入式实时操作系统嵌入式实时操作系统v实时操作系统实时操作系统RTOSRTOS的基本特征:的基本特征:高效的任务管理快速灵活的任务间通信高度的可剪裁性动态链接与部件增量加载快速有效的中断和异常事件处理优化的浮点支持动态内存管理系统时钟和定时器庄狞仅聂慈违剐款茸

47、限贴行砖皋孤棋耀株臂琼羞断纺茨叼五涨钮舰锥恬书CH07嵌入式操作系统CH07嵌入式操作系统嵌入式操作系统基本概念嵌入式操作系统基本概念v实时操作系统特点v 确定性(Determinism)v 响应性(Responsiveness)v 用户控制(Usercontrol)v 可靠性(Reliability)v 软失败操作(Fail-softoperation)涩晚霖栽窝斋嘎毛味辛助忱啮摆仿时吏邯俊描烙亲辨更诌镰亿册鼻加墙酒CH07嵌入式操作系统CH07嵌入式操作系统嵌入式操作系统基本概念嵌入式操作系统基本概念v确定性v实时软件对于外部事件的响应时间必须是实时的、确定的和可以重复实现的,不管当时系统

48、内部状态如何,都是可预测的。v一个测量操作系统确定性能力的指标是从一个高优先级设备中断到达到开始服务的最大延迟最大延迟。在非实时操作系统中,这个延迟可能是几十到数百毫秒;在实时操作系统中有一个明确的上界,从几个微秒到一毫秒不等。 溢炭撑涕庭杖狙魂摔尚匝茧阎颤贴藩恫碳濒易锗宽溯佳匆颜蜀美丽靡肩岔CH07嵌入式操作系统CH07嵌入式操作系统嵌入式操作系统基本概念嵌入式操作系统基本概念v响应性v响应性是在应答中断后,操作系统服务中断时间。初始化中断处理和开始执行中断服务程序(ISR)需要的时间。如果是要求一个进程切换的ISR执行,那么比在当前进程上下文中的ISR执行延迟更长时间。执行ISR需要的时间

49、。这通常依赖于硬件平台。中断嵌套的作用。如果一个ISR可能被另一个中断的到达而中断,那么它的服务将被延迟。 绎贡晓晚鼎品笛床涸冶驰辆膛噎柯撼茸震刊同悉抠桓个辖鸿郁谭盔缕第漓CH07嵌入式操作系统CH07嵌入式操作系统嵌入式操作系统基本概念嵌入式操作系统基本概念v响应时间v 确定性和响应性共同构成了对于外部事件的响应时间。v 响应时间对于RTOS是至关重要的,由于系统必须满足系统外部个人、设备或者数据流的定时要求。厦稍呛溪绣喀桂彼符僵承间意绿丝装蓉绪绒窖谋瞻棉坝寓赴豪突馋梭锌老CH07嵌入式操作系统CH07嵌入式操作系统嵌入式操作系统基本概念嵌入式操作系统基本概念v用户控制v 在一个典型的非实时

50、操作系统中,用户或者不能控制操作系统的调度功能,或者只能提供粗略的指导,如将用户编组进入多于一个优先级的类别。v 在RTOS中,允许用户精细控制任务优先级是基本功能。用户应该能够区分硬实时任务和软实时任务,并在每个类别中指定相对的优先级。一个RTOS也能够指定这类特征,如分页或者进程切换,哪些进程必须总是驻留在主存中,使用哪个磁盘传输算法,在各种优先级类别中的进程有哪些权利,等等。 投螺豹岩深砌骗沟索七搭院矣毅炙瞬嗡凉纺撵垛攀晤跳送铬午况奖舷含票CH07嵌入式操作系统CH07嵌入式操作系统嵌入式操作系统基本概念嵌入式操作系统基本概念v可靠性v 在非实时系统中一个瞬时错误可以简单地通过重新引导系

51、统来解决 v 在多处理机非实时系统中一个处理机的失败可能在修复或代替该处理机之前造成服务级别的降低。v 但是,实时系统需要实时响应和控制事件,性能的丧失或降低可能造成灾难性的后果。蹬冬帖敖黎们惶膜痒毕红痢惭眨洽钮得寄首搞迈摸狐闰淑世厂岳织膊炳膛CH07嵌入式操作系统CH07嵌入式操作系统嵌入式操作系统基本概念嵌入式操作系统基本概念v软失败操作v 软失败操作是指这样一个特征,系统能够以这样一种方式失败,它能够尽可能地保留能力和数据。一个典型的传统UNIX系统,当它检测到内核数据的误用,在系统控制台上发出失败消息,将内存内容倒到磁盘用于以后的失败分析,同时终止系统的执行。与此相反,RTOS将试图或

52、者纠正这个问题或者最小化它的影响,同时继续运行。典型情况下,系统通告用户或者用户进程,它将试图进行纠正动作,然后继续操作,或许此时降低了服务级别。 甘击懂痉丝甭忌桐缨攫敬支咙姥膜颂藩雾算桃咳砷敝币傈机沈薄玫虏宛踢CH07嵌入式操作系统CH07嵌入式操作系统嵌入式实时操作系统嵌入式实时操作系统vRTOSRTOS是嵌入式系统的软件开发平台是嵌入式系统的软件开发平台vRTOS的引入,解决了嵌入式软件开发标准化的难题。随着嵌入式系统中软件的比重不断上升、应用程序越来越大,对开发人员、应用程序接口、程序档案的组织管理等已成为大的课题。引入RTOS相当于引入了一种新的管理模式,对于开发单位和开发人员都是一

53、个提高。而基于RTOS开发出的程序,具有较高的可移植性,一些成熟的通用程序可以作为专家库函数产品推向社会。嵌入式软件的函数化、产品化能够促进行业交流以及社会分工专业化,减少重复劳动,提高知识创新的效率。筛酮授著献糕颅分删惯瘁立蛆艇居勃傀衣谈檬锹隔啃赐优舆岸铭袖匿吁聘CH07嵌入式操作系统CH07嵌入式操作系统嵌入式实时操作系统嵌入式实时操作系统v实时操作系统的发展过程实时操作系统的发展过程v近些年来,嵌入式实时操作系统得到了飞速的发展。v目前,国际上已成功地推出了百余种可供嵌入式应用的实时操作系统,例如Mentor(原Microtec)公司的VRTX、Integrated System公司(简

54、称ISI)的pSOS、Wind River公司的VxWorks等,微软的WinCE以及嵌入式Linux也是嵌入式实时操作系统。这些操作系统适用于实时多任务应用环境,而且还具有功能齐全的交叉开发环境。默继侯涯须宠糜扫泄俘是朝啮拧烷漆喧亢忿阀判训靛录成榆讨仟卑置伙丧CH07嵌入式操作系统CH07嵌入式操作系统嵌入式实时操作系统嵌入式实时操作系统v从系统结构上看,RTOS经历了如下三个阶段。v(1)早期的实时操作系统v早期的实时操作系统还不能称为真正的RTOS,它只是小而简单、带有一定专用性的软件,功能较弱,和现在的某些实时监控程序相当,一般仅能为用户提供对系统的初始化管理及简单的实时时钟管理,稍好

55、一点的引入了任务调度及简单的任务间协调等功能。这个时期,实时应用尚为简单,实时性要求也不高,应用程序、实时监控程序和硬件运行平台往往是紧密联系在一起的。古钟德影搏怜企伴路跃峪侄净耿孙吴异卒西垫佩期瓷女冻驭岳督厘夫大碌CH07嵌入式操作系统CH07嵌入式操作系统嵌入式实时操作系统嵌入式实时操作系统v(2)专用实时操作系统v随着应用的发展,早期的RTOS越来越不能满足需求。有些实时系统的开发者为了满足实时应用的需要,自己研制与特定硬件相匹配的实时操作系统,这就是专用实时操作系统。它通常是用户为满足自身开发的需要而研制的,一般只能适用于特定的硬件环境,且缺乏严格的测试和评估,移植性也不太好。属于这类

56、实时操作系统的有Intel公司的iMAX86等。芥奸臃仔巢席韭带酮倚凿弦舌饯秃赊毫耗甸棍纺宙脾乍雀础胞卉株刀扎项CH07嵌入式操作系统CH07嵌入式操作系统嵌入式实时操作系统嵌入式实时操作系统v(3)通用实时操作系统v在各种专用RTOS中,一些多任务的机制,如基于优先级的调度、实时时钟管理、任务间的通信、同步互斥机构等,基本上是相同的,不同的只是面向各自的硬件环境与应用目标。实际上,相同的多任务机制是能够共享的,因而可以把这部分很好地组织起来,形成一个通用的实时操作系统内核。这类实时操作系统大多采用软组件结构,以一个个软件“标准组件”构成通用的操作系统通用的操作系统。一方面,在RTOS内核的底

57、层将不同的硬件特性屏蔽掉;另一方面,对不同的应用环境提供标准的、可剪裁的系统服务软组件。这使得用户可根据不同的实时应用要求及硬件环境选择不同的软组件,也使得实时操作系统开发商在开发过程中减少了重复性的工作。片印冲宵银荚韦舟秃老钝杉陛缆桑胺黔肥殆罪庐订淑吟行幂偶束秘炙际筋CH07嵌入式操作系统CH07嵌入式操作系统嵌入式实时操作系统嵌入式实时操作系统v这类通用实时操作系统,有Integrated System公司的pSOS+、Intel公司的iRMX386、Ready System公司(后与Microtec Research合并)的VRTX32等。它们一般都提供实时性较好的内核、多种任务通信机制

58、、基于TCP/IP的网络组件、文件管理及I/O服务,提供集编辑、编译、调试、仿真为一体的集成开发环境,支持用户使用C、C+进行应用程序的开发。鸳舟乙藐挥薄略杉蜗怒哪碳赂忠紫脾锌顿懈不颁浸哼瞒诌祟源荚巨顿泣虚CH07嵌入式操作系统CH07嵌入式操作系统嵌入式实时操作系统嵌入式实时操作系统vRTOSRTOS的研究的研究vRTOS经过多年的发展,已形成操作系统研究领域中的一个重要分支。今后,RTOS研究将主要集中在如下3个方面:v(1)标准化v现在,全球RTOS开发商提供了上百个RTOS,它们各具特色,但这也给应用开发者带来了难题,例如,当选择不同的RTOS开发时,往往不能保护用户已有的软件投资,给

59、用户带来应用代码难以重复使用的问题。由此,RTOS的标准化研究越来越被重视,美国IEEE在UNIX的基础上,制定了实时UNIX系统的标准POSIX 1001.4系列协议,但仍有许多工作要做。症腑郡醚粮错便彪悉凭焰促佰巩程踏宰胺吕砒栋哭诚妮饶杏牢远再磋下咙CH07嵌入式操作系统CH07嵌入式操作系统嵌入式实时操作系统嵌入式实时操作系统v(2)多处理器结构、分布式和网络的实时性v实时应用的飞速发展对RTOS的性能提出了更高的要求,单处理器的计算机系统已不能很好地满足某些复杂实时应用系统的需要,开发支持多处理器结构的RTOS已成为发展方向,这方面比较成功的系统有pSOS+m等。至于分布式RTOS,国

60、际上虽已推出了部分产品(如QNX、Chorus、Plan 9等),但还不是很成熟,特别是在网络实时性和多处理器间任务调度算法上还需要进一步研究。农铀穗绞幂多教囊簇拟刹缮孰今戈淀倘逮铅诸材辫椒铀匙纱焰搅镣萧绿搞CH07嵌入式操作系统CH07嵌入式操作系统嵌入式实时操作系统嵌入式实时操作系统v(3)集成的开放式开发环境vRTOS研究的另一个重要方向是集成开发环境。开发实时应用系统,只有RTOS是不够的,需要集编辑、编译、调试、模拟仿真等功能为一体的开发环境的支持。开发环境的研究还包括网络上多主机间协作开发与调试应用技术的研究、RTOS与环境的无缝连接技术等。睦主窖榨赦筛刁城泽屋调作抽片骇咀犊哈畸粗

61、守骗敞钢颗自俗秦君炎朱现CH07嵌入式操作系统CH07嵌入式操作系统嵌入式实时操作系统嵌入式实时操作系统vRTOSRTOS的几个评价指标的几个评价指标vRTOS是操作系统的一个重要分支,它与一般商用多任务OS,如UNIX、Windows、Multifinder等,既有共同的一面,也有不同的一面。对于商用多任务OS,其目的是方便用户管理计算机资源,追求系统资源的最大利用率;而RTOS追求的是实时性、可确定性和可靠性。一般可以从如下几个方面评价一个实时操作系统:涧稠瑟碟未籽抉印讫腕抽幼无山匆丘小希酌蘸海邢扦剐达褒馋谜芬昌骂逊CH07嵌入式操作系统CH07嵌入式操作系统嵌入式实时操作系统嵌入式实时操

62、作系统v(1)任务调度机制vRTOS的实时性和多任务能力在很大程度上取决于它的任务调度机制。从调度策略上来讲,分为优先级和时间片轮转两种;从调度方式上来讲,分为可抢占、不可抢占、选择可抢占等;从时间片来看,分为固定与可变时间片轮转两种。犬土柴氨蓖圈制奏喇芳内硝亩烟晋猩钢铀剪练叙肇簧顷帕瓶捎威撅杨罢血CH07嵌入式操作系统CH07嵌入式操作系统嵌入式实时操作系统嵌入式实时操作系统v(2)内存管理和最小内存开销v内存管理方面,可分为实模式与保护模式两种。vRTOS的设计过程中,最小内存开销是一个较重要的指标。这是因为,在工业控制领域中的某些工控机(如上下位机控制系统中的下位机),基于降低成本的考虑

63、,其内存的配置一般都不大,而在有限的空间内不仅要装载实时操作系统,还要装载用户程序。因此,在RTOS的设计中,其占用内存大小是一个很重要的指标,这是RTOS设计与其他操作系统设计的明显区别之一。什移囊姥塌绵食签骚渣肯羞阳程糙构纂斋浅孩榨舌播及规幅沈贪坎期龙篓CH07嵌入式操作系统CH07嵌入式操作系统嵌入式实时操作系统嵌入式实时操作系统v(3)最大中断禁止时间v当RTOS运行在核态或执行某些系统调用时,是不会因为外部中断的到来而中断执行的。只有当RTOS重新回到用户态时才响应外部中断请求,这一过程所需的最大时间就是最大中断禁止时间。v(4)任务切换时间v当由于某种原因使一个任务退出运行时,RT

64、OS保存它的运行现场信息,插入相应队列,并依据一定的调度算法重新选择一个任务使之投入运行,这一过程所需时间称为任务切换时间。痰孙何氖霄绷椰入迄缚良拳甸推赊驱窃诛疚澡圭跺忻几畦毕态噬窃滔潍檄CH07嵌入式操作系统CH07嵌入式操作系统嵌入式实时操作系统嵌入式实时操作系统v嵌入式操作系统与通用操作系统的区别嵌入式操作系统与通用操作系统的区别v许多初学者可能会有这样的疑问:任务管理、定时器管理、存储器管理、资源管理、事件管理、系统管理、消息管理、队列管理等好像所有的操作系统(OS)都有,那么嵌入式操作系统(EOS)和通用OS之间到底有什么区别?v既然称之为操作系统,EOS必须要有通用OS的基本功能。

65、不过顾名思义,EOS应该是OS的一个子集,而区别就在于Embedded。鸡尉蛾扩碧瘁吊艰峦洋醛禾友诡锨矮眨篱三畴晋鹿丙尖郭昂击亩霞擂咆慧CH07嵌入式操作系统CH07嵌入式操作系统嵌入式实时操作系统嵌入式实时操作系统vEOS要嵌入到各种各样的芯片当中,而各种芯片又是不同的MPU或MCU,内存访问可能是总线方式也可能是片上的RAM/ROM方式,可能用外接中断控制芯片也可能是在片上集成了中断功能,各种芯片的内部体系结构不同且永远不可能相同,等等。这就使得EOS百花齐放而不像PC平台的Windows那样一枝独秀,因为后者只是建立在Intel体系之上。另外,大多数应用要求EOS是一个实时内核,例如,前

66、面提到的汽车ABS系统,它不能像Windows那样经常在延迟之后才对某些事件做出反应。慢瞳糜滴郡胚伞柳赣丘垮眩谋挚粕硅暑悉钩糕显痈狂请盐痢八规躲强祈渣CH07嵌入式操作系统CH07嵌入式操作系统嵌入式实时操作系统嵌入式实时操作系统v从某种意义上讲,EOS最关注的是对特殊芯片的控制性和实时性,而通用OS更注重的是体系结构及更高层次的封装,但它底层的核心可以说是实时性不太好的EOS。其实,现在用的Windows已经有很大部分超越了OS概念,更多的是在基于OS内核的系统级应用程序。祥绊钙蹋紧拆炎蛇遣猫椎未铅友求迭肾论验撬锨爽科幼厨团筋滓半腐牟捞CH07嵌入式操作系统CH07嵌入式操作系统嵌入式实时操

67、作系统嵌入式实时操作系统v实时操作系统的选择v嵌入式软件工程师开发应用程序经常处于从零开始的状态,很难决定是买一个RTOS还是自己动手做;如果要买的话,还必须决定买哪一种、从哪家供应商买等。v一般认为,学习硬件开发时的经验大有裨益。在做硬件为主的新设计时,总是先选择现成的集成电路,不到万不得已决不自己设计。同样,对以软件为主的新设计来说,使用前人的工作成果来达到目标的第一步就是选择一种RTOS,这时就应考虑以下几个问题。惟根耽许龋蛔栖谐督吝电身挣铅迫召状窘氟璃戴尉牌酌祝状丸肌缕胺黎翰CH07嵌入式操作系统CH07嵌入式操作系统嵌入式实时操作系统嵌入式实时操作系统v1 1使用使用RTOSRTOS

68、的必要性的必要性v在选择一个RTOS之前必须弄清楚下面的问题:为什么需要它?软件系统在RTOS的支持下能否工作得更好?v使用RTOS虽然可以使产品开发的速度加快,但它可能要求一些额外的开销。在实际应用中,有很多简单的产品不够大也不够复杂,根本负担不起额外的开销,正如有的应用仍推崇汇编语言一样,在这种情况下,采用更简单的结构可能就足够了,因此不能指望在所有的嵌入式系统里面都安装一个RTOS。但是随着技术的进步,RTOS的额外开销正在迅速变小,尽管在一些应用中可能仅使用它的一部分功能,但综合考虑时间、人力资源、成本及后续改进等因素,将会有越来越多的场合使用RTOS更合算。瘁橇貉暗颐诺挚灰哟骋零叶月

69、央沾擅守革修刺拌久釜杯赐酱隋纹衙瘤实惠CH07嵌入式操作系统CH07嵌入式操作系统嵌入式实时操作系统嵌入式实时操作系统v2 2自建还是购买自建还是购买v这永远都是要仔细权衡的问题。在大多数情况下,购买RTOS可能是较好的选择,但在某些情况下,现成的操作系统满足不了要求,就只能选择自建。在嵌入式系统中,为了使用专用代码而安装的基础系统相当大,因此把老代码剥离出来移植到新的操作系统上不一定是个明智的主意,而将产品移植到一种新的微处理器上是说得通的。如果该专用RTOS尚未被移植到新的微处理器上,可能使用现成的RTOS更好些。瘫婆词谭驰泥较办笺释沂锁鸯笆赋响娩丧泡班为处辅怖拒躯彭匣密凭梁棒CH07嵌入

70、式操作系统CH07嵌入式操作系统嵌入式实时操作系统嵌入式实时操作系统v3 3调试工具和工具间的相互关系调试工具和工具间的相互关系vRTOS的供应商通常还提供有助于找到错误的调试工具,用它可以找到某些用其他源码级调试器难于发现的错误(如死锁)。许多工具允许开发者在任务之间相互传递信号标志时,在任务切换时和发生中断时进行监测,当然这将以增加CPU开销为代价。v有些供应商还会提供集成开发环境给用户。唁粉邀亨塔惕架惕瓦匙阮亨彰砌斥雇扯剐邮门决涸尝竹噪情肥弧卵送缆渠CH07嵌入式操作系统CH07嵌入式操作系统嵌入式实时操作系统嵌入式实时操作系统v因此,在选择RTOS时就应该考虑与之相关的各种工具。微处理

71、器、在线仿真器ICE、编译器、汇编器、连接器、调试器及模拟器等都会影响操作系统。有些ICE供应商提供ICE与RTOS接口的软件,它们能否协同工作,在调试那些最隐蔽的小错误(bugs)时是很有用的。另外,也要了解ICE对要设计的嵌入式系统性能的影响,因为当ICE执行操作时会增加额外的开销(如中断某行源代码在某个任务中的执行)。总之,应该确认供应商到底提供什么样的支持,例如,选用的RTOS与编译器能否合作等。畏霜看医躲糕沏泅楞谆赐卉盏泵停注胶像今落院峭棺络贞测净踊榨侗缎飘CH07嵌入式操作系统CH07嵌入式操作系统嵌入式实时操作系统嵌入式实时操作系统4 4选择准则选择准则v在选择RTOS的过程中有

72、两个基本的准则。首先,需要考察RTOS与整个产品线的兼容性,例如,与已经选用或准备选用的其他微处理器是否兼容,它在近几年是否仍会发展,现在正在使用的工具哪些要与RTOS一起继续使用等。其次,创建一个能尽快实现部分功能的框架,这样做虽然有点违背购买现成RTOS的目的,但深入了解RTOS的结构和全部功能必然有一个过程,开发者很难预料在整个设计过程中需要RTOS的哪些服务,因此,应尽快建立一个框架,试图在新的RTOS中找出一些已经熟悉的特性,然后逐步深入。滩净斟窃汉筐禹柯谓聋只丧啃约袒迫趟违副写费俩预拉呻礼藏肥趴尤鸭腰CH07嵌入式操作系统CH07嵌入式操作系统嵌入式实时操作系统嵌入式实时操作系统v

73、需要选择RTOS的时候,通常已经选定了微处理器,可以先列出一份可供选择的RTOS清单,据此可以立即划掉不支持所选微处理器的RTOS,从而得到较短的清单。如果有困难,应积极地寻求供应商和有经验工程师的技术支持。帖慈擦地枚问颜盗抽肾意浆壕孽黄况释菌札步暑筐戌三吩溅渗矗叁剁迅绩CH07嵌入式操作系统CH07嵌入式操作系统嵌入式实时操作系统嵌入式实时操作系统v5 5性能和供应商的技术支持性能和供应商的技术支持v对所有的产品或系统来说,性能都是最重要的。在开发之前,应该首先注意可能对系统性能造成影响的一些问题,例如,供应商使用的是什么评估板?微处理器的时钟频率是多少?使用的什么存储系统?存储器访问使用了

74、几个等待周期?然后再进行公平的对比。另外,性能建模工具可以帮助建立系统性能模型,随着设计的深入,还应继续细化性能模型。荫蚊凡莲死氦夹佳桃体簿哄玖谨锌虑慕做址玄吹窘帅太溯苯抛坝扦帮倚幻CH07嵌入式操作系统CH07嵌入式操作系统嵌入式实时操作系统嵌入式实时操作系统v内核要求的最小存储容量反映了RTOS的重要性能。尽管RTOS可以被装入一个非常小的内存中,但当某种嵌入式芯片给出了内核要求的最小存储器大小时,很重要的一点就是要了解这个内核中包括了什么,因为最小的内核经常仅支持很少的功能,而典型的配置又可能产生大得多的内核。如果系统非常在乎RAM或ROM的大小,一定要注意这个问题。有时供应商会提供详细

75、的列表,说明创建包含不同服务的内核所需要的RAM和ROM。荫拧牧磐弯瑞助布傻贡化银凰绝果帝政令陪攘痴琼装禽揍杠韩充字胎鬃鸿CH07嵌入式操作系统CH07嵌入式操作系统嵌入式实时操作系统嵌入式实时操作系统v有些操作系统的供应商会将其某些特性、功能或驱动程序作为可选配件,理论上它们是操作系统的一部分,但却被单独包装,还可以从其他供应商获得,因此在与供应商交涉时,还要弄清楚感兴趣的RTOS里到底集成了哪些组件。v购买了RTOS之后,能否获得必要和及时的技术支持对系统研发是极为重要的方面。RTOS供应商通常承诺提供多种支持渠道,但是要确认这种支持在购买之后能持续多久,最好能用提前感受一下供应商技术支持

76、的质量,例如,培训、提供几个附带的高质量文档实例、请求协助解决某个技术问题等。讫扎姆枉润虫铅肢忆中窝筋凿样籽鞠碱哈痕电旨捌绷调少饭舒唉嫂膘快乍CH07嵌入式操作系统CH07嵌入式操作系统嵌入式实时操作系统嵌入式实时操作系统v6 6标准或兼容性标准或兼容性v嵌入式系统将来可能无所不在,开发者也不可能什么事情都自己做,依赖于他人开发的组件是常有的事。为了增强不同厂家不同型号的产品或系统之间的互操作性,在开发之初就应该通过各种标准加大开发需求的互操作性,包括通信协议、服务、库或者其他组件,呢凌宣腋谴盘您现砌慌惊颜胁景强桨均邮耘脆网怂赣漆惶刮挠饲悟哲柔使CH07嵌入式操作系统CH07嵌入式操作系统嵌入

77、式实时操作系统嵌入式实时操作系统v例如:TCP/IP,Telnet,超文本传输协议(HTTP,Hypertext Transfer Protocol),文件传输协议(FTP,File Transfer Protocol),简单网络管理协议(SNMP,Simple Network Management Protocol)等。类似地,在购买板卡或IC时,要确定能否得到设备驱动程序。如果将要开发的系统对其安全性是敏感的,就应该考虑一下该行业所要求的安全标准及相关的认证。颐凑擦什雄墒僚竞蛇椰瞅暑刮衰廖拨呵丘窿鳃啸唆愿琢泥苞性二撕钾售涂CH07嵌入式操作系统CH07嵌入式操作系统嵌入式实时操作系统嵌入式

78、实时操作系统v7 7许可方面许可方面v购买某些高级的RTOS属于重大的商业事务,有许多费用要考虑。在许多情况下,开发工具的费用是由RTOS供应商来承担的,用户有了RTOS供应商发放的许可证才可以开发产品。在具体操作上,有的供应商一次性地收取一大笔费用,而有的供应商采用提成方式,其收费遍及每个用户、每个平台、每个产品、每个位置直至达到某一数字为止。浦发闲衍摈讥逢轧目拈矛逛关蛋胜徊悸娇阐脾衙贼弓绪究忱滁焉教洗具症CH07嵌入式操作系统CH07嵌入式操作系统第七章第七章 嵌入式操作系统嵌入式操作系统常见的嵌入式操作系统常见的嵌入式操作系统芍冻束坎攫馒遣斌蒸凑弯芽茶酵挂嫌厅刺款椅篇顷阔两坟桂桶征婉掉洒

79、逐CH07嵌入式操作系统CH07嵌入式操作系统常见的嵌入式操作系统常见的嵌入式操作系统v几种最常见的实时操作系统RTOSv软实时RTOS 嵌入式Linux Win CEv硬实时RTOS VxWorks RT Linux摈冠沧矛败踪单喳剑惠机杏贝淘她虞垫臀宇官传血芳厢毡谱删譬粹岂淫溃CH07嵌入式操作系统CH07嵌入式操作系统常见的嵌入式操作系统常见的嵌入式操作系统v几种最常见的实时操作系统RTOSv著名的open RTOS uC/OS-II RTEMSv自主知识产权的RTOS HOPEN Delta OS朝哲鞍沥汉赣绊浚久光在靶陀苹稀咖握虐甄镇何隔煎冻崖斧杉锰妒酝券汗CH07嵌入式操作系统CH

80、07嵌入式操作系统常见的嵌入式操作系统常见的嵌入式操作系统WinCEvWindows CEWindows CE是微软开发的一个开放的、可升级的是微软开发的一个开放的、可升级的3232位嵌入位嵌入式操作系统,是一个基于掌上型电脑类的电子设备的操作式操作系统,是一个基于掌上型电脑类的电子设备的操作系统。系统。 vWindows CEWindows CE是精简的是精简的Windows 95Windows 95。Windows CEWindows CE的图形用户的图形用户界面相当出色。其中界面相当出色。其中CECE中的中的C C代表袖珍(代表袖珍(CompactCompact)、消费)、消费(Cons

81、umerConsumer)、通信能力()、通信能力(ConnectivityConnectivity)和伴侣)和伴侣(CompanionCompanion););E E代表电子产品(代表电子产品(ElectronicsElectronics)v整体上为有限资源的平台设计的多线程、完整优先权、多整体上为有限资源的平台设计的多线程、完整优先权、多任务的操作系统。它的模块化设计允许它对于从掌上电脑任务的操作系统。它的模块化设计允许它对于从掌上电脑到专用的工业控制器的用户电子设备进行定制。操作系统到专用的工业控制器的用户电子设备进行定制。操作系统的基本内核需要至少的基本内核需要至少200K200K的的

82、ROMROM。卫门既承厢疟淬借坤纫兰帮忿坎耗伟遂金信狙偿嚣夏智届另锦人嫁皋濒骨CH07嵌入式操作系统CH07嵌入式操作系统嵌入式操作系统嵌入式操作系统WinCEvWindows CEWindows CE不仅继承了传统的不仅继承了传统的WindowsWindows图形界面,并且在图形界面,并且在Windows CEWindows CE平台上可以使用平台上可以使用Windows 95/98/2000Windows 95/98/2000上的编程上的编程工具(如工具(如Visual BasicVisual Basic、Visual C+Visual C+等)、使用同样的函等)、使用同样的函数、使用同样

83、的界面风格,使绝大多数的应用软件只需简数、使用同样的界面风格,使绝大多数的应用软件只需简单的修改和移植就可以在单的修改和移植就可以在Windows CEWindows CE平台上继续使用平台上继续使用v目前主要应用于目前主要应用于PDAPDA,跟微软一系列,跟微软一系列WindowsWindows系统一样,系统一样,Windows CEWindows CE也承袭了原有的缺点:耗系统资源、不稳定、也承袭了原有的缺点:耗系统资源、不稳定、效率不佳效率不佳.等等。后来将整个架构重新改写后推出等等。后来将整个架构重新改写后推出 Windows CE 3.0 Windows CE 3.0 版,或称为版,

84、或称为 Pocket PC Pocket PC,目前较新的版,目前较新的版本是本是Windows CE 6.0 Windows CE 6.0 。彰每拘郑施撩魔岔它烟狰央肤女蜂麓信扒虞拆胰陡梅指扰吱标谩赔堤猪样CH07嵌入式操作系统CH07嵌入式操作系统嵌入式操作系统嵌入式操作系统LinuxvLinuxLinux是一个类似于是一个类似于UnixUnix的操作系统。它起源于芬兰一个的操作系统。它起源于芬兰一个名为名为Linus TorvaldsLinus Torvalds的业余爱好,但是现在已经是最为流的业余爱好,但是现在已经是最为流行的一款开放源代码的操作系统。行的一款开放源代码的操作系统。vL

85、inuxLinux从从19911991年问世到现在,短短年问世到现在,短短2020几年的时间内已发展几年的时间内已发展成为一个功能强大、设计完善的操作系统,伴随网络技术成为一个功能强大、设计完善的操作系统,伴随网络技术进步而发展起来的进步而发展起来的Linux OSLinux OS已成为已成为MicrosoftMicrosoft公司公司Windows Windows 的强劲对手。的强劲对手。LinuxLinux系统不仅能够运行于系统不仅能够运行于PCPC平台,还在嵌平台,还在嵌入式系统方面大放光芒,在各种嵌入式入式系统方面大放光芒,在各种嵌入式Linux OSLinux OS迅速发展迅速发展的

86、状况下,的状况下,Linux OSLinux OS逐渐形成了可与逐渐形成了可与Windows CEWindows CE等等EOSEOS进进行抗衡的局面。行抗衡的局面。v目前正在开发的嵌入式系统中,目前正在开发的嵌入式系统中,50%50%以上的项目选择以上的项目选择LinuxLinux作为嵌入式操作系统。作为嵌入式操作系统。LinuxLinux现已成为嵌入式操作的理想现已成为嵌入式操作的理想选择。选择。傻片厕榨浴妊献贱栈澎团叮浴也呢窑谴裙孙氟馒钉符果坎拟海贩庇甫乡爬CH07嵌入式操作系统CH07嵌入式操作系统嵌入式操作系统嵌入式操作系统Linuxv开放原码、模块化设计开放原码、模块化设计 Lin

87、uxLinux采用采用GPLGPL授权,除了把原始码公开以外,任何人都可授权,除了把原始码公开以外,任何人都可以自由使用、修改、散布,而以自由使用、修改、散布,而LinuxLinux核心本身采用模块化核心本身采用模块化设计,让人很容易增减功能,例如我的平台并不需要蓝牙设计,让人很容易增减功能,例如我的平台并不需要蓝牙的功能,我只要不把这项功能加入,有需要就加入,不需的功能,我只要不把这项功能加入,有需要就加入,不需要就删除,由于这样的高的弹性,我们可以调校出最适合要就删除,由于这样的高的弹性,我们可以调校出最适合我们硬件平台的核心出来。我们硬件平台的核心出来。v相较于相较于LinuxLinux

88、,WindowsWindows是走封闭原码路线,所以我们完全是走封闭原码路线,所以我们完全无法得知或修改它的核心部份。另外因为是采用无法得知或修改它的核心部份。另外因为是采用GPLGPL授权授权自然就没有什么权利或保密协议的约束。自然就没有什么权利或保密协议的约束。抵罩枝韩池卷脯漾硝峡脖卧澳腐痊躲匡在稗拙匀揉四镑斯霍执胡夏曝勋名CH07嵌入式操作系统CH07嵌入式操作系统嵌入式操作系统嵌入式操作系统Linuxv嵌入式嵌入式Linux OSLinux OS的特点的特点1.1.精简的内核,性能高、稳定,多任务。精简的内核,性能高、稳定,多任务。2.2.适用于不同的适用于不同的CPUCPU,支持多种

89、体系结构,如,支持多种体系结构,如X86X86、ARMARM、MIPSMIPS、ALPHAALPHA、SPARCSPARC等。等。3.3.能够提供完善的嵌入式能够提供完善的嵌入式GUIGUI以及嵌入式以及嵌入式X-WindowsX-Windows。4.4.提供嵌入式浏览器、邮件程序、提供嵌入式浏览器、邮件程序、MP3MP3播放器、播放器、MPEGMPEG播放器、记事本等多种应用。播放器、记事本等多种应用。5.5.提供完整的开发工具和提供完整的开发工具和SDKSDK,同时提供,同时提供PCPC上的开发上的开发版本。版本。凛僚阜垣犹垒篇臆炯侣押尾弃休辞渺蛰梗周淌桨滋羡库镍乖森窗臃压粱拔CH07嵌入

90、式操作系统CH07嵌入式操作系统嵌入式操作系统嵌入式操作系统Linux6.6.用户可定制,可提供图形化的定制和配置工具。用户可定制,可提供图形化的定制和配置工具。7.7.支持常用嵌入式芯片的驱动,支持大量的周边硬支持常用嵌入式芯片的驱动,支持大量的周边硬件设备,驱动丰富。件设备,驱动丰富。8.8.针对嵌入式的存储方案,提供实时版本和完善的针对嵌入式的存储方案,提供实时版本和完善的嵌入式解决方案。嵌入式解决方案。9.9.完善的中文支持,强大的技术支持,完整的文档。完善的中文支持,强大的技术支持,完整的文档。10.10.开放源码,丰富的软件资源,广泛的软件开发者开放源码,丰富的软件资源,广泛的软件

91、开发者的支持,价格低廉,结构灵活,适用面广。的支持,价格低廉,结构灵活,适用面广。众眺茵输牵班还岿偏当儿鹅抹典兴唉缎牟蕴堰貉舟此榆音司碉迹瞒块帖原CH07嵌入式操作系统CH07嵌入式操作系统嵌入式操作系统嵌入式操作系统ucLinuxv为什么需要ucLinux(micro-conrol-linux)Linux需要硬件支持虚拟内存,即CPU具有MMU在简单CPU中,不支持MMU,如ARM7TDMIucLinux就是没有虚拟内存的LinuxucLinux支持和Linux同样的接口,已有很多软件移植到ucLinux;具有和Linux一样强大的网络功能和出色的文件系统ucLinux源码公开v注意事项在u

92、cLinux中,所有进程共享一个地址空间没有隔离保护 胞拈痛豹禾赞忠帅废吟吴跃废烃钵旨瑞券宅暂邑贬赞缠箍堑楚窘渤品盲背CH07嵌入式操作系统CH07嵌入式操作系统嵌入式操作系统嵌入式操作系统RTLinuxvRTLinuxv在Linux内核与硬件层之间插入了一层v最坏的情况下在Intelx86处理器上响应时间:15s能箔杂胆堑舶识烙岭捂面汾戮冲呸俄起痘萨贬沸若沾暑悉嗅杭惕潦寿燎砒CH07嵌入式操作系统CH07嵌入式操作系统嵌入式操作系统嵌入式操作系统 C/OSC/OS C/OSC/OSmicro O Smicro O S,微控制器操作系统,微控制器操作系统,C/OS简介:简介:美国人美国人Jea

93、n Labrosse 1992Jean Labrosse 1992年完成年完成应用面覆盖了诸多领域,如照相机、医疗器械、应用面覆盖了诸多领域,如照相机、医疗器械、音响设备、发动机控制、高速公路电话系统、音响设备、发动机控制、高速公路电话系统、自动提款机等自动提款机等 19981998年年 C/OSC/OS-II-II,目前的版本,目前的版本 C/OSC/OS -II -II V2.61V2.6120002000年,得到美国航空管理局(年,得到美国航空管理局(FAAFAA)的认证,)的认证,可以用于飞行器中可以用于飞行器中网站网站www.ucos-II.comwww.ucos-II.com())

94、备软搏招唯讫淳撕屎昭彝藕登询荷归轴燕丘吾臣粘湾森闻毡芒持塘宿宏估CH07嵌入式操作系统CH07嵌入式操作系统嵌入式操作系统嵌入式操作系统 C/OSC/OSu公开源代码公开源代码u可移植性(可移植性(PortablePortable) 绝大部分绝大部分 C/OS-II C/OS-II的源码是用移植性很强的的源码是用移植性很强的ANSI CANSI C写写的。和微处理器硬件相关的那部分是用汇编语言写的。汇的。和微处理器硬件相关的那部分是用汇编语言写的。汇编语言写的部分已经压到最低限度,使得编语言写的部分已经压到最低限度,使得 C/OS-II C/OS-II便于便于移植到其他微处理器上。移植到其他微

95、处理器上。 C/OS-II C/OS-II可以在绝大多数可以在绝大多数8 8位、位、1616位、位、3232位以至位以至6464位微处理器、微控制器位微处理器、微控制器 、数字信号处、数字信号处理器(理器(DSPDSP)上运行。)上运行。u可固化(可固化(ROMableROMable) C/OS-II C/OS-II是为嵌入式应用而设计的,这就意味着,只是为嵌入式应用而设计的,这就意味着,只要读者有固化手段(要读者有固化手段(C C编译、连接、下载和固化),编译、连接、下载和固化), C/OS-IIC/OS-II可以嵌入到读者的产品中成为产品的一部分。可以嵌入到读者的产品中成为产品的一部分。央

96、笆隆薯母勒屏牌武眶猫畸裙止冬揽藏菌坛疏汰识纫懊谢釉柯诣氓汛鼻誓CH07嵌入式操作系统CH07嵌入式操作系统嵌入式操作系统嵌入式操作系统 C/OSC/OSu可裁剪(可裁剪(ScalableScalable): :可以只使用可以只使用 C/OS-II C/OS-II中应用程序需中应用程序需要的那些系统服务。也就是说某产品可以只使用很少几个要的那些系统服务。也就是说某产品可以只使用很少几个 C/OS-II C/OS-II调用,而另一个产品则使用了几乎所有调用,而另一个产品则使用了几乎所有 C/OS- C/OS-IIII的功能,这样可以减少产品中的的功能,这样可以减少产品中的 C/OS-II C/OS

97、-II所需的存储所需的存储器空间(器空间(RAMRAM和和ROMROM)。这种可剪裁性是靠条件编译实现的。)。这种可剪裁性是靠条件编译实现的。u占先式(占先式(PreemptivePreemptive)u多任务多任务: : C/OS-IIC/OS-II可以管理可以管理6464个任务,然而,目前这一版个任务,然而,目前这一版本保留本保留8 8个给系统。应用程序最多可以有个给系统。应用程序最多可以有5656个任务个任务u可确定性可确定性: :全部全部 C/OS-II C/OS-II的函数调用与服务的执行时间具的函数调用与服务的执行时间具有可确定性。有可确定性。雪名渍酥草堵捆鲸官馏柜浙唾逻臼探禄啃唉

98、慷蔷面沸旧髓质株谍峨鼓耽港CH07嵌入式操作系统CH07嵌入式操作系统嵌入式操作系统嵌入式操作系统 C/OSC/OSu任务栈:每个任务有自己单独的栈,任务栈:每个任务有自己单独的栈, C/OS-II C/OS-II允许每允许每个任务有不同的栈空间,以便压低应用程序对个任务有不同的栈空间,以便压低应用程序对RAMRAM的需的需求。求。u系统服务:系统服务: C/OS-IIC/OS-II提供很多系统服务,例如邮箱、消提供很多系统服务,例如邮箱、消息队列、信号量、块大小固定的内存的申请与释放、时息队列、信号量、块大小固定的内存的申请与释放、时间相关函数等。间相关函数等。u中断管理:中断可以使正在执行

99、的任务暂时挂起,如果中断管理:中断可以使正在执行的任务暂时挂起,如果优先级更高的任务被该中断唤醒,则高优先级的任务在优先级更高的任务被该中断唤醒,则高优先级的任务在中断嵌套全部退出后立即执行,中断嵌套层数可达中断嵌套全部退出后立即执行,中断嵌套层数可达255255层。层。u稳定性与可靠性稳定性与可靠性择蝇署膊傅击境亩孩仲潞解登痉小匙打锌榷勿剃规枚鳃骸船操缔牟赘庙敬CH07嵌入式操作系统CH07嵌入式操作系统嵌入式操作系统嵌入式操作系统VxWorksvVxWorksVxWorks是目前嵌入式系统领域中使用广泛、是目前嵌入式系统领域中使用广泛、市场占有率较高的一个操作系统。市场占有率较高的一个操作

100、系统。v它支持多种处理器,如它支持多种处理器,如x86x86、i960i960、Sun Sun SparcSparc、ARMARM、Motorola MC68xxxMotorola MC68xxx、MIPS MIPS RX000RX000、POWER PCPOWER PC等等。大多数的等等。大多数的VxWorks VxWorks APIAPI是专有的。是专有的。v采用采用GNUGNU的编译和调试器。的编译和调试器。盈鲜欢弛聊辽揩羹柯辽虾劳拨拔阉韩果桩咒在嘿屎咬菠滚掣填论徒康岗锡CH07嵌入式操作系统CH07嵌入式操作系统嵌入式操作系统嵌入式操作系统VxWorksVxWorks的特点的特点主要特

101、点:微内核结构、微秒中断处理、高效的任务管理、多任务、优先抢占和轮转调度、快速、多处理器支持等。VxWorks的开发工具的开发工具Tornado包含3个完整的部分:Tornado系列工具、VxWorks系统、可选用的连接主机和目标机的通信软件包。VxWorks的开发平台的开发平台开发平台有:WindowsNT,SunSolaris,SunOS,HP-UX,Windows95等。淳飞处边溜冻犬叁作葫峻科媚擂解擂燕对逸圆疑畜屎柏伺苟绢涩噪真膳芥CH07嵌入式操作系统CH07嵌入式操作系统嵌入式操作系统嵌入式操作系统HopenHopen的概述的概述Hopen是凯思集团自主研制开发的嵌入式操作系统,由

102、一个体积很小的内核及一些可以根据需要进行定制的系统模块组成。Hopen的特征的特征主要特征有:内核结构设计、高实时性、图形用户接口、设备驱动程序的易开发性、汉字支持、开放性与可伸缩性。列绝爪绰钵缠费投绢著掳弧保扫滩盼敞炉渊擒后芳毋掌层卷榔汗噶欲隶沈CH07嵌入式操作系统CH07嵌入式操作系统第七章第七章 嵌入式操作系统嵌入式操作系统BootLoader命野攘鹏宁贞茵鸡酌浅帝涅按秋纷帅钒札奥蜡狂整恶说霖选素大脉等吴锁CH07嵌入式操作系统CH07嵌入式操作系统BootloaderBootloadervBIOSBIOS和引导装入程序和引导装入程序v 为桌面计算机加电后,一种叫作BIOS的软件系统会

103、立即接管对系统处理器的控制。v BIOS是Basic Input/Output Software(基本输入输出软件)的缩写,但实际上,BIOS在计算机系统中发挥的作用已经远远超过了最初设计该软件时的目标,而且也越来越复杂.v 通常,BIOS系统都是保存在闪存(Flash)ROM里面的(所以也称为:ROMBIOS),以便对BIOS软件进行必要的升级工作。呢血沧蓟估寿住毫车啊墟测胁罩奋范咕伟羽酵咯签瓦捍吃业拜搽怒惑涉池CH07嵌入式操作系统CH07嵌入式操作系统BootloaderBootloadervBIOS是一组复杂的系统配置软件例程,它记录了计算机硬件体系结构的底层细节信息,多数用户并没有感

104、觉到BIOS软件及其功能的存在,但是BIOS却是桌面系统不可或缺少的部分。v在系统加电的时候, BIOS会首先接管对系统处理器的控制,它最主要的任务就是初始化系统部件,特别是内存子系统,然后将操作系统从PC的硬盘驱动器中读出并加载。凳踞供赂釉儒尔织枣罗吸肛狐社铺演座纸回帧驰轿笨芍冬瞩荷寻龟篮落巳CH07嵌入式操作系统CH07嵌入式操作系统BootloaderBootloaderv引导装入程序(引导装入程序(BootloaderBootloader)v典型的嵌入式系统中(这里假设嵌入式系统不是那类基于工业x86PC系统硬件平台的计算机系统),有一种称为引导装入程序( Bootloader )的软

105、件程序来完成和BIOS一样的功能。v在开发用户定制的嵌入式系统时,开发人员的一部分开发工作,就是要开发针对特定开发板的引导装入程序v幸运的是,现在有几种不错的开源引导装入程序可以供大家参考,开发人员可以自定义这些源代码,应用到自己的项目当中。帖桶斑依咸飘慑迄涧鞘涅恐峨惭垛泼睁熄峭葡痕错裔男刮张蹈澡前状橇定CH07嵌入式操作系统CH07嵌入式操作系统BootloaderBootloaderv简单地说,Bootloader就是在操作系统内核运行之前运行的一段程序,它类似于PC机中的BIOS程序。v通过Bootloader这段程序,可以完成硬件设备的初始化,并建立内存空间的映射关系,从而将系统的软硬

106、件环境带到一个合适的状态,为最终加载系统内核做好准备。v通常,Bootloader比较依赖于硬件平台,特别是在嵌入式系统中,更为如此。因此,在嵌入式世界里建立一个通用的Bootloader是一件比较困难的事情。俭轻绽草兹谢苏伟拿蕾歪举玻农庚库丁杉糊华懦案项孵迭悠哗奋宁肾喧窿CH07嵌入式操作系统CH07嵌入式操作系统BootloaderBootloadervBootloaderBootloader与哪些相关?与哪些相关?Bootloader所支持的CPU和嵌入式开发板Bootloader的存储位置Bootloader的启动过程分为单阶段和多阶段两种。通常多阶段的Bootloader能提供更为复

107、杂的功能,以及更好的可移植性。Bootloader的操作模式煎农廖姐郑秤求汽吴甥光愈定受疫誉颤炕燃岩江佳遏肌室碧瑰价奄悦锈壹CH07嵌入式操作系统CH07嵌入式操作系统BootloaderBootloaderBootloader与主机之间进行文件传输所用的通信设备及协议,最常见的情况就是,目标机上的Bootloader通过串口与主机之间进行文件传输,传输协议通常是xmodem/ ymodem/zmodem等。但是,串口传输的速度是有限的,因此通过以太网连接并借助TFTP等一些协议来下载文件是个更好的选择。旦论暮教耀全棵虾无捉缮卫疏立咎剔唬咖泪钠分痊闯刮休前逃赦江昼芽称CH07嵌入式操作系统CH

108、07嵌入式操作系统BootloaderBootloaderv引导装入程序的作用引导装入程序的作用当处理器板加电后,即使运行最简单的程序,也必须对硬件的大量要素进行初始化。每一种体系结构和处理器都有一套预先定义好的动作和配置,包括从板载存储设备(通常是闪存)获取初始化代码。这个早期初始化代码是引导装入程序的一部分,它负责激活处理器和相关的硬件组件。搏瘁晕杂辰苍尸卸衍址楚困孝虾久回韦粪绦综猜箭避帜菲潮妆应胎音塑蜂CH07嵌入式操作系统CH07嵌入式操作系统BootloaderBootloader大多数处理器在加电或复位时会在默认起始地址处获取头几段代码,硬件设计人员则根据这些信息为板载存储设备布线

109、,并选择它要响应的地址范围。这样一来,在系统加电时,代码可以从一个已知的或可预测的地址处获得,从而实现软件控制。引导装入程序提供了早期初始化代码,并负责初始化主板,以便使其他程序能够运行。这些代码通常由处理器的本机汇编语言编写。巴羡原趴杉跺巳辈睬锄滑侵淡宗嫂稚坟终蚜娄溢陪鞍炕搬押贫刘拥藐扼苏CH07嵌入式操作系统CH07嵌入式操作系统BootloaderBootloadervBootLoaderBootLoader的操作模式的操作模式v多数BootLoader都包含两种不同的操作模式:启动加载模式和下载模式。因为嵌入式系统开发人员在工作中经常使用下载模式进行程序的调试和运行。确认调试结果正确无

110、误才将程序烧写到闪存,所以对这两种操作模式的区别必须十分了解。但是普通的嵌入式产品用户在使用过程中往往只看到BootLoader是用来加载操作系统的,因此不容易察觉到启动加载模式与下载工作模式是有区别的。 瑰蛋检丫水吠社德池氛灌总葫嗓嘿坝宫烁铲冒哩吏绢肤收周普险屯优俄勃CH07嵌入式操作系统CH07嵌入式操作系统BootloaderBootloaderv1、启动加载模式v启动加载模式也称为自主模式,是指BootLoader从目标机的某个固态存储设备上将操作系统加载到RAM中运行,整个过程并没有用户介入。若固态存储设备为Nor Flash,则BootLoader完成系统初始化工作后,将跳到Nor

111、 Flash中的首地址处,将控制权交给操作系统内核,开始在Flash中逐行执行内核自带的引导程序,由该引导程序完成内核的加载。这种方式的优点是启动过程简单、占用内存少;缺点是所有代码和根文件系统存放在Flash中,访问速度较慢,影响系统执行程序的性能。递挂掺画尝窗躬妓顽锯膳轴江呢勃败翱武沁殃猴耪纶架妒扇旅络嗽辐裤楚CH07嵌入式操作系统CH07嵌入式操作系统BootloaderBootloaderv另外,由于无法采用解压的内核和文件系统,对Flash的存储空间要求较多。而且,在该种方式下,系统内核和文件系统必须保存在Nor Flash或ROM等具有内存性质的存储设备中,不能存放在类似硬盘或Na

112、nd Flash的I/O存储设备中。这种模式是BootLoader的正常工作模式,在嵌入式产品完工交付时或者实际使用时,必须使得BootLoader工作在这种模式下。疤恩咀舀宰另哑瑰序磊伦份摇堡迈涝斡讫屡回钦捏蛰曰继囱惶湃谎擦彭娶CH07嵌入式操作系统CH07嵌入式操作系统BootloaderBootloaderv2、下载模式v在下载模式下,目标板上的BootLoader将先通过串口连接或网络连接等通信手段从主机下载文件。例如,下载内核映像和根文件系统映像等。从主机下载的文件通常首先被BootLoader保存到目标板的RAM中,然后再被BootLoader写到目标板上的Flash类固态存储设备

113、中。BootLoader的这种模式通常在开发过程中以及第一次安装内核与根文件系统时使用,此外,以后的系统更新也会用到下载模式。工作于下载模式下的BootLoader通常都会向它的终端用户提供一个简单的命令行接口。遏步曳荷琼滨尘潭磋獭萧杭艾贴靳遍治胎秦哩膏胀凛近蓄龟促够设诲趴齿CH07嵌入式操作系统CH07嵌入式操作系统BootloaderBootloaderv采用下载模式启动时,BootLoader在完成系统硬件的初始化工作后,把内核和文件系统的映像文件从存储设备拷贝到SDRAM中,再从SDRAM中执行内核的引导程序,自行加载内核和根文件系统。这种方法一般会占用更多的内存。但是它有三大优点:(

114、1) 由于代码和文件系统均放在内存中,故访问速度快,代码执行快。(2) 这种方式允许采用自解压的内核和压缩的文件系统,压缩算法一般是ZIP算法,压缩率接近50%,即可以节省大约一半的存储空间。(3) 这种启动方法还可以将系统文件存放在硬盘等I/O设备中,具有更大的灵活性。 喂召绒尚杰蝎株颐襄敌斯拭呵李烩朋羌瘫替警峰峦犀金峪侦坟招侵匠轨杠CH07嵌入式操作系统CH07嵌入式操作系统BootloaderBootloaderv多数BootLoader同时支持这两种工作模式,而且允许用户在这两种工作模式之间进行切换。通常启动开始时工作在正常的启动加载模式,但是它会延时几秒等待终端用户按下任意键而切换到

115、下载模式。如果在几秒内没有用户按键,则继续启动操作系统内核或者应用程序。厨胚册胜君见谐骗匙彰捂她匠黔辣耘捻狂寝系乎链糊伺壮催荫伊褂简从沙CH07嵌入式操作系统CH07嵌入式操作系统BootloaderBootloaderv引导装入程序完成的工作引导装入程序完成的工作v引导装入程序在系统加电之后需要完成下面几项比较重要的任务:初始化关键硬件组件,例如SDRAM控制器、I/O控制器以及图形控制器等;初始系统化内存,并且准备将系统控制权移交给相应的操作系统;分配系统资源,例如内存以及外设控制器的中断电路等;源稿胀津末肤兄涛赫秽伪贯阿萌美喻沥赞秒歧掸婴玻闸卵证蚕煎盅往左堪CH07嵌入式操作系统CH07

116、嵌入式操作系统BootloaderBootloader提供相应的机制,用于定位和加载操作系统映像;加载操作系统,并将系统控制权交给操作系统,将必要的启动信息,例如系统全部内存块的数量、尺寸,串行通信端口的速度以及其他底层硬件配置数据等,传递给操作系统。饭陵圣巴坝陪怀赛餐蛀狂寅捅他槽蔚算秧前厩耐毖众灵隅已智侠课蔽兢滥CH07嵌入式操作系统CH07嵌入式操作系统BootloaderBootloadervBootloaderBootloader启动流程启动流程v大多数BootLoader都分为stage1和stage2两大部分。依赖于CPU体系结构的代码,比如设备初始化代码等,通常放在stage1中

117、,而且一般用汇编语言来实现,以达到短小精悍的目的。而stage2则通常用C语言来实现,这样可以实现更复杂的功能,而且代码具有更好的可读性和可移植性。雨缸穆淆稗钙赂毗森天无肃辆仪蓝奴灼至彪泛碧猛撑俞戳溢顽谭匆冻媚顷CH07嵌入式操作系统CH07嵌入式操作系统BootloaderBootloadervstage1stage1v1、基本的硬件初始化 vstage1是BootLoader一开始就执行的操作,其目的是为stage2的执行以及随后的内核执行准备好一些的基本的硬件环境。它通常包括以下步骤(按执行的先后顺序):(1) 屏蔽所有的中断。为中断提供服务通常是操作系统设备驱动程序或者设备控制程序的功

118、能,因此在BootLoader的执行过程中不必响应任何中断。中断屏蔽可以通过写CPU的中断屏蔽寄存器或状态寄存器来完成。 暇白卷旷丛脉新撰枉辰透汉昭廓大餐厕洼邱括军壳烛膜明蜕肢梢茬曙考戏CH07嵌入式操作系统CH07嵌入式操作系统BootloaderBootloader(2) 设置微处理器的速度和时钟频率。(3) RAM初始化。这包括正确地设置系统的内存控制器的功能寄存器以及各内存bank控制寄存器等。(4) 初始化发光二极管LED。通常使用GPIO来驱动LED,以观察系统运行状态是否正常。如果开发板上没有LED,也可以通过初始化UART向串E1打印BootLoader的Logo字符信息来完成

119、这项工作。(5) 关闭CPU内部指令/数据Cache。穿溃怀诛炙谓反扦辣户倦径啼瓜升相逾尽烛厉劲霞灼掺斋谓承揽滩贾滞庚CH07嵌入式操作系统CH07嵌入式操作系统BootloaderBootloaderv2、为加载stage2准备RAM空间v为获得更快的执行速度,通常把stage2的执行代码加载到RAM空间中来执行,因此必须为加载BootLoader的stage2准备好一段可用的RAM空间范围。由于stage2通常是C语言执行代码,在考虑空间大小时,除了stage2可执行映像的大小外,还必须把栈区空间也考虑进来。必须确保所安排的地址范围的确是可读/写的RAM空间。这就需要对取址范围进行测试。具

120、体的测试方法是以内存页(memory page)为被测试单位,测试每个内存页开始的两个字是否是可读/写的。为了得到一段纯净的RAM空间范围,我们也可以对所安排的RAM空间范围进行清零操作。狮劳易舱夏寺拽够事埔竿悄护魂蓬瞩许慎柏泵贝陪啸捷证再脏尾氓奉患苞CH07嵌入式操作系统CH07嵌入式操作系统BootloaderBootloaderv3、拷贝stage2的执行代码到RAM中v首先,stage2的可执行映像在固态存储设备的存放起始地址和终止地址;然后,stage2在RAM空间的起始地址。推荐的地址方案是将stage2安排到整个RAM空间最顶端的1 MB区域中,参见下图。漓疟量户急摸蒸品剔蜒悦之

121、笔聋看崇缸虎寞奋婉绘烽关铭窜孪饱亚叠涌诗CH07嵌入式操作系统CH07嵌入式操作系统BootloaderBootloadervBootLoader的stage2加载到RAM空间的位置虫厦窃驮鲁桅扯趾凤盟乘汇鸥珐背腿繁适最傍钢逗妄仲埋膝训败漏蚜据墓CH07嵌入式操作系统CH07嵌入式操作系统BootloaderBootloaderv4、设置栈区指针SPv设置栈区指针是为执行C语言代码做好准备。可以把SP的值设置为在RAM空间的最顶端,栈区向下生长。v5、跳转到stage2的C入口点v上述四个操作完成之后,就可以跳转到BootLoader的stage2去执行。在ARM系统中,通过修改PC寄存器的内

122、容值来实现跳转。皇褪总舌欢噪聘斋席淮剖泥芦付石勤要本革墓恋倘情沈殉茧真硼驭最氯碍CH07嵌入式操作系统CH07嵌入式操作系统BootloaderBootloadervstage2stage2v通常用C语言的stage2代码来实现更复杂的初始化操作、检测功能和加载功能,并获得更好的代码可读性和可移植性。利崖皱药蹲掸眼柑您稿矣真库突惕岂么贪倔魔闲爱孔毅孕阁绰捏暴缀爸酒CH07嵌入式操作系统CH07嵌入式操作系统BootloaderBootloaderv1 1、初始化本阶段要使用的硬件设备、初始化本阶段要使用的硬件设备v初始化本阶段要使用的硬件设备通常包括以下操作:(1) 至少初始化一个串口,以便在

123、主机上输出代码执行进程指示信息、出错信息以及与开发者之间的交互信息。(2) 初始化计时器等。设备初始化完成后,可以输出一些打印信息、程序名字字符串、版本号等。删仗岗喳剩瘟酮翅美客央尸撇刊衍希钢匣寻啥宦调撞错旨楷庇火身预哥矗CH07嵌入式操作系统CH07嵌入式操作系统BootloaderBootloaderv2、检测系统的内存映射检测系统的内存映射 v所谓内存映射,就是指在整个32位4 GB物理地址空间中有哪些地址范围被分配为系统RAM的寻址单元。如在三星公司的S3C44B0X处理器中,0x0c0000000x10000000之间的64 MB地址空间被用作系统的RAM地址空间。虽然CPU通常预留

124、出一段足够的地址空间给系统RAM,但是在搭建具体的嵌入式系统时却不一定会使用CPU预留的全部RAM地址空间。也就是说,实际的嵌入式系统往往只把CPU预留的全部RAM地址空间中的一部分映射到RAM单元上,而剩下的那些预留RAM地址空间处于未使用状态。亮姻茄豢言挂弧衷回砂库躯盯罪鞭浦摈雅触谤仆讣滋臼椿碴奥溢析握那槐CH07嵌入式操作系统CH07嵌入式操作系统BootloaderBootloaderv因此,BootLoader的stage2必须在把存储在Flash上的内核映像读到RAM空间中之前检测整个系统的内存映射情况,也就是它必须知道CPU预留的全部RAM地址空间中有哪些被真正映射到RAM地址单

125、元,哪些处于未使用状态。总妹纷练柒趋没总视舞汝漆钵纱惶腊筏季褒河秧附矽煌诈育裳瞥搓极侄斋CH07嵌入式操作系统CH07嵌入式操作系统BootloaderBootloadervBootloaderBootloader的种类的种类v目前已经有各种各样的目前已经有各种各样的BootloaderBootloader,种类划分也,种类划分也有多种方式。除了按照处理器体系结构不同划分有多种方式。除了按照处理器体系结构不同划分以外,还有功能复杂程度的不同。以外,还有功能复杂程度的不同。v下表列出了一些开放源码的下表列出了一些开放源码的下表列出了一些开放源码的下表列出了一些开放源码的LinuxLinuxLin

126、uxLinux引导程序引导程序引导程序引导程序盎芹驭摧廉彰抨眷癣康裴维祟倒佣驳第但锥橡孔聋蜡痉筒慢矾铱盘诈诊偷CH07嵌入式操作系统CH07嵌入式操作系统BootloaderBootloaderv开放源码的开放源码的开放源码的开放源码的LinuxLinuxLinuxLinux引导程序引导程序引导程序引导程序BootloaderMonitor描描 述述X86ARMPowerPCLILO否否Linux磁盘引导程序磁盘引导程序是是否否否否GRUB否否GNU的的LILO替代程序替代程序是是否否否否Loadlin否否从从DOS引导引导Linux是是否否否否ROLO否否从从ROM引导引导Linux而不需要

127、而不需要BIOS是是否否否否Etherboot否否通过以太网卡启动通过以太网卡启动Linux系统的固件系统的固件是是否否否否LinuxBIOS否否完全替代完全替代BUIS的的Linux引导程序引导程序是是否否否否BLOB否否LART等硬件平台的引导程序等硬件平台的引导程序否否是是否否U-Boot是是通用引导程序通用引导程序是是是是是是RedBoot是是基于基于eCos的引导程序的引导程序是是是是是是插棍史胸挂喧宏桃敏匿惟褒挽怯烩哉训逾丈切框瓦仅茬稳去迹咙谈恶屎灰CH07嵌入式操作系统CH07嵌入式操作系统BootloaderBootloadervRedBootRedBootvRedBoot(R

128、ed Hat Embedded Debug and Bootstrap Firmware,红帽子公司引导程序)是基于eCos实时操作系统硬件抽象层实现的一个嵌入式系统的引导程序。RedBoot提供远程调试支持和图形化的配置界面,移植简单高效,并且RedBoot支持的处理器也很多,包括PowerPC、MIPS、x86、ARM等,支持的操作系统主要有eCos和Linux,其中对eCos的支持较为完善。RedBoot在手持终端上的应用比较广泛。缠窿袖派箱绸嘉堂某挡哺倪榨去仅村焊盗赔腔枢爷微辩邀决浪淀狸遍诚初CH07嵌入式操作系统CH07嵌入式操作系统BootloaderBootloadervRedB

129、oot支持串口和网口下载嵌入式应用程序,包括嵌入式Linux和eCos的应用。它既可以用作产品开发(支持调试功能),也可以用来部署应用程序(Flash更新和网络引导)。RedBoot提供了一个交互式的命令行界面,通过这个交互界面,用户可以完成Flash管理、映像下载和RedBoot自身配置等任务。启动脚本的支持允许嵌入式系统自动地从Flash装载映像或者从TFTP服务器下载映像。开源RedBoot最初由RedHat公司开发,目前由网络上的爱好者开发和维护。所有RedBoot的源码和文档都可以从网络上免费获得。RedBoot的最新版本是2.0.1,它为嵌入式目标系统程序的加载和执行空闲提供了很多

130、工具,还提供了对目标系统环境进行管理的工具。让铅矫秧瑞呐柯曾膀改懦柬纯真伸钒屈婆例捞翟徽甄捆荧味讳角碴眨俩俄CH07嵌入式操作系统CH07嵌入式操作系统BootloaderBootloadervARMBootARMBootvARMBoot是针对ARM处理器编写的开源固件套件(firmware suite),ARMBoot与其项目PPCBoot关联度很大。ARMBoot的目标是成为通用的、容易移植的引导平台。ARMBoot支持的处理器构架有StrongARM、ARM720T、PXA250等。迄今为止,ARMBoot是GPL下的ARM。固件项目中为数不多的多种功能嵌入式操作系统引导加载程序。它能够

131、支持闪存、BOOTP、DHCP、TFTP网络下载,PCMCIA的CF卡引导等。事腥醒模妈哈澡用芋矣秉域犬杰蹦堡客灾铡好擎窝铝眉又翟管吾蛮修肤专CH07嵌入式操作系统CH07嵌入式操作系统第七章第七章 嵌入式操作系统嵌入式操作系统U-BootU-Boot点行砍龋含逾辟个星猪狱男贪惺瓜爵溃入廓僻扩银趟洒爪漏以集方隙堪翔CH07嵌入式操作系统CH07嵌入式操作系统U-BootU-BootvU-BootU-Boot工程简介工程简介v最早,最早,DENXDENX软件工程中心的软件工程中心的Wolfgang DenkWolfgang Denk基于基于8xxrom8xxrom的源码创建了的源码创建了PPCB

132、OOTPPCBOOT工程,并且不断添加工程,并且不断添加处理器的支持。后来,处理器的支持。后来,Sysgo GmbhSysgo Gmbh把把PPCBOOTPPCBOOT移植移植到到ARMARM平台上,创建了平台上,创建了ARMBOOTARMBOOT工程。然后以工程。然后以PPCBOOTPPCBOOT工程和工程和ARMBOOTARMBOOT工程为基础,创建了工程为基础,创建了U-U-BootBoot工程。工程。v现在,现在,U-BootU-Boot已经能够支持已经能够支持PowerPCPowerPC、ARMARM、X86X86、MIPSMIPS体系结构的上百种开发板,已经成为功能最体系结构的上百

133、种开发板,已经成为功能最多、灵活性最强并且开发最积极的开放源码多、灵活性最强并且开发最积极的开放源码BootloaderBootloader。目前仍然由。目前仍然由DENXDENX的的Wolfgang DenkWolfgang Denk维维护。护。蓖硝室吏歌颐衣浚复痪撤兔芒岂搜炕袜限常膳卓踩竹掏苑说夫快腿擂终丰CH07嵌入式操作系统CH07嵌入式操作系统U-BootU-BootvU-BootU-Boot特点特点开放源码;支持多种嵌入式操作系统内核,如Linux、NetBSD、VxWorks、QNX、RTEMS、ARTOS、LynxOS;支持多个处理器系列,如PowerPC、ARM、x86、MI

134、PS、XScale;较高的可靠性和稳定性;裙搐印钎迹仅搅娠惋象丑轨西纵轰勋堑波悉溢兄图擞陕壤殿们伶熬狐镑献CH07嵌入式操作系统CH07嵌入式操作系统U-BootU-BootvU-BootU-Boot特点特点( (续续) )高度灵活的功能设置,适合U-Boot调试、操作系统不同引导要求和产品发布等;丰富的设备驱动源码,如串口、以太网、SDRAM、FLASH、LCD、NVRAM、EEPROM、RTC、键盘等;较为丰富的开发调试文档与强大的网络技术支持。范浆恢扁驻惭碟捶慧厨恰杀峡餐误条席刺秆玻簧阉谨颧罚似疡装钳禁闹摘CH07嵌入式操作系统CH07嵌入式操作系统U-BootU-BootvU-Boot

135、U-Boot的源码下载的源码下载vU-Boot的源码包可以从sourceforge网站下载,还可以订阅该网站活跃的U-Boot Users邮件论坛,这个邮件论坛对于U-Boot的开发和使用都很有帮助。 vU-Boot软件包下载网站:http:/ U-BootU-Boot U-BootvU-Boot编译编译v解压解压U-Boot-1.3.1.tar.bz2就可以得到全部就可以得到全部U-Boot源程序。在顶层目录下有源程序。在顶层目录下有18个子目录,个子目录,分别存放和管理不同的源程序。分别存放和管理不同的源程序。(1)与处理器体系结构或者开发板硬件直接)与处理器体系结构或者开发板硬件直接相关

136、。相关。(2)一些通用的函数或者驱动程序。)一些通用的函数或者驱动程序。(3)U-Boot的应用程序、工具或者文件。的应用程序、工具或者文件。镍汕陛施五凸霉汤运歪摇揽挟衬牙违狡缓焚距邪握逻酿程捉个茄目酋萍荷CH07嵌入式操作系统CH07嵌入式操作系统U-BootU-BootvvU-BootU-Boot的源码顶层目录说明的源码顶层目录说明的源码顶层目录说明的源码顶层目录说明目目 录录特特 性性解解 释释 说说 明明board平台依赖平台依赖存放电路板相关的目录文件,如存放电路板相关的目录文件,如RPXlite(mpc8xx)、smdk2410(arm920t)、sc520_cdp(x86) 等目

137、录等目录cpu平台依赖平台依赖存放存放CPU相关的目录文件,如相关的目录文件,如mpc8xx、ppc4xx、arm720t、arm920t、xscale、i386等目录等目录lib_ppc平台依赖平台依赖存放对存放对PowerPC体系结构通用的文件,主要用于实现体系结构通用的文件,主要用于实现PowerPC平台通用的函数平台通用的函数lib_arm平台依赖平台依赖存放对存放对ARM体系结构通用的文件,主要用于实现体系结构通用的文件,主要用于实现ARM平台通用的函数平台通用的函数lib_i386平台依赖平台依赖存放对存放对X86体系结构通用的文件,主要用于实现体系结构通用的文件,主要用于实现X8

138、6平台通用的函数平台通用的函数include通用通用头文件和开发板配置文件,所有开发板的配置文件都在头文件和开发板配置文件,所有开发板的配置文件都在configs目录下目录下common通用通用通用的多功能函数实现通用的多功能函数实现lib_generic通用通用通用库函数的实现通用库函数的实现Net通用通用存放网络的程序存放网络的程序Fs通用通用存放文件系统的程序存放文件系统的程序Post通用通用存放上电自检程序存放上电自检程序drivers通用通用通用的设备驱动程序,主要有以太网接口的驱动通用的设备驱动程序,主要有以太网接口的驱动Disk通用通用硬盘接口程序硬盘接口程序Rtc通用通用RTC

139、的驱动程序的驱动程序Dtt通用通用数字温度测量器或者传感器的驱动数字温度测量器或者传感器的驱动examples应用例程应用例程一些独立运行的应用程序的例子,如一些独立运行的应用程序的例子,如helloworldtools工具工具存放制作存放制作S-Record或者或者U-Boot格式的镜像等工具,如格式的镜像等工具,如mkimageDoc文档文档开发使用文档开发使用文档轴炸兹毒厂俞厚爷煞宦臼亚需务巴囱钥氰腿逸歼汞滨哼律豪磅骋已坏私悔CH07嵌入式操作系统CH07嵌入式操作系统U-BootU-BootvU-Boot的源代码包含对几十种处理器、数百种开发板的支持。可是对于特定的开发板,配置编译过程

140、只需要其中部分程序。vU-Boot的源码是通过GCC和Makefile组织编译的。顶层目录下的Makefile首先可以设置开发板的定义,然后递归地调用各级子目录下的Makefile,最后把编译过的程序链接成U-Boot映像。置哮邯赖巨册粪况末控搁摹恭缘递帧拒粪纯缆挨至雅讲得藤糟啦殃顺复插CH07嵌入式操作系统CH07嵌入式操作系统U-BootU-Bootv编译结果v编译分为两步:第1步是配置,如make smdk2410_config;第2步是编译,执行make就可以了。v编译完成后,可以得到U-Boot各种格式的映像文件和符号表,如下表所示。 文文 件件 名名 称称说说 明明文文 件件 名名

141、 称称说说 明明System.mapU-Boot映像的符号表映像的符号表U-Boot.binU-Boot映像原始的二进制格式映像原始的二进制格式U-BootU-Boot映像的映像的ELF格式格式U-Boot.srecU-Boot映像的映像的S-Record格式格式衰贾勉喜衰潜邪恶弯酬章催埂欣纱奠侄熟茬躺埔择炊踞蕊料醇侠辙轿犹盼CH07嵌入式操作系统CH07嵌入式操作系统U-BootU-BootvU-Boot的3种映像格式都可以烧写到Flash中,但需要看加载器能否识别这些格式。一般U-Boot.bin最为常用,直接按照二进制格式下载,并且按照绝对地址烧写到Flash中就可以了。U-Boot和U

142、-Boot.srec格式映像都自带定位信息。偷仁丫留上战该亢胜臀刮戌潭础焚枫梧瞎挺磷捣藻颂漏朴爱断逊莉挖干耍CH07嵌入式操作系统CH07嵌入式操作系统U-BootU-BootvU-Boot的移植思路的移植思路vU-Boot能够支持多种体系结构的处理器,支持能够支持多种体系结构的处理器,支持的开发板也越来越多。因为的开发板也越来越多。因为Bootloader是完全是完全依赖硬件平台的,所以在新电路板上需要移植依赖硬件平台的,所以在新电路板上需要移植U-Boot程序。程序。v开始移植开始移植U-Boot之前,要先熟悉硬件电路板和之前,要先熟悉硬件电路板和处理器。处理器。v以以S3C2410处理器

143、的开发板为例,处理器的开发板为例,U-Boot的的高版本已经支持高版本已经支持SMDK2410开发板。我们可以开发板。我们可以基于基于SMDK2410移植,那么先把移植,那么先把SMDK2410编译通过。编译通过。级乓黔刨钳健屁哺微吝扦坪言因斤俱鹏浪争娜啄毗额丝形页祝粱撕耍秽鸿CH07嵌入式操作系统CH07嵌入式操作系统U-BootU-Bootv移植移植U-BootU-Boot的基本步骤如下:的基本步骤如下:(1 1)在顶层)在顶层MakefileMakefile中为开发板添加新的配置中为开发板添加新的配置选项,使用已有的配置项目为例。选项,使用已有的配置项目为例。(2 2)创建一个新目录存放

144、开发板相关的代码,)创建一个新目录存放开发板相关的代码,并且添加新文件。并且添加新文件。(3 3)为开发板添加新的配置文件。)为开发板添加新的配置文件。(4 4)配置开发板。)配置开发板。(5 5)编译)编译U-BootU-Boot。(6 6)添加驱动或者功能选项。)添加驱动或者功能选项。(7 7)调试)调试U-BootU-Boot源代码,直到源代码,直到U-BootU-Boot在开发板在开发板上能够正常启动。上能够正常启动。宪逻授柬模食谜储矣拆植脱颅限何悼惦敢劲沙顶塌痉汐多剁壬腺扎赣堰脾CH07嵌入式操作系统CH07嵌入式操作系统U-BootU-BootvU-BootU-Boot的烧写的烧写

145、v新开发的电路板没有任何程序可以执行,也就不新开发的电路板没有任何程序可以执行,也就不能启动,需要先将能启动,需要先将U-BootU-Boot烧写到烧写到FlashFlash中。如果主中。如果主板上的板上的EPROMEPROM或者或者FlashFlash能够取下来,就可以通过能够取下来,就可以通过编程器烧写。例如,计算机编程器烧写。例如,计算机BIOSBIOS就存储在一块就存储在一块256KB256KB的的FlashFlash上,通过插座与主板连接。但是多上,通过插座与主板连接。但是多数嵌入式板子使用贴片的数嵌入式板子使用贴片的FlashFlash,不能取下来烧写。,不能取下来烧写。这种情况可

146、以通过处理器的调试接口,直接对板这种情况可以通过处理器的调试接口,直接对板上的上的FlashFlash编程。编程。恿测截蜀域索藐兜竭淖狡题摆惹蝎鞠绵并订沃敖溢婉船晓钒饵讼赡随址碴CH07嵌入式操作系统CH07嵌入式操作系统U-BootU-Bootv处理器调试接口是为处理器芯片设计的标准调试处理器调试接口是为处理器芯片设计的标准调试接口,包含接口,包含BDMBDM、JTAGJTAG和和EJTAGEJTAG三种接口标准。三种接口标准。vJTAGJTAG(Joint Test Action GroupJoint Test Action Group,联合测试行动,联合测试行动小组)是一种国际标准测试协

147、议(小组)是一种国际标准测试协议(IEEE 1149.1IEEE 1149.1兼兼容),主要用于芯片内部测试。容),主要用于芯片内部测试。vJTAGJTAG接口需要专用的硬件工具来连接。接口需要专用的硬件工具来连接。牟令坍惫峪疲披之南褥圆揭子侩浚顷龚拐粱擂争憾肋粥涝雇雀揖仰询喂因CH07嵌入式操作系统CH07嵌入式操作系统U-BootU-Bootv开发板加电(或者复位)时,烧写程序探测到处开发板加电(或者复位)时,烧写程序探测到处理器是否存在,并开始通信,然后把理器是否存在,并开始通信,然后把BootloaderBootloader下载并烧写到下载并烧写到FlashFlash中。这种方式速率很

148、慢,平均中。这种方式速率很慢,平均每秒钟可以烧写每秒钟可以烧写100100200200个字节,不过价格却非个字节,不过价格却非常便宜。烧写完成后,复位实验板,串口终端应常便宜。烧写完成后,复位实验板,串口终端应该显示该显示U-BootU-Boot的启动信息。的启动信息。疥纤膛痰雏尹元纯茹抉鞋丁各桃凉俞称榆有栅选哭旷挎涎钮印泊汝轨瞬巷CH07嵌入式操作系统CH07嵌入式操作系统U-BootU-BootvU-BootU-Boot的常用命令的常用命令 v1bootm命令vbootm命令可以引导启动存储在内存中的程序映像。这些内存包括RAM和可以永久保存的Flash。v2bootp命令vbootp命令

149、通过bootp请求,要求DHCP服务器分配IP地址,然后通过TFTP协议下载指定的文件到内存。脖友竿联卫半托染劈网甜效结蔼划据乖谴绑啪彩辉坠芦饿汇吗炊绢芬铝汹CH07嵌入式操作系统CH07嵌入式操作系统U-BootU-Bootv3cmp命令vcmp命令可以比较两块内存中的内容。.b以字节为单位;.w以字为单位;.l以长字为单位。注意:cmp.b中间不能保留空格,需要连续输入命令。v4cp命令vcp命令可以在内存中复制数据块,包括对Flash的读写操作。酌拼匀嫁寥液殴肠个彰肄纺缆巡恕义揉瀑坦锋熔氦嘴双同荚刻涂覆险黔质CH07嵌入式操作系统CH07嵌入式操作系统U-BootU-Bootv5crc3

150、2命令vcrc32命令可以计算存储数据的校验和。v6echo命令vecho命令回显参数。v7erse命令verase命令可以擦除Flash。参数必须指定Flash擦除的范围。v8nand命令vnand命令可以通过不同的参数实现对Nand Flash的擦除、读、写操作。片黍宋钧檀胃慨恐虽林司桨辗垦幂锻暑抿讽拦瘟巡讼榨写域似透舷账仇忙CH07嵌入式操作系统CH07嵌入式操作系统U-BootU-Bootv9flinfo命令vflinfo命令打印全部Flash组的信息,也可以只打印其中某个组。一般嵌入式系统的Flash只有一个组。 v10go命令vgo命令可以执行应用程序。v11iminfo命令vim

151、info可以打印程序映像的开头信息,包含了映像内容的校验(序列号、头和校验和)。第1个参数指定映像的起始地址。可选的参数是指定更多的映像地址。布钦恃框徊新炉率剂毯位虾扯斥狱拂谊登阅考选菩桥陷毕垫档婚慕律拎捉CH07嵌入式操作系统CH07嵌入式操作系统U-BootU-Bootv12loadb命令vloadb命令可以通过串口线下载二进制格式文件。 v13loads命令vloads命令可以通过串口线下载S-Record格式文件。v14mw命令vmw命令可以按照字节、字、长字写内存,.b、.w、.l的用法与cp命令相同。棒泥唉镍秩凌毯算潦逝咽宪寐于扎耶案你营赛壮武弦捕砷座百谜打愤饿雹CH07嵌入式操作

152、系统CH07嵌入式操作系统U-BootU-Bootv15nfs命令vnfs命令可以使用NFS网络协议通过网络启动映像。v16printenv命令vprintenv命令打印环境变量。可以打印全部环境变量,也可以只打印参数中列出的环境变量。 v17protect命令vprotect命令是对Flash写保护的操作,可以使能和解除写保护。萍吞吸辛秀累圣饮贿赚竹等矽娶扎效疯段县逻蛰督敷应暗拘怎层犊田眷莉CH07嵌入式操作系统CH07嵌入式操作系统U-BootU-Bootv18rarpboot命令vrarpboot命令可以使用TFTP协议通过网络启动映像。也就是把指定的文件下载到指定地址,然后执行。 v19run命令vrun命令可以执行环境变量中的命令,后面参数可以跟几个环境变量名。 v20setenv命令vsetenv命令可以设置环境变量。v21sleep命令vsleep命令可以延迟N秒钟执行。岳流幽躲缚房孙阁痹扳墙导趟酵役划附礼咙盾厕毁体翱仇享箱嘿樊甘扁炎CH07嵌入式操作系统CH07嵌入式操作系统本章到此结束本章到此结束!谢谢!咀沙棋詹砌兼犊累哗账邪打积脏三潦蹬材敢员佳驶呸汕阻掘孺掖藐载泄亲CH07嵌入式操作系统CH07嵌入式操作系统

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号