嵌入式实时操作系统μCOS原理与实践实验教程.ppt

上传人:小飞机 文档编号:6414937 上传时间:2023-10-28 格式:PPT 页数:58 大小:541KB
返回 下载 相关 举报
嵌入式实时操作系统μCOS原理与实践实验教程.ppt_第1页
第1页 / 共58页
嵌入式实时操作系统μCOS原理与实践实验教程.ppt_第2页
第2页 / 共58页
嵌入式实时操作系统μCOS原理与实践实验教程.ppt_第3页
第3页 / 共58页
嵌入式实时操作系统μCOS原理与实践实验教程.ppt_第4页
第4页 / 共58页
嵌入式实时操作系统μCOS原理与实践实验教程.ppt_第5页
第5页 / 共58页
点击查看更多>>
资源描述

《嵌入式实时操作系统μCOS原理与实践实验教程.ppt》由会员分享,可在线阅读,更多相关《嵌入式实时操作系统μCOS原理与实践实验教程.ppt(58页珍藏版)》请在三一办公上搜索。

1、嵌入式实时操作系统C/OS原理与实践实验教程,在网上观看视频卢有亮博客:亮点嵌入式提供COS硬件平台:图书和硬件平台购买地址,:,2013年补充说明,2012年本书出版后,受到读者的厚爱,不胜感谢。但是自己还是有很多做的不完美的地方,抱歉!不少朋友反映该书讲解代码比较详细,但是移植部分不太好,没有硬件平台。而机械工业出版社又邀请本人写一本新书,因此,本人根据现在搞STM32的比较多的情况,做了这么一个平台,正在写基于STM32及C/OS 的嵌入式系统设计,希望能对大家有用。这个平台的代码我都在博客和爱板http:/(左上图可链接)发布,是开源的,起名叫亮点嵌入式!鄙人做的STM32开源板在淘宝

2、网http:/(右下图可链接)。这本书我也在淘宝卖,由当当直接发货。有什么问题都可以去博客或爱板留言交流,必复!我还承诺,2013年免费提供信号量和消息部分的视频!,实验前言,实验参考书:嵌入式实时操作系统C/OS原理与实践2012 电子工业出版社实验前需学习对应部分实验中对得到的结论需进行分析并交报告,做到知其然而知其所以然对VC开发环境部熟悉的同学在实验中逐步掌握所有资料请在博客下载,实验列表,第1学时跑第一个任务第2学时调试模式跑第一个任务第3学时任务的创建第4学时操作系统初始化第5学时让任务阻塞式延时第6学时两个任务交替运行第7学时理解任务堆栈和任务切换第8学时理解多任务的启动第9学时

3、任务的挂起和恢复第10学时 信号量管理实验第11学时 互斥信号量管理实验第12学时 事件标志组管理实验第13学时消息邮箱管理实验第14学时 消息队列管理实验第15学时 内存管理实验,第1学时跑第一个任务,本实验的目的是了解嵌入式实时操作系统COS代码结构,将其跑起来得到直观的认识。实验步骤1.将包含全部实验代码的压缩文件解压缩2.将VC6开发环境打开3.打开ucosexperiment目录下的ucos_vc.dsw 4.用全部编译(rebuild all)编译程序,运行程序,根据窗口提示输出,获得感性认识!5.根据教材P246页图7.1及和的内容,写出文件目录结构的说明,说明嵌入式实时操作系统

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

5、OS原理与实践P24-40 2.1任务管理的重要数据结构,为以后的实验做准备,第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.如果有其他断点,去掉,再按F57.当到设定的断点处停下时,将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,观察他们的值,下次实验的准备工作,阅读嵌入式实时操作系统C/OS原理与实践P4

7、1-43任务控制块的初始化,P51-54任务的创建,第3学时 任务的创建,掌握任务创建的过程步骤1.去掉前面的断点,找到main.c中OSTaskCreate(FirstTask,0,函数,设置断点,并按F5调试运行,运行代码的时候输入1,在运行到断点时,按F11追进函数内部,再按F10单步运行,与书上51页进行比较。2。画出该函数运行完成后的就绪表和就绪组,任务控制块空闲链表和任务链表。,第3学时任务创建的过程,3.记录所有过程,说明OSTaskCreate都做了哪些工作,任务FirstTask的任务控制块实体是什么,在创建结束时其任务控制块的内容又是什么。记录下来。4.试着自己编写一个带输

8、出的简单的函数,然后使用OSTaskCreate创建这个函数,修改MAIN.c,在输入1的时候创建这个函数。自己编写的函数保存在usercode.c中,并注意在usercode.h中添加函数声明。修改完成后重新编译执行。,下次实验的准备工作,阅读嵌入式实时操作系统C/OS原理与实践P44-50操作系统的初始化,第4学时 操作系统初始化,步骤1.找到操作系统初始化函数OSInit,在其中设置断点,并按F5调试运行,观察OSInit执行的过程,与书上44页2.3操作系统的初始化进行比较,记录OSINIT都做了什么工作2。画出OSINIT后的就绪表和就绪组,任务控制块空闲链表和任务链表(参考书上2.

9、1,2.2,2.3)3.记录所有过程,说明OSINIT之后系统的状况,下次实验的准备工作,阅读嵌入式实时操作系统C/OS原理与实践P95-97任务延时函数OSTimeDly,第5学时 让任务阻塞式延时,掌握操作系统的初始化过程步骤1.不改动代码,输入参数1,全速运行,打开WINDOWS任务管理器,查看,如图,注意,Os_cpu.c中,确定void OSTaskIdleHook(void)Sleep(1);要改成这样,否则空闲任务也在不同的运行,看不到系统利用率的变化情况。加上这一句,将空闲任务的系统利用率降低,第5学时 让任务阻塞式延时,2.修改代码,使用阻塞式延时,查看书上95页,修改延时代

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

11、不同之处,说明原因,补充,各个例子的运行结果展示2,下次实验的准备,预习嵌入式实时操作系统C/OS原理与实践P73-80任务的调度为下次试验做准备,第7学时理解任务堆栈和任务切换,1.使用原始代码2.查看在main.c,说明两个用户任务的堆栈都是什么,堆栈的地址是怎么传递给任务创建函数的。3.在OS_Sched函数中设置断点。跟踪调试,说明OS_Sched实现了哪些功能,画出流程图4.继续调试OS_TASK_SW,根据书章2.1中对堆栈的描述,论述压栈和退栈的处理过程。,下次实验的准备,预习嵌入式实时操作系统C/OS原理与实践P83-84多任务的启动为下次试验做准备,第8学时理解多任务的启动,

12、1.使用原始代码2.查看在main.c,在OSStart();处设置断点。3.调试模式运行,跟踪进OSStart,然后单步运行。参考P83-85分析代码。5.画出OSStart流程图4.说明OSStart的功能,说明多任务启动的标志是什么,下次实验的准备工作,阅读嵌入式实时操作系统C/OS原理与实践P67-72任务的挂起和恢复,第9学时任务的挂起和恢复,1.编译运行代码,输入选项3继续运行程序2.运行查看结果,第9学时任务的挂起和恢复,3.查看代码,说明为什么得到这样的运行结果4.对任务代码进行修改,得到不同的结果5.改变任务的优先级,查看运行结果,说明输出的不同之处,说明原因,补充,各个例子

13、的运行结果展示3,下次实验的准备工作,阅读嵌入式实时操作系统C/OS原理与实践P102-129事件管理的重要数据结构,事件管理程序,信号量管理,第10学时 信号量管理实验,1.例子程序说明见嵌入式实时操作系统C/OS原理与实践 P129,运行结果见P133图4.9 打开原始工程运行代码,输入选项4继续运行程序2.运行查看结果3.说明使用信号量实现的功能,为什么能实现这样的功能,都使用了哪些数据结构。,第10学时 信号量管理实验,4.实现P190,习题6(在usercode.c中编写三个函数,并修改usercode.h中的声明,修改main.c,重新编译查看效果),补充,各个例子的运行结果展示4

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

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

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

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

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号