如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
第四讲实时操作系统C/OS-Ⅱ本节提要RTOS是32位的嵌入式CPU的软件基础C/OS简介(一)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/GUIandµC/FS本节提要C/OS-II的文件结构内核结构任务管理时间管理任务之间通信与同步C/OS的移植任务taskTaskStructureAlternateStructure任务状态任务控制块(TCB)µC/OS-II任务控制块#if(OS_Q_EN&&(OS_MAX_QS>=2))||OS_MBOX_EN任务级的任务调度--OSSched根据就绪表确定最高优先级根据优先级找到任务在就绪任务表中的位置根据优先级确定就绪表(1)根据优先级确定就绪表(2)使任务进入就绪态使任务脱离就绪态任务切换任务级的任务切换OS_TASK_SW()调用OS_TASK_SW()前的数据结构保存当前CPU寄存器的值重新装入要运行的任务任务切换OS_TASK_SW()的代码C/OS-II中的中断C/OS-II中的中断服务子程序C/OS-II初始化μC/OS-Ⅱ的启动本节提要建立任务建立任务,OSTaskCreate()OSTaskCtr++;堆栈检验,OSTaskStkChk()删除任务,OSTaskDel()请求删除任务,OSTaskDelReq()改变任务的优先级,OSTaskChangePrio()挂起任务,OSTaskSuspend()恢复任务,OSTaskResume()本节提要时间管理时间管理OSTimeDly()OSTimeDlyHMSM()本节提要任务间通信手段事件控制块ECB事件的等待任务列表事件控制块TCB的操作信号量semaphore信号量操作邮箱管理消息队列管理操作系统的启动和运行过程总结本节提要COS-II在ARM7上的移植移植COS-II满足的条件打开/关闭中断处理器支持中断并且能产生定时中断处理器支持硬件堆栈例:C/OS-II在S3C44B0X上的移植设置与处理器和编译器相关的代码用C语言编写六个操作系统相关的函数堆栈初始化用汇编语言编写四个与处理器相关的函数关于移植移植要点uC/OS的完善