网站大量收购闲置独家精品文档,联系QQ:2885784924

嵌入式程序设计复习题.doc

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

嵌入式系统程序设计练习题;1.2.任务是一个无返回的无穷循环;.因为uc/os-ii总是运行进入就绪状态任务优先级最高,下面该哪个任务运行,这个工作就来完成的;.任务级的调度是由函数OSSched()函数OSIntExt()可重入(reentrant)函数可以由多于一个任务并发使用,而不必担心数据错误。相反, 不可重入(non-reentrant)函数不能由超过一个任务所共享,除非能确保函数的互斥(或者使用信号量,或者在代码的关键部分禁用中断)。可重入函数可以在任意时刻被中断,稍后再继续运行,不会丢失数据。可重入函数要么使用本地变量,要么在使用全局变量时保护自己的数据。 13.可重入型函数任何时候都可以被中断,一段时间以后又可以运行,而相应数据不会丢失。可重入型函数或者只使用【 局部变量 】,即变量保存在CPU寄存器中或堆栈中。如果使用全局变量,则要对全局变量予以【 保护 】。 14.每个任务都有其优先级。任务越重要,赋予的优先级应【 越高 】。 15.μC/OS-Ⅱ初始化是通过调用系统函数【OSIint()】实现的,完成μC/OS-Ⅱ所有的变量和 数据结构的初始化。 16.多任务的启动是用户通过调用【OSStart()】实现的。然而,启动μC/OS-Ⅱ之前,用户 至少要建立一个应用【任务】。 17 μC/OS-Ⅱ的参数配置文件名为【OS_CFG.H】。 18. 删除任务,是说任务将返回并处于【休眠状态】,并不是说任务的代码被删除了,只是任务的代码不再被μC/OS-Ⅱ调用。 19.μC/OS-Ⅱ要求用户提供【定时中断】来实现延时与超时控制等功能。 20.定时中断也叫做【时钟节拍】,它应该每秒发生10至100次。 21. 时钟节拍的实际频率是由用户的应用程序决定的。时钟节拍的频率越高,系统的负荷就【越重】。 22.μC/OS-II中的信号量由两部分组成:一个是信号量的【计数值】,它是一个16位的无符号整数(0 到65,535之间);另一个是由等待该信号量的任务组成的【等待任务表】。 用户要在OS_CFG.H中将OS_SEM_EN开关量常数置成【 1 】 ,这样μC/OS-II才能支持信号量。 23. μC/OS-II中表示当前已经创建的任务数全局变量名为:【 OSTaskCtr 】。 24. μC/OS-II中表示当前内核运行的标记全局变量名为:【 OSRunning 】。 25.在使用OSTaskCreate创建任务时,若需要TaskData作伪参数传递给任务Task,并从任务Task中获得传入的字符参数值,请在下面【 】填上合适的代码。 char TaskData=?A?; OSTaskCreate(Task, 【(void *) TaskData 】, TaskStk[0][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); } } 26. 在μC/OS-II在任务Task1中使用邮箱函数OSMboxPost()发送字符;而在Task2中接收OSMboxPost()字符, 请在下面【 】填上合适的代码。 void Task1 (void *data) { char txmsg; INT8U err; … txmsg = A; for (;;) { OSMboxPost(TxMbox, 【 (void *)txmsg】); /* Send message toTask2*/ OSMboxPend(AckMbox, 0, err); txmsg++; if (txmsg == Z) { txmsg = A; } } } void Task5 (void *data) { char *rxmsg; INT8U err; data = data; for (;;) { rxmsg = 【(char *)】OSMboxPend(TxMbox, 0, err); PC_DispChar(70, 18, *rxmsg, DISP_FGND_YELLOW +DISP_BGND_BLUE); OSMboxPost(AckMbox, (void *)1); } } 27. 在Task1中使用消息队列OSQPend()函数接收消息“Hello World!”,而在Task2中使用消息队列OS

文档评论(0)

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

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

1亿VIP精品文档

相关文档