ucosii实时操作系统

ucosii实时操作系统

ID:33949443

大小:10.20 MB

页数:70页

时间:2019-03-02

ucosii实时操作系统_第1页
ucosii实时操作系统_第2页
ucosii实时操作系统_第3页
ucosii实时操作系统_第4页
ucosii实时操作系统_第5页
资源描述:

《ucosii实时操作系统》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、面向二十一世纪的嵌入式系统设计技术第五讲:ucOS/II实时操作系统RTOS(一):ucOS/II2002年1月任课教员:徐欣主讲教员:习勇国防科大电子科学与工程学院嵌入式系统开放研究小组博士博士1嵌入式操作系统—uC/OSWhatisuC/OS?u:MicroC:controluC/OS:适合于小的、控制器的操作系统nnnnnn小巧公开源代码,详细的注解可剥夺实时内核可移植性强多任务确定性2002/112嵌入式操作系统—uC/OSn美国人TheStoryofuC/OSJeanLabrosse1992年编写的nnnn商业软

2、件的昂贵应用面覆盖了诸多领域,如照相机、医疗器械、音响设备、发动机控制、高速公路电话系统、自动提款机等1998年uC/OS-II,目前的版本www.uCOS-II.com2002/11uC/OS-IIV2.513概要嵌入式操作系统—uC/OSnn内核结构任务间通信-任务以及调度机制nnuC/OS的移植在PC机上运行uC/OS2002/114任务task嵌入式操作系统—uC/OSn典型的一个无限循环。voidmytask(void*pdata){for(;;){dosomething;waiting;dosomethi

3、ng;}}n支持64个任务,每个任务一个特定的优先级。优先级n越高,数字越小系统占用了两个任务,空闲任务和统计任务。2002/115嵌入式操作系统—uC/OS任务的数据结构—任务控制块n任务控制块OS_tcb,包括n任务堆栈指针,状态,优先级,任务表位置,任务链表指针等。所有的任务控制块分为两条链表,空闲链表和使用链表。新任务TCB(1)TCB0TCB1nextpre(2)(3)OSTCBFreeList图4.3TCB的双向链表结构TCBn空2002/116任务控制块结构嵌入式操作系统—uC/OSnStructo

4、s_tcb{OS_STK*OSTCBStkPtr;structos_tcb*OSTCBNext;structos_tcb*OSTCBprev;OS_EVENT*OSTCBEventPtr;void*OSTCBMsg;INT16UOSTCBDly;INT8UOSTCBStat;INT8UOSTCBPrio;INT8UOSTCBX,OSTCBY,OSTCBBitX,OSTCBBitY;}OS_TCB2002/117嵌入式操作系统—uC/OS任务的状态OSTCBStatn运行,就绪,等待,挂起OSTCBStat低四位挂起队列邮箱信号量…

5、n可以有多个准备就绪的任务,但一个时刻只有一个任务可以运行,OSHighRdy2002/118嵌入式操作系统—uC/OS任务的调度--OSSchednnuC/OS是占先式实时多任务内核,优先级最高的任务一旦准备就绪,则拥有所有权开始投入运行。uC/OS中不支持时间片轮转法,每个任务的优先级要求不一样且是唯一的,所以任务调度的工作就是:查找准备就绪的最高优先级的任务并进行上下文切换。CPU的2002/119嵌入式操作系统根据优先级找到任务在就绪任务表中的位置OSRdyGrp76543210—uC/OSOSRdyTbl[7]X

6、优先级最高任务任务优先级[0][1][2][3][4][5][6][7]765431514131211232221201931302928273938373635474645444355545352516362616059优先级最低任务(空闲任务)2101826344250581098171625243332414049485756Y002002/11YYYXXX任务优先级号10嵌入式操作系统根据优先级确定就绪表—uC/OSn假设优先级为12的任务进入就绪状态,12=1100b,则OSRdyTbl[1]的第置1,相应

7、的数学表达式为4位置:1,且OSRdyGrp的第1位nOSRdyGrp

8、=0x02;OSRdyTbl[1]

9、=0x10;而优先级为21的任务就绪OSRdyTbl[2]的第5位置1,且1,相应的数学表达式为:OSRdyGrp

10、=0x04;OSRdyTbl[2]

11、=0x20;21=10101b,则OSRdyGrp的第2位置2002/1111n嵌入式操作系统根据优先级确定就绪表从上面的计算我们可以得到—uC/OS:若第n位置1,则应该与2n相或。uC/OS中,把2n的n=0-7的8个值先计算好存在数组就是:OSMapTb

12、l[0]=20=0x1;OSMapTbl[1]=21=0x2;……OSMapTbl[7]中,也OSMapTbl[7]=27=0x80;2002/1112n利用

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。