嵌入式系统设计与实例开发1.ppt
文本预览下载声明
一、嵌入式实时操作系统?C/OS 二、嵌入式Linux 三、WinCE 一、嵌入式实时操作系统?C/OS 公开源代码 可移植性(Portable) 绝大部分? C/OS-II的源码是用移植性很强的ANSI C写的。和微处理器硬件相关的那部分是用汇编语言写的。汇编语言写的部分已经压到最低限度,使得? C/OS-II便于移植到其他微处理器上。 ? C/OS-II可以在绝大多数8位、16位、32位以至64位微处理器、微控制器 、数字信号处理器(DSP)上运行。 可固化(ROMable) ? C/OS-II是为嵌入式应用而设计的,这就意味着,只要读者有固化手段(C编译、连接、下载和固化), ? C/OS-II可以嵌入到读者的产品中成为产品的一部分。 可裁剪(Scalable) 可以只使用? C/OS-II中应用程序需要的那些系统服务。也就是说某产品可以只使用很少几个? C/OS-II调用,而另一个产品则使用了几乎所有? C/OS-II的功能,这样可以减少产品中的? C/OS-II所需的存储器空间(RAM和ROM)。这种可剪裁性是靠条件编译实现的。 占先式(Preemptive) 多任务 ?C/OS-II可以管理64个任务,然而,目前这一版本保留8个给系统。应用程序最多可以有56个任务 可确定性 全部? C/OS-II的函数调用与服务的执行时间具有可确定性。 任务栈 每个任务有自己单独的栈, ? C/OS-II允许每个任务有不同的栈空间,以便压低应用程序对RAM的需求。 系统服务 ?C/OS-II提供很多系统服务,例如邮箱、消息队列、信号量、块大小固定的内存的申请与释放、时间相关函数等。 中断管理 中断可以使正在执行的任务暂时挂起,如果优先级更高的任务被该中断唤醒,则高优先级的任务在中断嵌套全部退出后立即执行,中断嵌套层数可达255层。 稳定性与可靠性 内核结构 任务管理 时间管理 任务之间通信与同步 ?C/OS的移植 总结 不存在一个内核任务/实体,内核的管理是通过调用系统函数来实现的。 每个任务有自己的堆栈空间。内核对任务的占先式调度不会干扰每个任务的总的运行结果。 uC/OS的改进 固定的基于优先级的调度,不支持时间片,使用起来不方便。一个任务的基础上增加一个基于时间片的微型调度核 在对临界资源的访问上使用关闭中断实现,没有使用CPU提供的硬件指令,例如测试并置位。 系统时钟中断,没有提供用户使用定时器,可以借鉴linux的定时器加以修改 可以加上文件系统和TCP/IP协议栈 二、嵌入式Linux Linux系统是层次结构且内核完全开放 强大的网络支持功能 Linux具备一整套开发工具链 Linux具有广泛的硬件支持特性 同步跟踪快 遵循通用国际标准,便于程序的移植 Linux的结构 类UNIX 嵌入式Linux 嵌入式Linux(Embedded Linux)是指对Linux经过小型化裁剪后,能够固化在容量只有几百K字节或几兆字节的存储器芯片或单片机中,应用于特定嵌入式场合的专用Linux操作系统。嵌入式Linux的开发和研究是目前操作系统领域的一个热点。 RTLinux ?CLinux …… Linux作为嵌入式应用的缺点 首先linux最初设计为通用操作系统,其目标是追求整体最佳性能,所以不能很好处理实时任务; 其次,如何精简linux适用于嵌入式环境也是一个难题。 嵌入式linux的研究内容 嵌入式linux内核技术 嵌入式库技术 开发环境技术 嵌入式应用 BIOS和boot loader启动加载程序 设备驱动技术 图形界面技术 几种嵌入式Linux Hardhat linux Hardhat Linux是由MontaVista公司开发产品,是目前最具影响力嵌入式Linux。MontaVista通过直接修改内核来扩充linux内核的实时性。 RTlinux RTlinux是FSMLabs[16]开发的硬实时嵌入式linux。RTlinux使用双内核结构;在底层使用一个硬实时内核,linux作为该内核的空闲任务;当有实时任务时,通过硬实时内核调度该任务;没有其他任务时,则运行普通linux。 uClinux uClinux是针对无mmu(存储器管理单元)微控制领域而设计的Linux系统。u是希腊字母表示”小”,C是controller表示控制器。uClinux和标准linux最大的区别是内存管理上,标准linux利用CPU硬件的支持实现虚拟内存机制,而uClinux采用实存储器管理策略。 ?Clinux ?Clinux
显示全部