ucos复习题目

更新时间:2024-04-03 05:47:02 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

1. 在μC/OS-Ⅱ系统中,下面哪个不能用来实现任务间通信( )。 A. Sem B. Mbox C. Mutex D. Mem

2. OSFlagPost(FlagPtr,9,OS_FLAG_CLR,&err)实现的功能是( )

B. 等待事件标志组FlagPtr中第0、3位,当都为1时,使任务进入就绪。 C.对事件标志组FlagPtr发送信号,将第0、3位置1 D.对事件标志组FlagPtr发送信号,将第0、3位清0 3.RTOS的中文解释为 。

4. μC/OS-Ⅱ的特点包括源代码公开、 、 可剥夺等。

5. OSInit()函数的功能是: 。

6. 任务的组成包括任务代码、 和 。 7.优先级为2、6、14、18、21、22的任务处在就绪态,那么OSRdyGrp、OSRdyTbl[1]和OSRdyTbl[2]的值分别为 。 8. μC/OS-Ⅱ调度的思想是: 。 9.OSMemGet()函数实现的功能是: 。 10. OSMemPut()函数用来从已经建立的内存分区中申请一个内存块。 ( ) 11. OSSemCreate()函数用来创建一个消息邮箱事件。 ( ) 12.在?C/OS–Ⅱ系统中,任务可以返回。 ( ) 13.在?C/OS–Ⅱ系统中,任务的返回类型必须定义成char型。 ( ) 14.?C/OS–Ⅱ系统中,OS_SEM.C是消息邮箱管理文件,提供相关服务。 ( ) 15.时钟节拍器开启的正确位置可以是 。 16.OSSemPend(p,0,&err)

OSSemPend(p,300,&err)

别: 。

17.请用ucos的延时函数实现3秒的延时: 。

18. 用信号量标识某个事件的发生,在创建信号量时,应赋与的计数初值为 。

19. 什么是优先级反转?μC/OS-Ⅱ是如何解决优先级反转的? 20. 什么是临界区?μC/OS-Ⅱ如何保护临界区代码?

21.分别描述信号量、互斥信号量、消息邮箱、消息队列、事件标志组的应用场合。

22. void TaskStartCreateTasks (void) {

A. 等待事件标志组FlagPtr中第0、3位,当都为0时,使任务进入就绪。

INT8U i;

for (i = 0; i < N_TASKS; i++)

TaskData[i] = i;

{

OSTaskCreate(Task0, (void *)&TaskData[0], &TaskStk[0][TASK_STK_SIZE - 1], 5); {

INT8U i; INT8U err; for (;;) {

printf(\

}

void Task0 (void *pdata)

i=*(int *)pdata;

……}

请问屏幕输出 。

23. μC/OS-Ⅱ移植的具体过程包括几个部分? 24.描述任务的组成以及每个部分的功能 25. 程序填空题:

设计一个μC/OS-Ⅱ应用程序,该程序有两个任务SendTask和ReceiveTask,在任务SendTask中用一个变量Times记录任务SendTask的运行次数,并将其作为消息用邮箱Str_Mbox发给任务ReceiveTask且由ReceiveTask显示出来。(假定硬件初始化函数为UCOS_CPU_INIT();开启时钟中断函数为UCOS_TIMER_START(),请填空把程序补充完整)

int *s; INT8U err; INT32U Times=0; #define TASK_STK_SIZE 512

OS_STK SendTaskStk[TASK_STK_SIZE];

; //定义ReceiveTask任务堆栈区 ; //定义邮箱事件 void SendTask(void *data); void ReceiveTask(void *data);

void main (void) {

OSInit( );

UCOS_CPU_INIT();

; //创建邮箱

; //创建SendTask任务 ; //创建ReceiveTask任务

OSStart( ); }

void SendTask (void *pdata) {

UCOS_TIMER_START(); for (;;)

{ ; //计算运行次数

*s=Times;

;

//发送消息

; //等待100个时钟节拍 }

} void ReceiveTask (void *pdata) { int *ss;

pdata = pdata; for (;;) { }

26. 编写基于μC/OS-Ⅱ的应用程序,实现功能如下:创建三个任务:Task0、Task1、Task2

Task0产生一个信号A(必须是输出5次‘A’字符后); Task1产生一个信号B(必须是输出5次‘B’字符后); ;

printf(\ %d\\n\

; //等待1秒

//接收邮箱消息

}

Task2 显示字符‘C’,但是运行的条件是A、B两个信号都有效,在得到期望的标志位后,恢复相应的标志位。

本文来源:https://www.bwwdw.com/article/8hfr.html

Top