ucos-ii操作系统习题(嵌入式方向)解读.doc

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

ucos-ii操作系统uC/OS-II是一个简洁、易用的 基于优先级的嵌入式抢占式多任务实时内核。任务是一个无返回的无穷循环。uc/os-ii总是运行进入就绪状态的【 最高优先级 】的任务 。 因为uc/os-ii总是运行进入就绪状态的最高优先级的任务。所以,确定哪个任务优先级最高,下面该哪个任务运行,这个工作就是由调度器(scheduler)来完成的。 【 任务级 】的调度是由函数OSSched()完成的,而【 中断级 】的调度是由函数OSIntExt() 完成。对于OSSched(),它内部调用的是【 OS_TASK_SW()】 完成实际的调度;OSIntExt()内部调用的是【 OSCtxSw() 】实现调度。任务切换其实很简单,由如下2步完成:(1)将被挂起任务的处理器寄存器推入自己的【 任务堆栈 】。(2)然后将进入就绪状态的最高优先级的任务的寄存器值从堆栈中恢复到【寄存器 】中。任务的5种状态【睡眠态(task dormat) 】:任务驻留于程序空间(rom或ram)中,暂时没交给ucos-ii处理。【就绪态(task ready)】:任务一旦建立,这个任务就进入了就绪态。【运行态(task running)】:调用OSStart()可以启动多任务。OSStart()函数只能调用一次,一旦调用,系统将运行进入就绪态并且优先级最高的任务。【等待状态(task waiting)】:正在运行的任务,通过延迟函数或pend(挂起)相关函数后,将进入等待状态。【中断状态(ISR running)】:正在运行的任务是可以被中断的,除非该任务将中断关闭或者ucos-ii将中断关闭。【】【】【】10.【 可重入型 】函数可以被一个以上的任务调用,而不必担心数据的破坏。可重入型函数任何时候都可以被中断,一段时间以后又可以运行,而相应数据不会丢失。可重入型函数或者只使用【 局部变量 】,即变量保存在CPU寄存器中或堆栈中。如果使用全局变量,则要对全局变量予以【 保护 】。【】13.μC/OS-Ⅱ初始化是通过调用系统函数【OSIint()】实现的,完成μC/OS-Ⅱ所有的变量和数据结构的初始化。 14.多任务的启动是用户通过调用【OSStart()】实现的。然而,启动μC/OS-Ⅱ之前,用户至少要建立一个应用【任务】。C/OS-Ⅱ的参数配置文件名为【OS_CFG.H】。 16. 删除任务,是说任务将返回并处于【】/OS-Ⅱ调用。 17.μC/OS-Ⅱ要求用户提供【】【】10至100次。 19. 时钟节拍的实际频率是由用户的应用程序决定的。时钟节拍的频率越高,系统的负荷就【】20.μC/OS-II中的信号量由两部分组成:一个是信号量的【计数值】,它是一个16位的无符号整数(0 到65,535之间);另一个是由等待该信号量的任务组成的【等待任务表】。用户要在OS_CFG.H中将OS_SEM_EN开关量常数置成【 1 】,这样μC/OS-II才能支持信号量。 μC/OS-II中表示当前已经创建的任务数全局变量名为:【 OSTaskCtr 】μC/OS-II中表示当前内核运行的标记全局变量名为:【 OSRunning 】OSTaskCreate创建任务时,若需要TaskData作伪参数传递给任务Task,并从任务Task中获得传入的字符参数值,请在下面【】Data=’A’; OSTaskCreate(Task, 【(void *)Data 】, TaskStk[][TASK_STK_SIZE - 1], 1); void Task (void *pdata) { char value = 【 *(char *)pdata】 for (;;) { OSSemPend(RandomSem, 0, err); y = (int) (*(char *)pdata - A); OSSemPost(RandomSem); PC_DispChar(10, 25, value, DISP_FGND_WHITE + DISP_BGND_BLUE); OSTimeDly(1); } } 23. 在μC/OS-II在任务Task1中使用邮箱函数OSMboxPost()发送字符;而在Task2中接收OSMboxPost()字符, 请在下面【】void Task1 (

文档评论(0)

22ffbqq + 关注
内容提供者

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

1亿VIP精品文档

相关文档