嵌入式实时操作系统UCOS原理与实践分析和学习指导
- 格式:pdf
- 大小:1.17 MB
- 文档页数:11
嵌入式操作系统实验报告系别:班级:学号:姓名:2013.12实验一嵌入式开发环境的建立一、实验目的通过此实验系统,读者可以了解嵌入式实时操作系统uC/OS-II 的内核机制和运行原理。
本实验系统展示了uC/OS-II 各方面的管理功能,包括信号量、队列、内存、时钟等。
在各个实验中具体介绍了uC/OS-II 的相关函数。
读者在做实验的同时能够结合理论知识加以分析,了解各个函数的作用和嵌入式应用程序的设计方法,最终对整个uC/OS-II 和嵌入式操作系统的应用有较为清楚的认识。
二、实验步骤1. 安装集成开发环境LambdaEDU集成开发环境LambdaEDU 的安装文件夹为 LambdaEDU ,其中有一个名为“Setup.exe”的文件,直接双击该文件便可启动安装过程。
具体的安装指导请看“LambdaEDU 安装手册.doc”文件。
当 LambdaEDU 安装完毕之后,我们看到的是一个空的界面,现在就开始一步一步地将我们的实验项目建立并运行起来。
2. 建立项目为了我们的实验运行起来,需要建立1 个项目基于x86 虚拟机的标准应用项目。
通过点击“文件”、“新建”、“项目”开始根据向导创建一个项目。
在随后出现的对话框中选择“Tool/标准应用项目”,点击下一步,开始创建一个标准的可执行的应用程序项目。
在随后出现的对话框中填入项目名称“ucos_x86_demo”。
点击“下一步”。
选择“pc386 uC/OS-II 应用(x86)”作为该项目的应用框架。
点击“下一步”选择“pc386_elf_tra_debug”作为该项目的基本配置。
点击“完成”。
新创建的项目“ucos_x86_demo”将会被添加到项目列表。
src 文件夹下保存了该项目中包含的源文件。
ucos2 文件夹中包含了移植到x86 虚拟机的全部代码。
init.c 文件是基于ucos2和本虚拟机的一个应用程序。
在进行ucos2 内核实验中,只需要替换init.c 文件,即可。
嵌入式实时操作系统UC教案嵌入式实时操作系统UC/OS-II原理及应用第1章嵌入式实时操作系统的基本概念1.1 计算机操作系统1.1.1 什么是计算机操作系统1、计算机体系构架2、操作系统的作用:1)对计算机系统的主要资源进行管理;2)向计算机用户提供相关服务;3)隐藏计算机硬件,为应用程序提供透明的操作环境。
1.1.2 操作系统的作用和功能1、操作系统的作用为应用程序提供一个界面友好,性能稳定、安全,效率高,操作方便的虚拟计算机2、操作系统的功能1)处理器管理2)存储管理3)设备管理4)文件管理5)网络和通信管理6)提供用户接口1.2 嵌入式系统和嵌入式操作系统1.2.1 嵌入式系统的基本概念1、什么是嵌入式系统2、嵌入式系统的发展历程微型计算机→单板机→单片机→单片系统3、嵌入式系统的特点1)专用性强2)可裁剪性好3)实时性与可靠性好4)功耗低1.2.2 嵌入式操作系统1、什么是嵌入式操作系统运行在嵌入式硬件平台上,对整个系统及其所操作的部件、装置等资源进行统一协调、指挥和控制的系统软件2、嵌入式操作系统的特点1)微型化2)可裁剪性3)实时性4)高可靠性5)易移植性3、实时操作系统能及时响应外部事件的请求,并能及时控制所有实时设备与实时任务协调运行,且能在一个规定的时间内完成对事件的处理,这种操作系统称为实时操作系统。
4、实时操作系统的基本要求1)实时系统的计算必须产生正确的结果。
(逻辑或功能正确)Logical or Function Correctness)2)实时系统的计算必须在预定的时间内完成。
(时间正确)Timing Correctness5、实时操作系统的分类1)硬实时操作系统(极严格的时间内完成实时任务)2)软实时操作系统(系统完成实时任务的截止时间要求不十分严格)1.2.3 实时操作系统需要满足的条件1、实时操作系统应满足的条件1)必须是多任务操作系统2)任务的切换时间与系统中的任务数无关3)中断延迟的时间可预知并尽可能短1.2.4 嵌入式系统的任务及嵌入实时操作系统1、嵌入式系统的任务由于嵌入式系统所完成的是对一个装置或设备的控制任务,任务的功能相对固定,因此在一般情况下嵌入式实时操作系统所支持的典型任务应该是一个无限循环结构。
嵌入式实时操作系统UC/OS-II原理及应用第1章嵌入式实时操作系统的基本概念1.1 计算机操作系统1.1.1 什么是计算机操作系统1、计算机体系构架2、操作系统的作用:1)对计算机系统的主要资源进行管理;2)向计算机用户提供相关服务;3)隐藏计算机硬件,为应用程序提供透明的操作环境。
1.1.2 操作系统的作用和功能1、操作系统的作用为应用程序提供一个界面友好,性能稳定、安全,效率高,操作方便的虚拟计算机2、操作系统的功能1)处理器管理2)存储管理3)设备管理4)文件管理5)网络和通信管理6)提供用户接口1.2 嵌入式系统和嵌入式操作系统1.2.1 嵌入式系统的基本概念1、什么是嵌入式系统2、嵌入式系统的发展历程微型计算机→单板机→单片机→单片系统3、嵌入式系统的特点1)专用性强2)可裁剪性好3)实时性与可靠性好4)功耗低1.2.2 嵌入式操作系统1、什么是嵌入式操作系统运行在嵌入式硬件平台上,对整个系统及其所操作的部件、装置等资源进行统一协调、指挥和控制的系统软件2、嵌入式操作系统的特点1)微型化2)可裁剪性3)实时性4)高可靠性5)易移植性3、实时操作系统能及时响应外部事件的请求,并能及时控制所有实时设备与实时任务协调运行,且能在一个规定的时间内完成对事件的处理,这种操作系统称为实时操作系统。
4、实时操作系统的基本要求1)实时系统的计算必须产生正确的结果。
(逻辑或功能正确)Logical or Function Correctness)2)实时系统的计算必须在预定的时间内完成。
(时间正确)Timing Correctness5、实时操作系统的分类1)硬实时操作系统(极严格的时间内完成实时任务)2)软实时操作系统(系统完成实时任务的截止时间要求不十分严格)1.2.3 实时操作系统需要满足的条件1、实时操作系统应满足的条件1)必须是多任务操作系统2)任务的切换时间与系统中的任务数无关3)中断延迟的时间可预知并尽可能短1.2.4 嵌入式系统的任务及嵌入实时操作系统1、嵌入式系统的任务由于嵌入式系统所完成的是对一个装置或设备的控制任务,任务的功能相对固定,因此在一般情况下嵌入式实时操作系统所支持的典型任务应该是一个无限循环结构。
《嵌入式操作系统UCOSII原理及应用》任哲—学习笔记第一章嵌入式实时操作系统的概念1.计算机操作系统:对计算机系统资源进行管理,并向计算机用户提供若干服务。
OR:计算机操作系统是计算机硬件的一个软件包装,它为应用程序设计人员提供了一个更便于使用的虚拟计算机。
2.操作系统功能:1)处理器的管理:(1)中断管理;(2)对处理器工作进行调度;2)存储的管理:3)设备的管理:4)文件的管理:5)网络和通信的管理:6)提供用户接口:3.嵌入式系统:对对象进行自动化控制而使其具有智能化并可嵌入对象体系中的专用计算机系统。
4.嵌入式操作系统:运行在嵌入式硬件平台上,对整个系统及其所操作的部件、装置等资源进行统一协调、指挥和控制的系统软件。
5.实时操作系统:(1)多任务系统;(2)任务切换时间与系统中的任务数无关;(3)中断延时的时间可预知并尽可能短。
第二章uC/OS-II中的任务1.uC/OS-II操作系统内核的主要工作就是对任务进行管理和调度。
2.UC/OS-II的任务组成部分:(1)任务程序代码:任务的执行部分;(2)任务堆栈:保存任务工作环境;(3)任务控制块:保存任务属性。
3.uC/OS-II的两种任务:用户任务:由应用程序设计者编写的任务。
系统任务:系统提供的任务。
4.任务的状态:(1)睡眠状态:是否配置或剥夺任务控制块的配置情况;(2)就绪状态:任务就绪表进行就绪登记,等待优先级,具备运行充分条件;(3)运行状态:获得CPU使用权限,任何时候只有一个任务处于运行状态。
(4)等待状态:正在运行的任务,需要等待一段时间或一件事件发生在运行,暂时交出CPU使用权。
5.用户任务代码结构:任务的执行代码通常是一个无限循环结构,并且在这个循环中可以响应中断,这种结构叫做超循环结构。
6.OSTakCreate()用来创建任务的函数;OSStart()用来启动各项任务的函数,启动后,任务就交由操作系统来管理和调度了。
《嵌入式实时操作系统μC/OS原理与实践》
分析和学习指导
一:图书概况
电子科技大学卢有亮的《嵌入式实时操作系统μC/OS原理与实践》在2012.2电子工业出版社出版后受到读者欢迎,因为谁看了谁知道,明白易学.站在客观的角度上分析:
优点有:
1.比较适合入门,对代码的讲解详细充分, 采用逐层深入,反复认证的方法,通过从数据结构到函数代码再到例程的方法比较容易学懂。
作者根据教学和项目开发,自己整理的思路。
书是老师自己根据教学经验编写的,适合学习。
2.提供容易上手的例程,例程明白易懂,在WINDOWS下可运行无误。
有VC下的工程文件,源代码是2.91的,可单步调试,观察变量内容,这个比贝贝的学习环境直观有效.
3.该书事件管理、消息管理及内存管理代码解释也很详细深入。
因此不止是入门,包含了操作系统代码作者的内容。
4.内容充分而价格便宜,纸质比较好(请相信电子工业出版社),书很舒服。
5.网上搜索,提供了部分视频教程。
6.书中源代码解释详细,适合学过点C语言的同学读,门槛不高。
很多读者放映书说的比较其他书详细。
例如TCB就绪链表和空闲链表,ECB的相关数据结构都以图形方式给出,然后代码解析后还给出流程图,基本上每个重要的函数都有解释和流程图,这个其他书是没有的。
7.交流方式多,有问必答。
有什么问题直接联系书中老师的邮箱或微博, 并欢迎加入微群。
缺点有:
1.有一些错误之处,虽然可以在微博看到勘误表。
2.没有提供教学光盘,需要在网上下载,视频的第一章部分不是高清的,部分视频有声音不同步的问题.
3.移植部分是针对WINDOWS下的虚拟移植及软核FPGA的,没有51单片机的、STM32的、ARM7、9、11的
二:图书PPT使用指导
教学PPT质量一般,简明易懂。
PPT简明为主,包含了流程
图,数据结构图解等,没有大片大片的文字。
PPT在微博有下载地址,315的目前可以下.(原来是在电子工业出版社下载第3个)另外阿莫电子论坛和电子工程师论坛也有下载。
应该说,PPT不是亮点,但是对于使用该PPT的教师来说,绝对是福音。
可以根据自己的教学特点对PPT进行改编,核心的东西都在了。
另外,提供了实验指导PPT。
三:学习和实验代码使用指导
代码在VC下完全编译,目前新的代码没有一个警告。
代码结构对UCOS的内核代码一个字没动,都在SOURCE目录下,在工程中在CORE下。
对于配置的头文件及工程包含文件在CFG
下,移植部分在CPU下。
用户代码单独在USER下。
结构清晰。
示例代码针对各章节,不追求难度,以实用有效为主。
代码运行的示例见下图。
在跟踪模式下,使用观察窗,更可以洞悉系统的重要全局变量如任务控制块、事件控制块、任务优先级表等的实际情况,了解任务堆栈的变化情况!下面给出跟踪过程,如我们要跟踪操作系统初始化OSINIT的执行过程,并观察变量,首先在代码中设置断点如下图
然后按F5运行,我们看到
然后我们输入1就可以,然后回车
现在因为断点,停在这里了。
如果按F11,进入OSInitHookBegin(); 如果按F10,不进入OSInitHookBegin()但这个运行之。
如果对它熟悉,就按F10,否则按F11。
我们跟踪到OS_InitMisc内部,看到OS_InitMisc实际上对重要的全局变量进行了初始化。
可以在观察窗口输入变量,例如OSRunning
我们继续单步调试,并逐渐添加以下重要的全局变量,如就绪组和就绪表。
我们单步运行到OS_InitRdyList的时候,因为有循环,我们
在最后一句设置断点,然后按F5, 应该在最后一句停下来,这样我们看到:
我们看到OS_InitRdyList执行完成的时候,就绪组和就绪表的内容都是0!的确是清0!
然后,我们继续单步运行到这里
我们看到就绪组和就绪表变了,OSRdyGrp变为0X80,OSRdyTble(7)=0x80,这是因为我们创建了空闲任务!
可见,单步调试是很说明问题的!
代码在卢有亮博客有下载地址,315的目前可以下(原来是在电子工业出版社下载第3个)。
另外阿莫电子论坛和电子工程师论坛也有下载。
四:提供了视频
视频对学习起到辅助作用,建议读不懂的地方看看视频,个人感觉看书结合跑代码快些。
当然有些读者喜欢看视频,视频分成很多个,可以选择看哪些内容。
个别视频不是高清的,有些有声音不同步的现象。
网上视频,土豆和优酷
五:提供了交流平台
可以在博客获得最新资料。
微群没有什么人数限制
六:总结
只要按该书的思路,使用这些资源,能够尽快掌握UCOS,付出的只是一本书的价格30元左右。
当需要移植到ARM、STM32或其他系统,在读懂这本书的情况下,不是难事。
否则,下载了移植代码,也用不好!再者,学习好OS的同时,C的水平提高很快!
卢有亮
2012.4.27 成都。