如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
嵌入式系统应用——ARM与C/OS-Ⅱ第四讲实时操作系统C/OS-Ⅱ分析安徽工业大学计算机学院本节提要RTOS是32位的嵌入式CPU的软件基础C/OS简介C/OS简介(续)C/OS简介(续)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/OS-II的各种商业应用µC/OS-IIcanprovidethefollowingservices:µC/GUI-graphicaluserinterfaceµC/FS-FileSystem本节提要C/OS-II的文件结构内核结构任务管理时间管理任务之间通信与同步C/OS的移植任务taskTaskStructure任务状态任务控制块(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,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};TaskschedulervoidOSSchedLock(void)给调度器开锁任务切换任务级上下文切换OS_TASK_SW()调用OS_TASK_SW()前的数据结构保存当前CPU寄存器的值重新装入要运行的任务任务切换OS_TASK_SW()的代码C/OS-II中的中断C/OS-II中的中断服务子程序中断服务Searchforhighestpriority–similartoscheduler中断与时钟节拍时钟节拍中断服务子程序voidOSTimeTick(void)vo