实时操作系统实验报告.doc

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

实时操作系统实验报告 专业: 通信工程 学号: 姓名: 指导老师: 申 屠 浩 实验一 任务编程实验 实验目的: 理解任务管理的基本原理,了解任务的各个基本状态及其变迁过程; 掌握μC/OS-II系统的编程方法,包括main函数的书写方法,任务组成、创建、启动和时间函数,主要包括: OSInit; OSStart; OSTaskCreate; PC_DispStr; PC_GetKey; OSTimeDlyHMSM; OSTimeDly; OSTimeGet等。 实验要求与思路: 设计一个任务,利用OSTimeGet(或PC_GetDateTime)实现时间的获取,同时利用PC_DispStr实现时间的显示,同时需要编写一个启动任务实现对时间任务的启动。 实验截图: 实验感想: 此次实验,我对于任务管理的基本原理有了相应的了解跟掌握,观察了解了任务的各个基本状态及其变迁过程;基本掌握了μC/OS-II系统的编程方法,包括main函数的书写方法,任务组成、创建、启动和时间函数;对于μC/OS-II系统的编程有进行了初步认识与掌握。 实验二 任务管理实验 实验目的: 理解任务管理的基本原理,了解任务的各个基本状态及其变迁过程; 掌握μC/OS-II中任务管理的基本方法(挂起、解挂); 熟练使用μC/OS-II任务管理的基本系统调用。 实验要求与思路: 为了体现任务的各个基本状态及其变迁过程,本实验设计了T0、T1和T3三个任务,它们交替运行,如图2-2所示。 T0 T1 T2 T3 T4 T5 T6 T7 T8 图2-2 注意: 图中的栅格并不代表严格的时间刻度,而仅仅表现各任务启动和执行的相对先后关系。 说明: 在系统完成初始化后,可以先创建并启动优先级最低的TaskStart,由它创建其他3个应用任务T0、T1和T2,之后整个系统的运行流程如下: 1) 优先级最高的T0开始执行,之后T0挂起自己; 2) 然后系统调度选中T1开始执行,之后T1挂起自己; 3) 接着系统调度选中T2,之后唤醒T0; 4) 如此循环 实验程序: #include includes.h #define TASK_STK_SIZE 512 #define TASK_START_PRIO 2 #define TASK_1_PRIO 4 #define TASK_2_PRIO 5 #define TASK_3_PRIO 6 #define TASK_4_PRIO 7 #define TASK_5_PRIO 8 #define TASK_6_PRIO 9 OS_STK TaskStartStk[TASK_STK_SIZE]; OS_STK Task1Stk[TASK_STK_SIZE]; OS_STK Task2Stk[TASK_STK_SIZE]; OS_STK Task3Stk[TASK_STK_SIZE]; OS_STK Task4Stk[TASK_STK_SIZE]; OS_STK Task5Stk[TASK_STK_SIZE]; OS_STK Task6Stk[TASK_STK_SIZE]; void TaskStart(void *pdata); void Task1(void *pdata); void Task2(void *pdata); void Task3(void *pdata); void Task4(void *pdata); void Task5(void *pdata); void Task6(void *pdata); void TaskStartDispInit (void); void main(void) { OSInit(); PC_DOSSaveReturn(); PC_VectSet(uCOS,OSCtxSw); OSTaskCreate(TaskStart,0,TaskStartStk[TASK_STK_SIZE-1],TASK_START_PRIO); OSStart(); } void TaskStart(void *pdata) { INT16S key=0; INT8U err; pdata=pdata; TaskStartDispInit(); OS_ENTER_CRITICAL(); PC_VectSet(0x08,OSTickISR); PC_SetTickRate(OS_TICKS_PER_SEC); OS_EXIT_CRITICAL(); OSStatIni

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档