- 1、本文档共40页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《ARM嵌入式接口技术应用》第八章_μCOS-Ⅱ嵌入式操作系统的移植.ppt
第八章 μC/OS-Ⅱ嵌入式操作系统 一、嵌入式实时操作系统 二、μC/OS-Ⅱ的软件体系结构 三、μC/OS-Ⅱ的移植分析 四、μC/OS-Ⅱ在ARM7处理器上的移植 五、μC/OS-Ⅱ移植到LPC2220处理器上 六、移植代码的测试 七、μC/OS-Ⅱ操作系统实验 一、嵌入式实时操作系统 操作系统(Operating System)是一组对计算机系统资源(包括硬件和软件)进行全面控制与管理的系统化程序。 操作系统是计算机硬件与应用软件之间的接口,是软件系统的核心。在操作系统的支持下,计算机运行其他应用软件才能得以正确执行。 操作系统具有四大基本管理功能: 1、任务(进程)管理; 2、存储管理; 3、设备管理; 4、文件管理。 1.1 操作系统的管理功能 1)任务(进程)管理 任务(进程)管理主要负责控制用户任务的进入、执行、结束以及控制任务在过程中的状态切换与通信。 2)存储管理 存储管理主要任务是为多道程序的运行提供良好的环境,方便用户使用存储器,提高存储器的利用率,以及能从逻辑上来扩充内存。 3)设备管理 设备管理是完成用户提出的I/O请求。 4)文件管理 文件管理主要任务是对用户文件和系统文件进行管理,方便用户使用,保证文件的安全性。 1.2 实时操作系统 实时操作系统RTOS(Real Time Operating System) 是指能在确定的时间内执行其功能并对外部的异步事件做出响应的计算机系统。 实时操作系统主要满足以下两个领域的需要: 1、实时控制: 能实时采集现场数据,对所采集的数据进行处理,进而自动的控制 相应的执行机构。 2、实时信息处理: 对信息进行实时处理的系统称为实时信息处理系统。 1.3 μC/OS-Ⅱ嵌入式操作系统 在嵌入式应用中使用嵌入式实时操作系统能充分发挥32位CPU的多任务潜力;提高开发效率,缩短开发周期;并且开发出来的产品具有高可靠性。 常见的嵌入式操作系统有:μCLinux、RTLinux、Windows CE、Palm OS、VxWorks、OSE、eCos、μC/OS-II。 μC/OS-II操作系统就是一款安全性好、稳定性高的硬实时操作系统,能及时(即时)响应外部事件的请求,在规定的时间内完成该事件的处理,并控制所有实时任务协调一致的运行。 它具备实时操作系统的基本特征:时限、多任务机制、抢占调度、相关任务间同步与通信。 二、μC/OS-Ⅱ的软件体系结构 μC/OS-II软件体系结构图 1.1 μC/OS-Ⅱ代码组成 μC/OS-II软件代码包含3大部分: 1、头文件: 头文件包括:μC/OS-II.h、OS_CPU.h、OS_CFG.h。 2、与处理器无关的源代码: 大体分为:核心(内核)部分、任务管理部分、任务同步与通信部分、时间管理部分、内存管理部分。 3、与处理器无关的源代码: 包含具体内容是:根据具体CPU的具体内容和要求作相应的移植 三、μC/OS-Ⅱ的移植分析 移植就是让移植对象一一实时操作系统能在移植目标处理器中运转起来。 μC/OS-II需要移植的代码 1、定义数据类型 2、定义开/关中断函数 3、定义堆栈初始化函数 4、定义任务切换函数 5、定义节拍中断服务程序 1.OSTaskStkInit() OSTaskStkInit()函数实现堆栈的初始化。 2.OSStartHighRdy() OSStartHighRdy()是由OSStart()调用,它实现任务建立以后(但还没有任务调度),使最高优先级的任务取得内核的使用权。 3.OS_TASK_SW() 当任务被挂起或唤醒完成任务调度。 3.OS_TASK_SW() OS_TASK_SW()的任务调度的数据结构 4.OSIntCtxSw() OSIntCtxSw()函数完成在中断(ISR)中直接进行任务切换。一般发生是在中断退出之前。 5.OSTickISR() OSTickISR()函数是时钟中断处理函数,主要任务是负责处理时钟中断。 在实时操作系统中,时钟节拍一般为10~100HZ。假定,时钟节拍为50HZ,那么每隔20ms,内核就对所有任务进行扫描,找出就绪态中任务级别最高的任务,进行调度。 OSTickISR()函数是定时器的中断服务程序,这个中断服务程序要求进入中断前保护CPU现场,中断完成之后,将要运行的任务的寄存器从堆栈中恢复。 四、μC/OS-Ⅱ在ARM7处理器上的移植 typedef unsigned char BOOLEAN; //布尔类型 typedef unsigned char INT8U; //无符号8位整型
文档评论(0)