




如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
嵌入式系统设计与实例开发 ——ARM与C/OS-Ⅱ 第四讲实时嵌入式操作系统C/OS-Ⅱ 嵌入式实时操作系统C/OS[1]嵌入式实时操作系统C/OS[1]嵌入式实时操作系统C/OS[1]临界段(CriticalSections)临界段(CriticalSections)任务task任务状态任务控制块(TCB)任务控制块结构空任务列表就绪表1、使任务进入就绪态的程序编写2、从就绪表中删除一个任务的程序3、找出进入就绪态的优先级最高的任务程序编写源代码中使用了查表法任务的调度--OSSched任务的调度--OSSched任务的调度--OSSched任务的调度--OSSched给调度器上锁和开锁(LockingandUnLockingtheScheduler)给调度器上锁和开锁(LockingandUnLockingtheScheduler)空闲任务统计任务μC/OS-Ⅱ中的中断处理μC/OS-Ⅱ中的中断处理关于OSIntExit()中断与时钟节拍时钟节拍voidOSTimeTick(void) { OS_TCB*ptcb; ptcb=OSTCBList;---OSTCB链表指针 while(ptcb->OSTCBPrio!=OS_IDLE_PRIO){看是不是空闲任务,空闲任务是最后的任务 if(ptcb->OSTCBDly!=0){是否延时 if(--ptcb->OSTCBDly==0){延时减一,看是否延时结束 if(!(ptcb->OSTCBStat&OS_STAT_SUSPEND)){ OSRdyGrp|=ptcb->OSTCBBitY;是的话将其列入准备就绪表 OSRdyTbl[ptcb->OSTCBY]|=ptcb->OSTCBBitX; }else{ptcb->OSTCBDly=1;} }} ptcb=ptcb->OSTCBNext;指针指向下一个TCB结构 } OSTime++;变量加一,记录系统启动以来的时钟滴答数 }OSTimeTick(void)时间μC/OS-Ⅱ初始化μC/OS-Ⅱ的启动μC/OS-Ⅱ的启动 bl OSTaskSwHook用户自定义函数 把OSRunning设为1 li r0,1 lis r11,OSRunning@ha stb r0,OSRunning@l(r11) 获取准备运行的任务TCB指针 lis r11,OSTCBHighRdy@ha lwz r11,OSTCBHighRdy@l(r11) 设置当前运行任务TCB lis r12,OSTCBCur@ha stw r11,OSTCBCur@l(r12) 获取新的任务的堆栈指针 lwz r1,0(r11) 恢复新任务的上下文 lwz r2,XR2(r1) ....... rfivoidOSTimeDly(INT16Uticks) { if(ticks>0){确保tick大于0 OS_ENTER_CRITICAL();进入临界段代码 if((OSRdyTbl[OSTCBCur->OSTCBY]&=~OSTCBCur->OSTCBBitX)==0){/*Delaycurrenttask*/ OSRdyGrp&=~OSTCBCur->OSTCBBitY;设置任务为非就绪状态 } OSTCBCur->OSTCBDly=ticks;在TCB中装载延时数 OS_EXIT_CRITICAL();退出临界段代码 OSSched();调度下一个任务开始运行 } }任务管理 建立任务TaskCreate()TaskCreate()OSTaskCreateExt任务堆栈OSTaskCreateExt任务堆栈 删除任务,OSTaskDel()请求删除任务,OSTaskDelReq()改变任务的优先级,OSTaskChangePrio()挂起任务,OSTaskSuspend()恢复任务,OSTaskResume()获得有关任务的信息,OSTaskQuery()任务之间的通信与同步 任务间通信手段事件控制块ECB事件控制块ECB通信示例事件控制块ECB:程序结构事件控制块ECB等待任务列表1、将一个任务放到事件的等待任务列表中2、从等待任务列表中删除一个任务3、在等待任务列表中查最高优先级的任务使一个任务进入就绪态,OSEventTaskRdy()使一个任务进入等待某事件发生状态,OSEventTaskWait()由于等待超时而将任务置为就绪态,OSEventTO(信号量semaphore信号量semaphore信号量semaphore信号量semaphore建立一个信号量,OSSemCreate()等待一个信号量,OSSemPend()发送一个信号量,OSSemPost()无等待地请求一个信号量,OSSemAc

王子****青蛙
实名认证
内容提供者


最近下载
最新上传
浙江省宁波市2024-2025学年高三下学期4月高考模拟考试语文试题及参考答案.docx
汤成难《漂浮于万有引力中的房屋》阅读答案.docx
四川省达州市普通高中2025届第二次诊断性检测语文试卷及参考答案.docx
山西省吕梁市2025年高三下学期第二次模拟考试语文试题及参考答案.docx
山西省部分学校2024-2025学年高二下学期3月月考语文试题及参考答案.docx
山西省2025年届高考考前适应性测试(冲刺卷)语文试卷及参考答案.docx
全国各地市语文中考真题名著阅读分类汇编.docx
七年级历史下册易混易错84条.docx
湖北省2024-2025学年高一下学期4月期中联考语文试题及参考答案.docx
黑龙江省大庆市2025届高三第三次教学质量检测语文试卷及参考答案.docx