ucosII实验资料报告材料

上传人:s9****2 文档编号:557147381 上传时间:2022-09-07 格式:DOC 页数:66 大小:575.50KB
返回 下载 相关 举报
ucosII实验资料报告材料_第1页
第1页 / 共66页
ucosII实验资料报告材料_第2页
第2页 / 共66页
ucosII实验资料报告材料_第3页
第3页 / 共66页
ucosII实验资料报告材料_第4页
第4页 / 共66页
ucosII实验资料报告材料_第5页
第5页 / 共66页
点击查看更多>>
资源描述

《ucosII实验资料报告材料》由会员分享,可在线阅读,更多相关《ucosII实验资料报告材料(66页珍藏版)》请在金锄头文库上搜索。

1、word实验1任务的创建、删除、挂起、恢复实验学时: 2 实验地点: 二综x203 实验日期: 2013/12/13 一、实验目的1实验环境的建立2任务的接口函数的应用二、实验容1设计一个只有一个任务Task1,当程序运行后任务的工作就是每秒在显示器上显示一个字符“M。2 在任务Task1中在创建一个任务Task2 。当程序运行后,任务Task1的工作在显示器上显示一个字符“M;Task2 如此是在显示器上显示字符 “Y。3. 要求任务Task2运行20次后,挂起任务Task1;任务Task2运行40次后,恢复任务Task1。4. 当任务Task1运行5次时,用函数OSSchedLock()对

2、调度器进展加锁;而当任务Task1运行到第10次时,再用函数OSSchedUnlock()对调度器进展解锁,并运行该程序。 5. 使任务Task1能删除任务Task2。 三、实验方法包括实验方法、原理、技术、方案等。四、实验步骤1将BC45文件夹拷贝到C分区根目录下。2将software文件夹拷贝到任意分区根目录下。3. 分别完成实验1、2、3、4、5五、实验结果1. DOS窗口每秒显示一个字符“M。每行显示10个“M字符,行与行的间隔是一行。按ESC键程序退出2. DOS窗口交替显示字符M和“Y,每隔一秒显示一次。每行显示10个字符,行与行之间的间隔是一行。按ESC键程序退出3. DOS窗口

3、开始交替显示字符M和“Y,显示20次以后,Task1挂起,只显示“Y,当Task2运行40次以后,Task1恢复,然后开始Task1,Task2交替运行。4. DOS窗口开始交题显示字符M和“Y,显示5次以后,Task1将任务调度器上锁,此时只有“M打印,当Task1运行10次后,Task1,Task2开始交替运行。5. DOS窗口开始交替显示字符“M和“Y,显示10次后,只显示“Y六、实验结论对实验数据和结果进展分析描述,给出实验取得的成果和结论。1.程序:/* Exercise 2 - 1 * author: csu chenan* time: 2013 - 12 - 12*/#inclu

4、de includes.h#define TASK_STK_SIZE 256 OS_STK MyTaskStkTASK_STK_SIZE; INT16S key;INT8U x = 0, y = 0;void MyTask(void *pdata)#if OS_CRITICAL_METHOD = 3OS_CPU_SR cpu_sr;#endifpdata = pdata;OS_ENTER_CRITICAL();PC_VectSet(0X08, OSTickISR);PC_SetTickRate(OS_TICKS_PER_SEC);OS_EXIT_CRITICAL();OSStatInit();

5、for(;)if(x 10)x = 0;y = y + 2;PC_DispChar(x, y, *(char*)pdata,DISP_BGND_BLACK + DISP_FGND_WHITE);x = x + 1;if(PC_GetKey(&key) = 1)if(key = 0x1B)PC_DOSReturn();OSTimeDlyHMSM(0,0,1,0);void main(void)char * ch = M;OSInit();PC_DOSSaveReturn();PC_VectSet(uCOS, OSCtxSw);PC_DispClrScr(DISP_FGND_WHITE + DIS

6、P_BGND_BLACK);OSTaskCreate(MyTask, ch, &MyTaskStkTASK_STK_SIZE-1, 0);OSStart();2.程序源代码:/* Exercise 2 - 2* author: csu chenan* time: 2013 - 12 - 13*/#include includes.h#define My_TASK1_STK_SIZE 256 #define My_TASK2_STK_SIZE 256OS_STK MyTask1StkMy_TASK1_STK_SIZE;OS_STK MyTask2StkMy_TASK2_STK_SIZE;INT1

7、6S key;INT8U x = 0, y = 0;void MyTask2(void *pdata)#if OS_CRITICAL_METHOD = 3OS_CPU_SR cpu_sr;#endifpdata = pdata;OS_ENTER_CRITICAL();PC_VectSet(0x80, OSTickISR);PC_SetTickRate(OS_TICKS_PER_SEC);OS_EXIT_CRITICAL();for(;)if(x 10)x = 0;y = y + 2;PC_DispChar(x, y, *(char*)pdata, DISP_BGND_BLACK + DISP_

8、FGND_WHITE);x = x + 1;if(PC_GetKey(&key) = 1)if(key = 0x1B)PC_DOSReturn();OSTimeDlyHMSM(0,0,1,0);void MyTask1(void *pdata)#if OS_CRITICAL_METHOD = 3OS_CPU_SR cpu_sr;#endifchar *ch = Y;pdata = pdata;OS_ENTER_CRITICAL();PC_VectSet(0X08, OSTickISR);PC_SetTickRate(OS_TICKS_PER_SEC);OS_EXIT_CRITICAL();OS

9、StatInit();OSTaskCreate(MyTask2, ch, &MyTask2StkMy_TASK2_STK_SIZE - 1, 1);for(;)if(x 10)x = 0;y = y + 2;PC_DispChar(x, y, *(char*)pdata, DISP_BGND_BLACK + DISP_FGND_WHITE);x = x + 1;if(PC_GetKey(&key) = 1)if(key = 0x1B)PC_DOSReturn();OSTimeDlyHMSM(0,0,1,0);void main(void)char * ch = M;OSInit();PC_DO

10、SSaveReturn();PC_VectSet(uCOS, OSCtxSw);PC_DispClrScr(DISP_FGND_WHITE + DISP_BGND_BLACK);OSTaskCreate(MyTask1, ch, &MyTask1StkMy_TASK1_STK_SIZE-1, 0);OSStart();3.程序:/* Exercise 2 - 3* author: csu chenan* time: 2013 - 12 - 13*/#include includes.h#define My_TASK1_STK_SIZE 256 #define My_TASK2_STK_SIZE

11、 256OS_STK MyTask1StkMy_TASK1_STK_SIZE;OS_STK MyTask2StkMy_TASK2_STK_SIZE;INT16S key;INT8U x = 0, y = 0;INT16U t = 0;void MyTask2(void *pdata)#if OS_CRITICAL_METHOD = 3OS_CPU_SR cpu_sr;#endifpdata = pdata;for(;) t += 1;if(t = 20) OSTaskSuspend(0);if(t = 40) OSTaskResume(0);if(x 10)x = 0;y = y + 2;PC

12、_DispChar(x, y, *(char*)pdata, DISP_BGND_BLACK + DISP_FGND_WHITE);x = x + 1;if(PC_GetKey(&key) = 1)if(key = 0x1B)PC_DOSReturn();OSTimeDlyHMSM(0,0,1,0);void MyTask1(void *pdata) char * ch2 = Y;#if OS_CRITICAL_METHOD = 3OS_CPU_SR cpu_sr;#endifpdata = pdata;OS_ENTER_CRITICAL();PC_VectSet(0X08, OSTickIS

13、R);PC_SetTickRate(OS_TICKS_PER_SEC);OS_EXIT_CRITICAL();OSStatInit();OSTaskCreate(MyTask2, ch2, &MyTask2StkMy_TASK2_STK_SIZE-1, 1);for(;)if(x 10)x = 0;y = y + 2;PC_DispChar(x, y, *(char*)pdata, DISP_BGND_BLACK + DISP_FGND_WHITE);x = x + 1;if(PC_GetKey(&key) = 1)if(key = 0x1B)PC_DOSReturn();t +;OSTimeDlyHMSM(0,0,1,0);void main(void)char * ch = M;

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号