《嵌入式操作系统》嵌入式实时操作系统uCOS-II-教学课件(非AI生成).pptx
嵌入式实时操作系统
μC/OS-II
几个基本概念;主要内容;操作系统是一种为应用程序提供服务的系统软件,是一个完整计算机系统的有机组成部分。
从层次来看,操作系统位于计算机硬件之上,应用软件之下。所以也把它叫做应用软件的运行平台。;
它在计算机应用程序与计算机硬件系统之间,屏蔽了计算机硬件工作的一些细节,并对系统中的资源进行有效的管理。
通过提供函数(应用程序接口(API)),从而使应用程序的设计人员得以在一个友好的平台上进行应用程序的设计和开发,大大地提高了应用程序的开发效率。;操作系统;操作系统中经常使用
的数据结构(数组);操作系统中经常使用
的数据结构(位图);;;操作系统中经常使用
的数据结构(队列);操作系统中经常使用
的数据结构(堆栈);什么是多任务系统;程序的切换(两句话);所谓切换就是:
PC目标地址
;小结;;;;虚拟处理器;
任务的基本概念
;任务切换过程;小结;
μC/OS-II中
的任务管理
;
任务的状态及其转换
;前面谈到,一个任务的任务控制块
的主要作用就是保存该任务的虚拟
处理器的堆栈指针寄存器SP。
其实,随着任务管理工作的复杂性
的提高,它还应该保存一些其他信
息。;
任务在内存中的结构
;
用户任务代码的
一般结构
;
系统提供的空闲任务
;
系统提供的另一个任务
——统计任务
;
任务的优先权
及优先级别
;
任务堆栈
;
任务堆栈的初始化
;任务控制块 (OS_TCB)
及任务控制块链表; 任务就绪表
及
任务调度;为加快访问任务就绪表的
速度,系统定义了一个变
量OSRdyGrp来表明就绪表
每行中是否存在就绪任务。;;;;;小结;任务切换过程;1.?
任务切换宏
OS_TASK_SW()
;调度时机;
用函数OSTaskCreate()
创建任务
;
创建任务
的一般方法
;
μC/OS-II的
初始化
;
μC/OS-II的启动
;第4章
任务的同步与通信
;
事件
;一个简单的信号量;
事件控制块
;
空事件控制块链表
;
信号量及其操作
;互斥型信号量和任务优先级反转;
互斥型信号量
;消息邮箱及其操作;
消息队列及其操作
;
信号量集;
信号量集的标志组
;等待任务链表;
信号量集的操作
;第6章内存的
动态分配;
内存控制块;可动态分配内存的划分;
动态内存的管理
;第四章 实时操作系统?C/OS-Ⅱ分析;实时操作系统?C/OS-II;通用操作系统和嵌入式(实时)操作系统;嵌入式操作系统的发展;常见的嵌入式操作系统;RTOS在嵌入式系统中的位置;?C/OS简介
;公开源代码
可移植性(Portable)
绝大部分?C/OS-II的源码是用移植性很强的ANSIC写的。和微处理器硬件相关的那部分是用汇编语言写的。汇编语言写的部分已经压到最低限度,使得?C/OS-II便于移植到其他微处理器上。?C/OS-II可以在绝大多数8位、16位、32位以至64位微处理器、微控制器、数字信号处理器(DSP)上运行。
可固化(ROMable)
?C/OS-II是为嵌入式应用而设计的,这就意味着,只要读者有固化手段(C编译、连接、下载和固化),?C/OS-II可以嵌入到读者的产品中成为产品的一部分。
可裁剪(Scalable)
可以只使用?C/OS-II中应用程序需要的那些系统服务。也就是说某产品可以只使用很少几个?C/OS-II调用,而另一个产品则使用了几乎所有?C/OS-II的功能,这样可以减少产品中的?C/OS-II所需的存储器空间(RAM和ROM)。这种可剪裁性是靠条件编译实现的。;占先式(Preemptive)
多任务
?C/OS-II可以管理64个任务,然而,目前这一版本保留8个给系统。应用程序最多可以有256个任务
可确定性
全部?C/OS-II的函数调用与服务的执行时间具有可确定性。
任务栈
每个任务有自己单独的栈,?C/OS-II允许每个任务有不同的栈空间,以便压低应用程序对RAM的需求。
系统服务
?C/OS-II提供很多系统服务,例如邮箱、消息队列、信号量、块大小固