第九讲 uCOSII嵌入式实时操作系统PPT课件
uCOS-II ppt 入门基础
硬件初始化
• 系统启动处理(在调用uC/OS-II操作系统初始化函数 OSInit()前,需要对CPU进行必要的初始化,例如设置异 常处理栈空间。要使uC/OS-II能够正常运行,时钟任务是 必不可少的。另外,启动代码需要存储在哪个内存空间, 在运行时需要在哪个内存中运行,这些都需要程序员手动 设置。)
典型的main函数
• • • • • • • • • • • • • • void main (void) { /*-----硬件初始化,等用户代码初始化-----*/ ... OSInit(); /* 初始化uC/OS-II */ …/*-------安装中断向量---------*/ /*通过调用OSTaskCreate ( ) 或OSTaskCreateExt ( )创建至少一个任务;*/ OSTaskCreate(TaskStart , (void*)0, &TaskStartStk[TASK_STK_SIZE - 1], 2 ); … /*通过调用OSSemCreate() 创建信号量等任务通信方式;*/ CalcSem = OSSemCreate(0); … OSStart(); /* 开始多任务调度!OSStart()永远不会返回 */ }
时钟
PC机上移植和运行uC/OS-II要注意其与PC机中其他操 作系统的关系(主要是与DOS操作系统之间的关系),不 能因为安装了uC/OS-II而使其他操作系统不能正常使用。 • 在PC机中,DOS系统时间的周期为 54.93ms(18.20648HZ)。 • DOS操作系统的系统时钟是由PC机上配置的硬件定时 DOS PC 器产生的。在硬件定时器的每个定时周期结束时,硬件定 时器便向CPU申请一次中断,在中断服务程序中处理DOS 所需要的系统时钟,同时处理DOS系统有关时间的一些管 理事务。在80X86系统的中断向量表中,产生DOS系统时 钟硬件定时器所占用的中断向量为0x08. • 在这我们把uC/OS-II的系统时钟频率设置为200HZ,这 显然比DOS的时钟频率高得多。因此,借用产生的DOS系 统时钟的定时器信号来产生uC/OS-II系统时钟。200除于11 等于18.18约等于18.2.后把uC/OS-II的时钟中断向量安装到 0x08上,而把0x08中原来的DOS的时钟中断向量转存到中 •
嵌入式实时操作系统ucosII
10
学习嵌入式操作系统
学习一种实时操作系统RTOS,如uc/OS,掌握实时系统的 概念和设计方法;
嵌入式系统以应用为中心,应用时选择“适用”的操作系 统;
知道如何剪裁操行系统; 嵌入式Linux、eCos; 自己“写”RTOS——一种学习态度; 由于嵌入式系统自身的特点,采用的程序设计语言是汇编
许多早期的嵌入式系统开发者认为嵌入式系统不需要操作系统,但现在除了 最简单的系统外,越来越多的嵌入式系统都引入了操作系统,比如中断驱动系统 在引入嵌入式操作系统之后,系统的可靠性、安全性、可扩展性、功能性、灵活 性、可管理性都大大提高。当然,我们这里所讲的嵌入式操作系统不一定是UcOS、 VxWorks、WinCE、Linux等通用产品,也包括开发者自己编写的专用嵌入式操作 系统。
语言、C/C++语言、JAVA语言。所用的编译器应与处理 器相适应。
11
RTOS在嵌入式系统中的位置
应用
FS C/C++ 设备驱动
RTOS
KERNEL 调试工具
其它组件 TCP/IP 设备I/O
BSP(板级支持包) 嵌入式硬件平台
12
第二讲 C/OS –II及任务
µC/OS-II的特点 µC/OS-II文件结构与内核 µC/OS-II任务及其存储结构 µC/OS-II任务控制块与任务堆栈 µC/OS-II系统的任务、空闲任务与统计任务
实时嵌入式操作系统的种类繁多,大体上可分为两种,商用型和免费型。 商用型的实操作系统功能稳定、可靠,有完善的技术支持和售后服务,但往往
价格昂贵,如Vxworks、QNX、WinCE、Palm OS等。 免费型的实时操作系统在价格方面具有优势,目前主要有Linux、eCos和
嵌入式实时操作系统uCOS-II(高清)
第一章:范例在这一章里将提供三个范例来说明如何使用 µC/OS-II。
笔者之所以在本书一开始就写这一章是为了让读者尽快开始使用 µC/OS-II。
在开始讲述这些例子之前,笔者想先说明一些在这本书里的约定。
这些例子曾经用Borland C/C++ 编译器(V3.1)编译过,用选择项产生Intel/AMD80186处理器(大模式下编译)的代码。
这些代码实际上是在Intel Pentium II PC (300MHz)上运行和测试过,Intel Pentium II PC可以看成是特别快的80186。
笔者选择PC做为目标系统是由于以下几个原因:首先也是最为重要的,以PC做为目标系统比起以其他嵌入式环境,如评估板,仿真器等,更容易进行代码的测试,不用不断地烧写EPROM,不断地向EPROM仿真器中下载程序等等。
用户只需要简单地编译、链接和执行。
其次,使用Borland C/C++产生的80186的目标代码(实模式,在大模式下编译)与所有Intel、AMD、Cyrix公司的80x86 CPU兼容。
1.00 安装 µC/OS-II本书附带一张软盘包括了所有我们讨论的源代码。
是假定读者在80x86,Pentium,或者Pentium-II处理器上运行DOS或Windows95。
至少需要5Mb硬盘空间来安装uC/OS-II。
请按照以下步骤安装:1.进入到DOS(或在Windows 95下打开DOS窗口)并且指定C:为默认驱动器。
2.将磁盘插入到A:驱动器。
3.键入 A:INSTALL 【drive】注意『drive』是读者想要将µC/OS-II安装的目标磁盘的盘符。
INSTALL.BAT 是一个DOS的批处理文件,位于磁盘的根目录下。
它会自动在读者指定的目标驱动器中建立\SOFTWARE目录并且将uCOS-II.EXE文件从A:驱动器复制到\SOFTWARE并且运行。
µC/OS-II将在\SOFTWARE目录下添加所有的目录和文件。
ucOSII实时操作系统共41页
面向二十一世纪的嵌入式系统设计技术第五讲:ucOS/II 实时操作系统RTOS(一):ucOS/II2002 年 1 月任课教员:徐欣主讲教员:习勇国防科大电子科学与工程学院嵌入式系统开放研究小组博士博士1What is uC/OS? u: Micro C:controluC/OS : 适合于小的、控制器的操作系统小巧公开源代码,详细的注解可剥夺实时内核可移植性强多任务确定性2002/112美国人The Story of uC/OSJean Labrosse 1992 年编写的商业软件的昂贵应用面覆盖了诸多领域,如照相机、医疗器械、音响设备、发动机控制、高速公路电话系统、自动提款机等1998 年uC/OS-II ,目前的版本uCOS-II2002/11uC/OS-II V2.513嵌入式操作系统—uC/OS概要内核结构- 任务以及调度机制任务间通信uC/OS 的移植在PC 机上运行uC/OS2002/114—uC/OS任务task嵌入式操作系统典型的一个无限循环。
void mytask(void *pdata)for (;;) {do something;waiting;do something;支持64 个任务,每个任务一个特定的优先级。
优先级越高,数字越小系统占用了两个任务,空闲任务和统计任务。
2002/115嵌入式操作系统—uC/OS任务的数据结构—任务控制块任务控制块OS_tcb ,包括任务堆栈指针,状态,优先级,任务表位置,任务链表指针等。
所有的任务控制块分为两条链表,空闲链表和使用链表。
新任务TCB(1) TCB0 TCB1next pre(2)(3)OSTCBFreeList图4.3TCB的双向链表结构TCBn空2002/116任务控制块结构嵌入式操作系统—uC/OSStruct os_tcb {OS_STK*OSTCBStkPtr;struct os_tcb*OSTCBNext;struct os_tcb*OSTCBprev;OS_EVENT *OSTCBEventPtr;void *OSTCBMsg;INT16U OSTCBDly;INT8U OSTCBStat;INT8U OSTCBPrio;INT8U OSTCBX, OSTCBY, OSTCBBitX, OSTCBBitY; } OS_TCB2002/117任务的状态OSTCBStat运行,就绪,等待,挂起OSTCBStat低四位挂起队列邮箱信号量可以有多个准备就绪的任务,但一个时刻只有一个任务可以运行,OSHighRdy2002/118任务的调度--OSScheduC/OS 是占先式实时多任务内核,优先级最高的任务一旦准备就绪,则拥有所有权开始投入运行。
《uCOSII原理》PPT课件
第4任章务的同步与通信 例如则该无相的此调总顺招需成数显如果任处冲 支 的限,之序呼要一据然突持能制操,系务于,要通项,,。地和力和作B任统等多求因过工任当访依制系,务已待个时不访作务任问赖约统从A经状任,能B和问,务同必而,,负把态务在获A任同任一须使甚 才责还打,共正个具得任务保至一务从未印只享式共有务证有打AB个缓向负共机有享对同工之时任印数冲缓责享分当资任间还务一作机据区冲向一配任源务可的要资之的缓读区缓台给务的以顺互,源前使冲取写冲打A了运相无利或或要用把区行加运冲者该入区印任有互权打合进行以突需数数写机务工相而印作行必要。、据据入,A作打应,机完协要互因流。
务的同步的。
任务间的同步依赖于任务间的通信。
在μC/OS-II中,是使用信号量、邮
箱(消息邮箱)和消息队列这些被
事 称作事件的中间环节来实现任务之
间的通信的。
件
黄宏
宋丹丹
一个简单的信号量
发信方
1/0
收信方
共享资源
如 它 数 (如 却 却把a的解果进又仍果i为μ作除t一一入要因一(用等个就使了C为个个/就待)正绪它没正把O函任是状在状S进有在-描把数态务等态入获等I调)待。I述就。置取待使用后的这绪事事事该于这,任用时状件件件函个再等务态要等的叫函把具的,数调待原任做数任备这用因务数的状的务事了时O而已据S原任在态可要_件未经E务任结型以调要v具超控e在务运用n构备为过调t任就制O行T可了S统a:务绪用_的s块以等Ek等表一vR条O运待eEd待中Sny件C起行_的t(表对BTE,的时O的来)中应v(函那e条间的的数,)n数么件,函位位t。就T,置置a该要s清1使,函k0W
空事件控制块链表 链接指针,把这些空事件控制块链接成一个单向
uCOS-II嵌入式实时操作系统原理与移植
1,决定是否进行上下文切换 2,保存当前执行进程的上下文
包括程序计数器PC、通用寄存器、 与任务有关的数组、表格、链等。
uC/OS-II采用可
剥夺实时内核,
含义是最高优先
0
级任务一旦就绪,
总能得到CPU使
1
用权。
系统保留4个
2
最高优先级
3
4
5
执行该任务
6
7
……
uC/OS-II 的中断(ISR)
任务2—TCB--就绪—任务堆栈
任务3--TCB--等待—任务堆栈
任务4--TCB --睡眠—任务堆栈
uC/OS-II的任务之间通信
任务之间共享的信息成为事件,同一时刻只能有一个任务使 用共享信息,因此为每个事件构建一个事件控制块ECB来保 证任务之间安全共享信息。事件控制块总数由OS_CFG.H中的 OS_MAX_EVENTS定义。事件包括信号量、邮箱、消息队列。
内存组配置文件 储存器映射MMU初始化与操作 Nand flash控制器初始化与操作
与CPU相关的配置选项 开机画面BMP文件 开机画面BMP文件 开机画面BMP文件 初始化mini2440目标板 定义任务优先级、堆栈大小及函数原型声明 初始化操作系统定时器0 开机画面BMP文件
关于信号量和等待的API功能函数
//任务循环
{
OSPrintf("\nEnter Main Task\n");
OSTimeDly(OS_TICKS_PER_SEC); //将任务延迟一段时间,进入等待态
}
}
uC/OS-II的任务都运行在无限循环中。
欢迎访问机电技术博客:/spurtltl@126/
ucosii实时操作系统分析-任务管理及调度精品PPT课件
(119页例4-4,122页例4-5) 11、用消息邮箱实现任务间通信示例程序演示--0.9(可选)(136页例4-8) 3
实时操作系统C/OБайду номын сангаас-II
1 C/OS-II概述 2 任务概念 3 任务调度核心问题分析
4
C/OS简介
美国人Jean Labrosse 1992年完成 应用面覆盖了诸多领域,如照相机、医疗器械、音
响设备、发动机控制、高速公路电话系统、自动提 款机等 1998年C/OS-II,目前的版本C/OS -II V2.61 ,2.72 2000年,得到美国航空管理局(FAA)的认证, 可以用于飞行器中 网站()
( 31页2.4.2) 5、任务调度器实现流程图表述--1 (43页2.4.3) 6、任务调度器实现及源代码分析--1 (43页2.4.3 ) 7、任务切换的过程描述--0.8(可选) (43页2.4.3 ) 8、用户任务的实现(编写一个示例程序验证调度算法)--1 (43页例2-7) 9、任务状态切换(挂起和恢复任务)示例程序演示--0.9(可选)
任务控制块是一个数据结构,保存该任务的相关参数,包括任务 堆栈指针,任务的当前状态,任务的优先级等。
任务CPU使用权被剥夺时,TCB保存该时刻任务状态;任务重新得 到CPU控制权时,TCB确保任务从当时被中断的那一点丝毫不差地 继续执行。
OS_TCB全部驻留在RAM中。
任务控制块就相当于一个任务的身份证,没 有任务控制块的任务是不能被系统承认和管 理的。
µC/OS-II操作系统中进程调 度模块分析
1
1、课程任务:
背景
分析µC/OS-II操作系统中的进程调度模块的源代码
嵌入式实时操作系统ucosii
医疗电子
ucosii在医疗电子领域 中应用于医疗设备、监
护仪、分析仪等。
物联网
ucosii在物联网领域中 应用于传感器节点、网
关、路由器等设备。
02
ucosii的体系结构与内核
任务管理
任务创建
ucosii提供了创建新任务的函数,如 OSTaskCreate(),用于创建新任务。
任务删除
ucosii提供了删除任务的函数,如 OSTaskDelete(),用于删除不再需要的任 务。
时间管理
01
02
03
时间节拍
ucosii通过定时器产生固 定时间间隔的节拍信号, 用于任务调度和时间管理 。
超时处理
ucosii支持超时机制,当 某个任务等待时间超过预 定阈值时触发相应的处理 函数。
时间函数
ucosii提供了一系列时间 函数,如OSTimeDly()、 OSTimeTick()等,用于时 间相关的操作和控制。
智能家居
ucosii适用于智能家居领域,可应用于 智能家电控制、家庭安全监控等场景。
02
03
医疗电子
ucosii适用于医疗电子领域,如医疗设 备控制、病人监控等,其可靠性和实 时性为医疗系统提供了有力保障。
THANKS。
应用软件的开发
任务管理
在UCOSII中,任务是用来实现应用程序功能的。在进行应用软件的开发时,需要创建和管理任务。这包括任务的创 建、删除、挂起和恢复等操作。
任务间通信
为了实现任务间的协同工作,需要进行任务间通信。UCOSII提供了信号量、消息队列、互斥量等机制来实现任务间 通信。在进行应用软件的开发时,需要利用这些机制来实现任务间的同步和数据交换。
嵌入式实时操作系统uC-OS-II-PPT
操作系统中经常使用 的数据结构(数组)
数组
使用上的特点:
int a[10]
1。同一数据类型数据 的集合;
a
a[0]
2。占用连续内存空间; a+1 a[1]
1。分类存放; 2。检索速度 快且恒定;
3。其中的所有元素名 a+2 a[2]
3。缺点:占
称都相同,但每个元 a+3 a[3] 素都有一个编号;
儿哪,个处人理占器有就了去一哪个儿姑。娘
的芳心,哪个人就……
2021/8/2
14
•如数何据操传作送P指C令
•栈所P指不令子C弹谓令同是程出切:的不序)目换计同返标就算的回地是机。指址:类令型(的由指堆 •中断服务程序返回指令 (由堆栈弹出)
2021/8/2
15
小结
系统是通过把待运行程 序的地址赋予程序计数 器PC来实现程序的切换 的。
SP
复复制制
也任就务运是行说环,境任的务切的换切换是 由操作系统的调度
器按某种规则来进
处当务应处虚当就器再务理处寄S需时的虚理处SP拟虚需把复把的器理存S要,虚制P拟虚器理SP拟要该制另虚器器中则拟到P拟器运任到一拟际组止把处内行务实个处处当任理存某的际需理理前务器个虚处要器器任对复任拟理运复中务处器行制时理中的到任实
从•机它用硬在件户计系算的统机之角应间用度,程来屏序蔽看与了计,计算 它算机就硬是件工一作大的堆一些函细数节, (用并的A对管户P系理I可和。统中以系的调统资用源函进(数行普有)效,
通•通调过用提供或函系数(统应调用用程序)接 它口序的(们设AP来计I)人对)员,系得从统以而在资使一应源个用友程 好的进平台行上操进行作应。用程序的
a+1 a[1]
嵌入式实时操作系统uCOSⅡ分析
中间层
BSP/HAL 硬件抽象层/板极支持包
D/A
A/D 硬件层
I/O
嵌入式 微处理器
通用接口 ROM
SDRAM
人机交互接口
嵌入式计算机系统 3
硬件抽象层的引入
嵌入式实时系统自底向上包含三个部分
硬件环境 嵌入式实时操作系统——RTOS 嵌入式实时应用程序
由于嵌入式系统应用的硬件环境差异较大 新增加的中间层位于操作系统和硬件之间,
HAL简介
硬件抽象层பைடு நூலகம்HAL)是体系结构相关的底层程序 处理系统启动、硬件初始化以及中断与异常 硬件抽象层对内核其它部分提供统一的调用接口 HAL可以提供BSP规范,提供跨平台可移植性
6
硬件抽象层接口定义和代码设计特点
硬件抽象层具有与硬件密切相关性 硬件抽象层具有与操作系统无关性 接口定义的功能应包含硬件或系统所需硬件支
25
C/OS-II开关中断的方法(续2)
{ .. OS_ENTER_CRITICAL( ); /* C/OS-II临界段代码*/ OS_EXIT_CRITICAL( ); ..
}
如果在所有挂起类(PEND)调用之前,如:调用OSTimeDel() (挂起时间)功能函数之前关中断,会出现什么现象?
以及基于网络元素NE的甚高端通讯设备 基于智能手机的硬件抽象层,能够支持以Intel PCA体系结构为内核的
智能手机、以Intel EIA体系结构为内核的智能手机,以及以Motorola 的88000系列为内核的PDA 基于IC卡的汇编级硬件抽象层,能够支持数字电视条件接收CA的 8/16/32位CPU IC设计和机器码级汇编抽象层
15
C/OS的性能特点(一)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
章连载在美国1992年《嵌入式系统编程》杂志
的5月和6月刊上。uC/OS的源码发布在该杂志
的BBS上。1993年,美国的R&D出版社出版了
《uC/OS the Real Time Kernel》,在后来几年
中该书的销量超过了15000册。
3
9.19.2.1 uuCC/O/OSS-III的简介译者
2)uC/OS-II的译者
13
9.29u.2C./3OS硬-II件的系相统关函数
3)与硬件有关的部分 • OS_CPU.H
数据类型定义部分不需要修改, #typedef unsigned char BOOLEAN #typedef float FP32 #define BYTE INT8S #define UBYTE INT8U .......
4)uC/OS-II的特点 • 体积小、实时性强、易学易用。 • 源代码开放:购书即可获得,注释详细。 • 可移植性:大部分用ANSI C编写,以移
植到多种微处理器上。 • 可固化:通过一定的工具,可将其嵌入
到用户的产品中。 • 可裁剪:使用条件编译实现裁剪。
7
9.91..14 uCC//OOSS-I-II简I特介点
4
99.1.1.u3C应/O用S-I范I 简围介
3)uC/OS-II的应用范围 • 世界上数以千计的工程技术人员将
uC/OS 应用到了各个领域,如照像机 业、医疗仪器、音响设备、发动机控制、 网络接人设备、高速公路电话系统、 AT M机和工业机器人等。 • 许多大学用uC/OS作教材,用于实时系 统教学。
与硬件相关的部分如下: #include <os_cpu.h> #include <os_cfg.h> #include <ucos-ii.h> #include <pc.h>
11
9.2 9u.C2./1OS应-I用I的相系关统函数
2)应用程序有关的部分 • OS_CFG.H: 配置文件
包含系统裁减的设置,用户设置的常数 #define OS_MAX_EVENTS 2 //系统中事件的
总数 #define OS_MAX_TASK 50 //系统中任务总数 .... #define OS_TASK_CREATE_EXT_EN 0 //禁止增
强型任务创建功能
12
9.2 9u.C2./1OS应-I用I的相系关统函数
2)应用程序有关的部分
• 代码裁减,通过条件编译方式来实现 # if OS_TAK_CREATE_EXT_EN ... //可裁减的代码段 # endif
8051、8052、MCS-251、80196等;
Motorola的PowerPC、68K、CPU32、
ColdFire、M.Core、68HC系列;
Siemens的80C166和TriCore;
TexasInstruments的TMS320等;
6
9.91..14 uCC//OOSS-I-II简I特介点
概况三
点击此处输入相关文本内容 点击此处输入相关文本内容
2
9.19.1.1uCuC/O/OSS-II 的简介作者
1)uC/OS-II的作者
最早的uC/Os的版本是cCOS,出自于美国
的一位嵌入式系统专家Jean J. Labrosse。他后
来成为"嵌入式系统会议"的顾问委员会委员,
并在每年的嵌人式系统会议上讲演。最早的文
5
99.1.1.u3C应/O用S-I范I 简围介
3)uC/OS-II的应用范围 • uC/OS已经移植到了很多CPU上,例如:
AnalogDevices的AD21xx;
ARM的ARM7/ ARM9等;
Hitachi的64180、H8/3xx和SH系列;
Intel的80x86、Pentium、PentiumII、
清华大学的劭贝贝教授在1998年出了《嵌 入式实时操作系统 uC/OS-II the Real Time Kernel》,给uC/OS增加了一些新的功能,并 且增加了约200页的解释。 该书的中文版于2001年8月出版。清华大学已 在嵌入式系统与单片机课程中使用了这本书。
书中不但给出了一个实时内核的全部源代 码,而且对这些代码做了详尽的解释,附一张 光盘,是一本出色的教材。
10
9.2 9u.C2./1OS应-I用I的相系关统函数
2)应用程序有关的部分 • INCLUDES.H
把工程中应包含的头文件汇集在一起: #include <stdio.h> #include <string.h> #include <ctype.h> #include <stdlib.h> #include <conio.h> #include <dos.h>
8
第九讲 第uC九/OS讲-II 系嵌入统式函实时数操作系统
1、uC/OS-II简介 2、系统函数 3、任务组成 4、任务管理 5、时钟和中断 6、内存管理 7、移植方法 8、移植实例
9
9.2 9u.C2./1OS总-I体I的组系成统函数
1)uC/OS-II的组成: 与处理器无关的代码; 与
应用程序相关的部分; 与硬件相关的部分。
4)uC/OS-II的特点
• 可剥夺:完全可剥夺内核,总是运行就
绪条件下优先级最高的任务。
• 多任务:可管理最多64个任务,8个任
务系统保留,用户可用56个任务。
• 可确定性:大多数函数调用和服务的执
行时间可以确定。
• 中断管理:优先级高的任务可以打断正
在运行的优先级较低的任务,中断嵌套
层数可达255层。
第第九九讲讲uuCC/O/OS-SII -嵌II入实式时实操时操作作系系统统
1、uC/OS-II简介 2、系统函数 3、任务组成 4、任务管理 5、时钟和中断 6、内存管理 7、移植方法 8、移植实例
1
整体概述
概况一
点击此处输入相关文本内容 点击此处输入相关文本内容
概况二
点击此处输入相关文本内容 点击此处输入相关文本内容
14
9.2 9uபைடு நூலகம்2C./3OS硬-I件I的相系统关函数
3)与硬件有关的部分
• OS_CPU.H
;与处理器相关的部分要修改
#define OS_ENTER_CRITICAL() ams
{ PUSHF; CLI } //cpu=80x86
#define OS_EXIT_CRITICAL() ams
POPF //cpu=80x86