第四章 嵌入式实时操作系统分析1.ppt
上传人:sy****28 上传时间:2024-09-15 格式:PPT 页数:90 大小:7.9MB 金币:16 举报 版权申诉
预览加载中,请您耐心等待几秒...

第四章 嵌入式实时操作系统分析1.ppt

第四章嵌入式实时操作系统分析1.ppt

预览

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

16 金币

下载此文档

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

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

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

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

嵌入式系统(EmbeddedSystem)实时操作系统C/OS-Ⅱ分析华北电力大学电气与电子工程学院本节提要常见的嵌入式操作系统RTOS在嵌入式系统中的位置RTOS是32位的嵌入式CPU的软件基础C/OS简介公开源代码可移植性(Portable)绝大部分C/OS-II的源码是用移植性很强的ANSIC写的。和微处理器硬件相关的那部分是用汇编语言写的。汇编语言写的部分已经压到最低限度,使得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-II图书µC/OS-II的各种商业应用µC/OS-II提供的系统服务µC/OS-II提供的系统服务µC/GUIandµC/FS本节提要C/OS-II的文件结构内核结构五个子系统组成:进程调度,内存管理,虚拟文件系统,网络接口,进程间通信任务管理时间管理任务之间通信与同步C/OS的移植当处理临界段代码时,需要关中断,处理完毕后,再开中断;关中断时间是实时内核最重要的指标之一;在实际应用中,关中断的时间很大程度中取决于微处理器的结构和编译器生成的代码质量;C/OS-II定义两个宏开关中断:OS_ENTER_CRITICAL()和OS_EXIT_CRITICAL();OS_CRITICAL_METHOD==1用处理器指令关中断,执行OS_ENTER_CRITICAL(),开中断执行OS_EXIT_CRITICAL();OS_CRITICAL_METHOD==2实现OS_ENTER_CRITICAL()时,先在堆栈中保存中断的开/关状态,然后再关中断;实现OS_EXIT_CRITICAL()时,从堆栈中弹出原来中断的开/关状态;OS_CRITICAL_METHOD==3把当前处理器的状态字保存在局部变量中(如OS_CPU_SR,关中断时保存,开中断时恢复任务taskTaskStructureAlternateStructure任务状态任务控制块(TCB)µC/OS-II任务控制块.#if(OS_Q_EN&&(OS_MAX_QS>=2))||OS_MBOX_EN任务控制块OS_TCB中几个成员的算法空任务列表任务控制块初始化函数任务级的任务调度--OSSched根据就绪表确定最高优先级根据优先级找到任务在就绪任务表中的位置根据优先级确定就绪表(1)根据优先级确定就绪表(2)使任务进入就绪态使任务脱离就绪态采用查表法确定高优先级任务INT8UconstOSUnMapTbl[]={0,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,7,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,