嵌入式实时操作系统UCOS原理及实践实验教程1_第1页
嵌入式实时操作系统UCOS原理及实践实验教程1_第2页
嵌入式实时操作系统UCOS原理及实践实验教程1_第3页
嵌入式实时操作系统UCOS原理及实践实验教程1_第4页
嵌入式实时操作系统UCOS原理及实践实验教程1_第5页
已阅读5页,还剩52页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、作者卢有亮作者卢有亮 图书图书PPT和全部代码下载和全部代码下载http:/ 作者卢有亮作者卢有亮 图书图书PPT和全部代码下载和全部代码下载http:/ 嵌入式实时操作系统嵌入式实时操作系统C/OSC/OS原原理与实践理与实践实验教程实验教程论坛论坛http:/ 实验参考书:嵌入式实时操作系统C/OS原理与实践2012 电子工业出版社 实验前需学习对应部分 实验中对得到的结论需进行分析并交报告,做到知其然而知其所以然 对VC开发环境部熟悉的同学在实验中逐步掌握实验列表第第1 1学时学时跑第一个任务跑第一个任务第第2 2学时学时调试模式跑第一个任务调试模式跑第一个任务第第3 3学时学时任务的创

2、建任务的创建第第4 4学时学时操作系统初始化操作系统初始化第第5 5学时学时让任务阻塞式延时让任务阻塞式延时第第6 6学时学时两个任务交替运行两个任务交替运行第第7 7学时学时理解任务堆栈和任务切换理解任务堆栈和任务切换第第8 8学时学时理解多任务的启动理解多任务的启动第第9 9学时学时任务的挂起和恢复任务的挂起和恢复第第1010学时学时 信号量管理实验信号量管理实验第第1111学时学时 互斥信号量管理实验互斥信号量管理实验第第1212学时学时 事件标志组管理实验事件标志组管理实验第第1313学时学时消息邮箱管理实验消息邮箱管理实验第第1414学时学时 消息队列管理实验消息队列管理实验第第15

3、15学时学时 内存管理实验内存管理实验第第1学时学时跑第一个任务跑第一个任务 本实验的目的是了解嵌入式实时操作系统COSCOS代码结构,将其跑起来得到直观的认识。 实验步骤实验步骤 1.将包含全部实验代码的压缩文件解压缩 2.将VC6开发环境打开 3.打开ucosexperiment目录下的ucos_vc.dsw 4.用全部编译(rebuild all)编译程序,运行程序,根据窗口提示输出,获得感性认识! 5.根据教材P246页图7.1及7.1.1和7.1.2的内容,写出文件目录结构的说明,说明嵌入式实时操作系统COSCOS都由哪些部分组成第第1学时学时跑第一个任务跑第一个任务 6.VC环境下

4、,在工程上点鼠标右键,查看工程的设计 7.打开main.c,编辑使#define Experiment 1,使用REBUILD ALL 进行编译,找到可执行文件的输出目录,记录下来 8.使用菜单或快捷按钮再次执行编译好的程序。查看运行结果并记录,查看main.c及usercode.c,分析main.c及usercode.c代码。 9.说明任务堆栈的定义位置,任务在什么时候被创建,任务在什么时候获得运行。 10.自己修改代码,减少延时时间,或将每次加1改为其他算法,查看效果!补充,各个例子的运行结果展示1准备工作 阅读嵌入式实时操作系统C/OS原理与实践P24-40 2.1任务管理的重要数据结构

5、,为以后的实验做准备第第2学时学时 调试模式跑第一个任务调试模式跑第一个任务 本实验的目的在于学会使用VC的调试模式运行和调试操作系统。 步骤 1.在上次实验的基础上不改动代码,打开工程 2.在usercode.c中的 printf(“welcome to embeded systemn”);处设置断点。第第2学时学时 调试模式跑第一个任务调试模式跑第一个任务 3.如果程序中有其他断点,去掉 4.在usercode.c中的 printf(“welcome to embeded systemn”);处设置断点。(设置断点,在代码处按右键,insert breakpoint) 5.按F5以调试模式

6、运行代码 6.如果有其他断点,去掉,再按F5 7.当到设定的断点处停下时,将VC窗口缩小,调整输出的窗口使两个窗口同时显示在屏幕上 8.按F10单步执行,查看输出 9. 发现在延时代码循环中无法调试,在printf(“j=%dn”,j+);加断点,按F5第第2学时学时 调试模式跑第一个任务调试模式跑第一个任务 10.在观察窗口watch window输入j, 连续按F5查看j的变化和屏幕的输出。 11.按SHIFT+F5或使用菜单结束调试,记录 12说明watch window的作用,尝试在watch window中输入操作系统的重要全局变量,P247表7.1,观察他们的值下次实验的准备工作

7、阅读嵌入式实时操作系统C/OS原理与实践P41-43任务控制块的初始化,P51-54任务的创建第第3学时学时 任务的创建任务的创建 掌握任务创建的过程 步骤 1. 去掉前面的断点,找到main.c中OSTaskCreate(FirstTask, 0, &TaskStk5TASK_STK_SIZE-1, 5);函数,设置断点,并按F5调试运行,运行代码的时候输入1,在运行到断点时,按F11追进函数内部,再按F10单步运行,与书上51页进行比较。 2。画出该函数运行完成后的就绪表和就绪组,任务控制块空闲链表和任务链表。第第3学时学时任务创建的过程任务创建的过程 3.记录所有过程,说明OST

8、askCreate都做了哪些工作,任务FirstTask的任务控制块实体是什么,在创建结束时其任务控制块的内容又是什么。记录下来。 4.试着自己编写一个带输出的简单的函数,然后使用OSTaskCreate创建这个函数,修改MAIN.c,在输入1的时候创建这个函数。自己编写的函数保存在usercode.c中,并注意在usercode.h中添加函数声明。修改完成后重新编译执行。下次实验的准备工作 阅读嵌入式实时操作系统C/OS原理与实践P44-50操作系统的初始化第第4学时学时 操作系统初始化操作系统初始化 步骤 1. 找到操作系统初始化函数OSInit,在其中设置断点,并按F5调试运行,观察OS

9、Init执行的过程,与书上44页2.3操作系统的初始化进行比较,记录OSINIT都做了什么工作 2。画出OSINIT后的就绪表和就绪组,任务控制块空闲链表和任务链表(参考书上2.1,2.2,2.3) 3.记录所有过程,说明OSINIT之后系统的状况下次实验的准备工作 阅读嵌入式实时操作系统C/OS原理与实践P95-97任务延时函数OSTimeDly第第5学时学时 让任务阻塞式延时让任务阻塞式延时掌握操作系统的初始化过程步骤1.不改动代码,输入参数1,全速运行,打开WINDOWS任务管理器,查看,如图第第5学时学时 让任务阻塞式延时让任务阻塞式延时 2.修改代码,使用阻塞式延时,查看书上95页3

10、.2.3,修改延时代码第第5学时学时 让任务阻塞式延时让任务阻塞式延时 3.重新编译,运行。使用任务管理器查看系统利用率。第第5学时学时 让任务阻塞式延时让任务阻塞式延时 4.记录实验过程,说明发生这种变化的原理。 下次实验前准备:继续看下次实验前准备:继续看2.1,加深对操作,加深对操作系统采用的重要数据结构的理解系统采用的重要数据结构的理解第第6学时学时两个任务交替运行两个任务交替运行 1.编译运行代码,输入选项2运行程序 2.运行查看结果第第6学时学时两个任务交替运行两个任务交替运行 3.查看代码,说明为什么得到这样的运行结果 4.修改usercode.c中E2_task2函数,要求其输

11、出值增长速度只有E2_task1的1/2,修改后重新编译运行 5.改变任务的优先级,让E2_task1的优先级为6, E2_task2的优先级为5,查看运行结果,说明输出的不同之处,说明原因补充,各个例子的运行结果展示2下次实验的准备 预习嵌入式实时操作系统C/OS原理与实践P73-80任务的调度为下次试验做准备第第7学时学时理解任务堆栈和任务切换理解任务堆栈和任务切换 1.使用原始代码 2.查看在main.c,说明两个用户任务的堆栈都是什么,堆栈的地址是怎么传递给任务创建函数的。 3.在OS_Sched函数中设置断点。跟踪调试,说明OS_Sched实现了哪些功能,画出流程图 4.继续调试OS

12、_TASK_SW,根据书章2.1中对堆栈的描述,论述压栈和退栈的处理过程。下次实验的准备 预习嵌入式实时操作系统C/OS原理与实践P83-84多任务的启动为下次试验做准备第第8学时学时理解多任务的启动理解多任务的启动 1.使用原始代码 2.查看在main.c,在OSStart();处设置断点。 3.调试模式运行,跟踪进OSStart,然后单步运行。参考P83-85分析代码。 5.画出OSStart流程图 4.说明OSStart的功能,说明多任务启动的标志是什么下次实验的准备工作 阅读嵌入式实时操作系统C/OS原理与实践P67-72任务的挂起和恢复第第9学时学时任务的挂起和恢复任务的挂起和恢复

13、1.编译运行代码,输入选项3继续运行程序 2.运行查看结果第第9学时学时 任务的挂起和恢复任务的挂起和恢复 3.查看代码,说明为什么得到这样的运行结果 4.对任务代码进行修改,得到不同的结果 5.改变任务的优先级,查看运行结果,说明输出的不同之处,说明原因补充,各个例子的运行结果展示3下次实验的准备工作 阅读嵌入式实时操作系统C/OS原理与实践P102-129 事件管理的重要数据结构,事件管理程序,信号量管理第第10学时学时 信号量管理实验信号量管理实验 1.例子程序说明见嵌入式实时操作系统C/OS原理与实践 P129,运行结果见P133图4.9 打开原始工程运行代码,输入选项4继续运行程序

14、2.运行查看结果 3.说明使用信号量实现的功能,为什么能实现这样的功能,都使用了哪些数据结构。第第10学时学时 信号量管理实验信号量管理实验 4.实现P190,习题6(在usercode.c中编写三个函数,并修改usercode.h中的声明,修改main.c,重新编译查看效果)补充,各个例子的运行结果展示4下次实验的准备工作 阅读嵌入式实时操作系统C/OS原理与实践P134-158 4.4互斥信号量第第11学时学时 互斥信号量管理实验互斥信号量管理实验 1.例子程序说明见嵌入式实时操作系统C/OS原理与实践 P154,运行结果见P159图4.14 2. 程序运行后,输入5选择例子程序5 3.重

15、新编译运行,查看结果 4.说明使用互斥信号量实现的功能,为什么能实现这样的功能,都使用了哪些数据结构。 5.说明为什么解决了优先级反转的问题第第11学时学时 互斥信号量管理实验互斥信号量管理实验 5.自己设计一个使用时间标志组的例子,编程实现并运行,记录结果。补充,各个例子的运行结果展示5下次实验的准备工作 阅读嵌入式实时操作系统C/OS原理与实践P159-189 4.5事件标志组第第12学时学时 事件标志组管理实验事件标志组管理实验 1.例子程序说明见嵌入式实时操作系统C/OS原理与实践 P184,运行结果见P159图4.20 2. 程序运行后,输入6选择例子程序6 3.重新编译运行,查看结

16、果 4.说明使用事件标志组实现的功能,为什么能实现这样的功能,都使用了哪些数据结构。第第12学时学时 事件标志组管理实验事件标志组管理实验 5.实现P190,习题7(在usercode.c中编写三个函数,并修改usercode.h中的声明,修改main.c,重新编译查看效果)补充,各个例子的运行结果展示6下次实验的准备工作 阅读嵌入式实时操作系统C/OS原理与实践P191-210 5.1消息邮箱第第13学时学时 消息邮箱管理实验消息邮箱管理实验 1.例子程序说明见嵌入式实时操作系统C/OS原理与实践 P208,运行结果见P210图5.7 2. 程序运行后,输入7选择例子程序7 3.重新编译运行

17、,查看结果 4.说明使用消息邮箱实现的功能,为什么能实现这样的功能,都使用了哪些数据结构。第第13学时学时 消息邮箱管理实验消息邮箱管理实验 5.实现P230,习题7(在usercode.c中编写三个函数,并修改usercode.h中的声明,修改main.c,重新编译查看效果)补充,各个例子的运行结果展示7下次实验的准备工作 阅读嵌入式实时操作系统C/OS原理与实践P2111-229 5.2消息队列第第14学时学时 消息队列管理实验消息队列管理实验 1.例子程序说明见嵌入式实时操作系统C/OS原理与实践 P226,运行结果见P229图5.12 2. 程序运行后,输入8选择例子程序8 3.重新编译运行,查看结果 4.说明使用消息队列实现的功能,为什么能实现这样的功能,都使用了哪些数据结构。第第14次实验次实验 消息队列管理实验消息队列管理实验 5.实现P230,习题8(在usercode.c中编写三个函数,并修改usercode.h中的声明,修改main.c,重新编译查看效果)补充,各个例子的运行结果展示8下次实验的准备

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论