




已阅读5页,还剩100页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、uCOS原理与迁移,U : Microc :控制UCOS :适用于小型控制器操作系统,带有小型开放源代码。详细的评论会剥夺实时内核的可移植性和强大的多任务确定性。2、概要、核心结构任务和调度机制。任务间通信统一操作系统迁移运行统一操作系统,3,任务任务,一个典型的无限循环。void my task(void * pdata) for(;) dosomething等待;做某事;支持64项任务,每项任务都有特定的优先级。优先级越高,数量越少。系统承担两项任务,空闲任务和统计任务。4、任务-任务控制块的数据结构,任务控制块OS_tcb,包括任务堆栈指针、状态、优先级、任务表位置、任务列表指针等。所有任务控制块被分成两个链表,一个空闲链表和一个使用链表。5,任务控制块结构,structs _ tcb os _ stk * ostcbstkptrstructos_tcb*OSTCBNext。structos_tcb*OSTCBprev。OS _ EVENT * OSTCBEventPtrvoid * OSTCBMsgINT16UOSTCBDlyINT8UOSTCBStatINT8UOSTCBPrioINT8UOSTCBX,OSTCBY,OSTCBBitX,OSTCBBitY6,任务状态,7,任务状态,运行,准备,等待,暂停.可以有多个就绪任务,但一次只能运行一个任务,8岁的OSHighRdy是抢占式实时多任务内核,一旦具有最高优先级的任务就绪,它就拥有开始运行的CPU所有权。ready task table:用于存储每个任务的就绪状态标志。它由两个变量组成:OSREDYGRP: 8位,每个变量代表一组(8个)任务中是否有一个就绪任务。):位图表示任务是否准备好了。9,任务队列。对于就绪任务,如果采用上述队列模式进行管理,在基于优先级的调度过程中,应获得当前优先级最高的就绪任务:模式1:当任务就绪时,就绪任务的任务控制块应放在就绪队列的末尾。调度程序需要从就绪队列的头部遍历到尾部,以获得就绪队列中优先级最高的任务。模式2:就绪队列按优先级从高到低排列。当新的就绪任务到达时,需要将其插入就绪队列的适当位置,以确保就绪队列保持从高到低的优先级顺序。10、任务队列,在这两种处理方法中,所花费的时间与任务数量密切相关,具有不确定性。为了提高实时内核的确定性,可以使用一种称为优先级位图的就绪任务处理算法。11,ucos中的freetcbsafteros _ tcbinit(),12,优先级位图算法,OSRdyGrp:优先级就绪组OSRdyTbl:优先级就绪表,35:000 010011,charosrdygrp8;13,优先级映射表OSMAPTBL,CHAROSMAPTBL 8=0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x 80 ;OSMapTbl的数组元素的下标对应于任务优先级的低三位。在对应于OSMapTbl的数组元素的二进制值中,位1表示OSRdyGrp或OSRdyTbl的对应位也是1。,35:00100011,14,int8 uconstosumaptbl=,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,0,5,0,1,0,0,2,0,1,0,3,0,1,0,2,0,0,0,0,4=OsuNMaptBL0 x50;3=OsuNMaptBL0 x88;35=(43);OSRdyTbl优先级3|=osmap TBL优先级,35:0100101,00010000,00001000,16,任务退出就绪if(osrdytbl优先级3),35:0101,OSRDYGRP,7,6,5,4,3,2,1,0,15,14,13,12,11,10,9,8,23,223位=奥逊-奥斯达-高3位;priority=(high3bit4/high3bit,0 x88-3/low3bit,osrdytbl0,osrdytbl1,osrdytbl2,osrdytbl3,osrdytbl4,osrdytbl5,osrdytbl6,osrdytbl7,18岁。任务0和任务1的设计是:任务0连续挂起,然后由任务1释放,两个任务连续切换执行。基本任务管理,19。任务通常是一个无限循环。 C/OS-II中的每个任务必须分配不同的优先级。 C/OS-II总是以最高优先级运行任务,进入就绪状态,20。运行过程,运行过程,21。T1之后,应用程序任务开始旋转,运行进程,22。# DEFINIZED _ LONEST _ PRIO 14/*任务优先级不能大于14 */,允许使用# DEFINIZED _ TASK _ CREATE _ EN1/* OSTaskCREAte()*/。# DEFILED _ TASK _ SUSPEND _ EN1/*允许您使用OstAskSuspend()和OSTaskCreate()*/,# DEFILED _ MAX _ TASK 3/*最多可以创建3个任务*/,操作系统配置,23,OSTaskCreate():创建新任务。OSTaskSuspend():无条件挂起任务,OSTaskResume():唤醒挂起的任务,OSTimeDly():将任务延迟几个时钟节拍,24,1,创建开始任务任务开始,OstaskCreate (Void *) 0,源程序描述,25,Taskstart负责:安装时钟中断服务例程UCOS _ x86 _ IDT _ SET _ HANDLER (0x20,(Void *)osticsr,0x8e 00);初始化操作系统时钟ucos_timer_init()。创建应用程序任务任务开始创建任务();源程序描述,26,2,创建应用程序task0和task1,ostaskcreate (task0,(void *),源程序描述,27,Task0函数:挂起自己,void task0 (void * pdata) .用于(;)/*无限循环*/.err=ostask suspend(5);/* suspend本身*/err=OstaskResume(6);/*唤醒任务1 */,3,应用程序任务,源程序描述,28,任务1功能:唤醒任务0,无效任务1(无效* PDATA) .用于(;)/*无限循环*/.err=OstaskResume(5);/* resume ask 0 */err=OstaskSuspend(6);/*暂停任务1 */,源程序描述,29,输出信息,30,高优先级任务需要等待低优先级任务释放资源,而低优先级任务等待中优先级任务,这种现象称为优先级反转。优先级反转原理,31、有3个应用任务TA0、TA1、TA2优先级: ta 0ta 1ta 2;TA0和TA2互斥使用资源互斥体;TA2首先得到互斥体。,32,#defineOS _ LONEST _ PRIO 9/*任务优先级不能大于9 */,# DEFINEOS _ TASK _ CREATE _ EN1/* OSTASKCREATE()*/,# DEFINEOS _ MAX _ TASK 4/*最多可用于创建4个任务*/,#defineOS_TASK_STAT_EN0/*禁用统计任务*/,操作系统配置,33,# DEFINEOS _ Ticks _ PER _ SEC 200/*设置每秒钟节拍数*/,# DEFINEOS OSTimeDly():将任务延迟几个时钟节拍,OseMcCreate():创建并初始化信号量,OsePend():应用信号量,Osepost () :设置信号量,35,1。 创建初始任务Taskstart,OstaskCreate (Taskstart,(Void *) 0,源程序描述,36。Taskstart负责:安装时钟中断服务例程UCOS _ x86 _ IDT _ SET _ HANDLER (0x20,(Void *)Osticksr,0x8E 00);初始化操作系统时钟ucos_timer_init()。创建应用程序任务任务开始创建任务();源程序描述,37,2,创建应用程序Task0,Task1,task2,ostaskcreate (task0,(void *),源程序描述,38,void task0 (void * pdata) .用于(;)/*无限循环*/.流入地(200);/* delay 200 clock tick */OS empt(mutex,0,/* releasemutex */,3。应用程序任务,任务0函数:应用程序信号量互斥体,39,任务1函数:中等优先级任务,任务2 CPU的抢占,无效任务1 (void * pdata) .用于(;)/*无限循环*/.奥斯麦德利(100);.奥斯麦德利(100);我不确定这是不是真的。)/*无限循环*/.ossemenpend (mutex,0,/* releasemutex */),task2函
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年电力电子技术高级应用工程师考试题集及答案详解
- 2025年钎焊工艺原理及实操模拟题集
- 2025年物流工程中级考试模拟题集及解析
- 眼压的影响因素
- 眶后侧壁脂肪疝影像课件
- 2025年计算机等级考试二级Python教程与实战
- 2025年教育行业教师招聘面试问题及答案
- 布艺沙发结构知识培训课件
- 真假美猴王课件
- 布病防治知识培训课件
- 八年级英语备课组教学工作计划范文
- 2025年电商行业直播带货研究报告:直播电商产业链分析
- (正式版)DB44∕T 2683-2025 《老年肌少症中西医结合健康管理规范》
- 企业工程管理办法
- 小学生美术国画课件
- 基孔肯雅热的个案护理
- 医疗反歧视培训
- 深圳市生产安全事故调查处理工作规范
- 氢气安全培训课件
- GB/T 45701-2025校园配餐服务企业管理指南
- 电商公司处罚管理制度
评论
0/150
提交评论