2013122699李健伟嵌入式操作系统2概要1.docxVIP

2013122699李健伟嵌入式操作系统2概要1.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2013122699李健伟嵌入式操作系统2概要1

淮海工学院计算工程学院 实验报告书 课 程 名: 嵌入式操作系统 题 目:实验二 任务的基本管理 班 级: 计算机131班 学 号: 2013122699 姓 名: 李健伟 评语: 成绩: 指导教师: 批阅时间: 年 月 日 实验目的 理解任务管理的基本原理,了解任务的各个基本状态及其变迁过程; 掌握uC/OS-II 中任务管理的基本方法(创建、启动、挂起、解挂任务); 熟练使用uC/OS-II 任务管理的基本系统调用。 二、实验内容 为了展现任务的各种基本状态及其变迁过程,本实验设计了Task0、Task1 两个任务:任务Task0 不断地挂起自己,再被任务Task1 解挂,两个任务不断地切换执行(Task0为高优先级,Task1为低优先级)。通过本实验,读者可以清晰地了解到任务在各个时刻的状态以及状态变迁的原因。 实验步骤 整个应用的运行流程,其描述如下: (1)系统经历一系列的初始化过程后进入boot_card()函数,在其中调用ucBsp_init()进行板级初始化后,调用main()函数; (2)main()函数调用OSInit()函数对uC/OS-II 内核进行初始化,调用OSTaskCreate 创建起始任务TaskStart; (3)main()函数调用函数OSStart()启动uC/OS-II 内核的运行,开始多任务的调度,执行当前优先级最高的就绪任务TaskStart; (4)TaskStart 完成如下工作: a、安装时钟中断并初始化时钟,创建2 个应用任务; b、挂起自己(不再被其它任务唤醒),系统切换到当前优先级最高的就绪任务Task0。 之后整个系统的运行流程如下: _ t1 时刻,Task0 开始执行,它运行到t2 时刻挂起自己; _ t2 时刻,系统调度处于就绪状态的优先级最高任务Task1 执行,它在t3 时刻唤醒Task0,后者由于优先级较高而抢占CPU; _ Task0 执行到t4 时刻又挂起自己,内核调度Task1 执行; _ Task1 运行至t5 时刻再度唤醒Task0; _ …… 实验结果 思考题 将Task0设置为低优先级,Task1设置为高优先级;完成先执行Task0,再执行Task1,进而交替执行的操作。 主要代码: /******************** 引用部分 ******************************/ #include includes.h /******************** 定义部分 ******************************/ #define TASK_STK_SIZE 512 // Size of each tasks stacks (# of WORDs) #define N_TASKS 2 // Number of identical tasks #define TASK_START_ID 0 // Application tasks IDs #define TASK_START_PRIO 10 // Application tasks priorities #define TASK_1_PRIO 12 #define TASK_2_PRIO 13 OS_STK TaskStk[N_TASKS][TASK_STK_SIZE]; // Tasks stacks OS_STK TaskStartStk[TASK_STK_SIZE]; // TaskStart task stack INT8U TaskData[N_TASKS]; // Parameters to pass to each task INT32U count=0; // Initialize count /************************ 声明部分 **************************/ static void Task0(void *pdata); // Function prototypes of tasks static void Task1(void *pdata); static void TaskStart(void *pdata); //

文档评论(0)

yaocen + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档