UCOS内核结构.ppt

  1. 1、本文档共42页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
UCOS内核结构

μC/OS-Ⅱ的初始化(3)-5个空的数据结构缓冲区 任务调度(1)(Task Scheduling) 原则:μC/OS-Ⅱ总是运行进入就绪态任务中优先级最高的那一个 功能:确定哪个任务优先级最高、下面该哪个任务运行了的工作是由调度器(Scheduler)完成的 注意1:任务级的调度是由函数OSSched()完成的;中断级的调度是由另一个函数OSIntExt()完成的 void OS_Sched (void) //os_core.c 注意2:μC/OS-Ⅱ任务调度所花的时间是常数,与应用程序中建立的任务数无关 任务调度(2)-OSSched源代码 (1)如果不是在中断服务子程序调用OSSched(),并且任务调度是允许的,即没有上锁,则开始进行调度 (2)就绪态且优先级最高的任务,该任务的优先级付给变量OSPrioHighRdy (3)检验这个优先级最高的任务是不是当前正在运行的任务 (4)为实现任务切换,OSTCBHighRdy必须指向优先级最高的那个任务控制块OS_TCB,这是通过将以OSPrioHighRdy为下标的OSTCBPrioTbl[]数组中的那个元素赋给OSTCBHighRdy来实现的 (5)统计计数器OSCtxSwCtr加1,以跟踪任务切换次数 (6)宏调用OS_TASK_SW()来完成实际上的任务切换 给调度器上锁和开锁(1) 作用:主要用于对临界段代码的保护 给调度器上锁函数OSSchedlock() 用于禁止任务调度,调度器开锁函数OSSchedUnlock()用于允许任务调度 某任务调用OSSchedlock() 函数后,保持对CPU的控制权,尽管有个优先级更高的任务进入了就绪态;此时中断是可以被识别的,中断服务也能得到(假设中断是开着的) OSSchedlock()和OSSchedUnlock()必须成对使用 锁嵌套:变量OSLockNesting跟踪OSSchedLock()函数被调用的次数,以允许嵌套的函数包含临界段代码。μC/OS-Ⅱ允许嵌套深度达255层。当OSLockNesting等于零时,调度重新得到允许,OSSchedUnlock() 调用OSSched 进行任务调度 给调度器上锁和开锁(2) 注意:调用OSSchedLock()以后,用户应用程序不得使用任何能将现行任务挂起的系统调用。就是说,用户程序不得调用OSMboxPend()、OSQPend()、OSSemPend()、OSTaskSuspend(OS_PR1O_SELF)、OSTimeDly()或OSTimeDlyHMSM(),直到OSLockNesting回零为止。因为调度器上了锁,任务就锁住了系统,任何其它任务都无法运行 中断服务子程序的示意码 保存全部CPU寄存器; (1) 调用OSIntEnter或OSIntNesting直接加1; (2) 清中断源 (3) 重新开中断 (4) 执行用户代码做中断服务; (5) 调用OSIntExit(); (6) 恢复所有CPU寄存器; (7) 执行中断返回指令; (8) (5)用户服务以中断请求设备的程序,一般使用C语言编写 (4)如果允许中断嵌套,则重新开中断;ucos支持中断嵌套 μC/OS-Ⅱ中的中断处理(1)-中断服务子程序编写 (1)a用户代码应该将全部CPU寄存器推入当前任务栈 (2) μC/OS-Ⅱ需要知道用户在做中断服务,故用户应该调用OSIntEnter(),或者将全程变量OSIntNesting[L3.15(2)]直接加1 (3)如果决定重新允许中断,必须首先清楚中断源;否则会重新进入这一段中断服务程序 (6)调用脱离中断函数OSIntExit()标志着中断服务子程序的终结,OSIntExit()将中断嵌套层数计数器减1。当嵌套计数器减到零时,所有中断,包括嵌套的中断就都完成了,

文档评论(0)

linsspace + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档