Part4 嵌入式操作系统及驱动设计.pdf
上传人:qw****27 上传时间:2024-09-12 格式:PDF 页数:79 大小:355KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

Part4 嵌入式操作系统及驱动设计.pdf

Part4嵌入式操作系统及驱动设计.pdf

预览

免费试读已结束,剩余 69 页请下载文档后查看

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

嵌入式系统原理与设计嵌入式(实时)操作系统及驱动设计2011.03覃海峰qhfeng@gmail.comRTOS内容提要RTOS定义主要功能及实现方法简介RTOS中的驱动BSP一般外设1、嵌入式系统中OS的引入•软硬件分开–方便移植–硬件设计与应用软件设计并行(simulator)•方便建立多进程的复杂软件系统–统一高效的任务管理和通信–高效的使用硬件操作系统OS的主要功能–为应用程序提供访问硬件的接口•如何使用硬件–资源管理•何时/由何应用来使用某资源–提供工具集•简化开发OS实现对硬件的管理–应用程序设计者不需要应用程序关注硬件细节实用工具/协议栈–硬件如何使用由OS管操作系统理硬件–不同硬件平台上OS提供相同接口,甚至可以用软件模拟接口OS-多进程的处理•简单应用可以由单段程序来实现–例如大部分单片机程序(主循环+中断)•复杂的应用难以用单个程序来实现及管理–例如手机:•1.后台播放音乐•2.通话•3.查找电话本•4.按键输入•5.显示•操作系统是控制应用程序运行的程序OS的功能•基本功能–处理器资源管理(主要为中断管理)–内存管理–进程管理(调度/通信)–设备驱动•高级功能–文件系统–各种协议栈(专家库…)–安全功能嵌入式操作系统EOS(EmbeddedOperatingSystem)•体积小(足够精简以存储在ROM等介质中)•可靠性高(长期不间断运行)•功耗低(很多设备用电池供电)•可配置性•扩充性–新的硬件/新的服务EOS-体积小•内核足够小/可配置•单内核或宏内核(monolithickernel,Macrokernel)–宏内核内部可被分为若干模块,运行时是一个独立的二进制大映像。模块间通过函数调用实现•微内核microkernel–微内核是一个消息转发站,把系统调用转发给相应的模块。–内核本身不提供操作系统的相关服务,而是提供实现这些服务的机制(地址空间管理,进程调度及通信)(分层)单内核与微内核EOS-可靠性•安全可靠的编码•详尽的测试/认证•应用软件具有与操作系统同样的可靠性•存储:ROM/备份•恢复/看门狗EOS-内核裁剪•裁剪–预编译命令–模块注册–运行时配置•不同内核实现的缺点–单内核不容易作出修改–微内核效率不高–*均可改进EOS-功耗•电源管理模块–在不需要的时候关闭/休眠硬件•让CPU空闲时进入低功耗状态•定时关闭时钟•*功耗降低需要应用程序配合–优化的代码设计,快速完成任务–通知OS关闭不需要的硬件eOS-扩充性•静态扩展–重新编译/需要源码/良好的模块性•动态扩展–微内核–内核加载/LKM–操作系统经常性的变化对它的设计提出一定的要求。一个非常明确的观点是,在构造系统时应该采用模块化的结构,清楚地定义模块间的接口,并备有说明文档。对于像现代操作系统这样的大型程序,简单的模块化是不够的。实时操作系统RTOS(realtimeOS)•系统能够在限定的响应时间内提供所需水平的服务(POSIX1003.b)–POSIXPortableOperationgSystemInterface(forUNIX),IEEE制定的OS标准接口(类UNIX的OS,以及WindowNT均适用)•实时性–快速响应外部事件–快速切换资源的使用(实时任务调度)–确保任务按时完成实时系统•实时计算:系统的正确性取决于计算的逻辑结果及产生结果的时间。•硬实时–硬实时任务必须满足最后期限的限制,否则会给系统带来不可接受的破坏或致命错误。•软实时–软实时任务期望满足最后期限的要求;但即使操作最后期限,完成这个任务仍然是有意义的。•周期性实时任务–每隔周期T一次的任务–如果系统中均为周期性实时任务,则实时要求容易达到RTOS的要求•可确定性–中断发生到响应中断的延迟•可响应性–处理中断的时间•用户控制–用户完成非常详细的设计(优先级/存储等)•可靠性和故障弱化RTOS-可确定性•按照固定的、预先确定的时间或时间间隔执行操作。•几乎没有完全可确定的系统–因为外部事件不是可以完全预先确定的•中断发生—开始处理中断的延迟–非实时:几十到几百ms–实时:几到几百usRTOS-可响应性•从最初处理中断到中断处理完成的时间–ISR是否需要进程切换•InterruptServiceRoutine.中断服务例程–执行ISR所需要的时间•是否可能被其它中断打断•快速的