当前位置:
文档之家› 嵌入式实时操作系统ucosII
嵌入式实时操作系统ucosII
Ⅱ是稳定可靠的,可用在与人性命攸关的安全紧要的系统上。本课程讲授的就 是μC/OS-Ⅱ。它是一个十分小的内核。
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和
μC/OS-Ⅱ,稳定性与服务性存在挑战。 μC/OS-Ⅱ得到了美国航空管理局的认证,可用在飞行器上。这说明μC/OS-
3
嵌入式实时操作系统
在这些嵌入式操作系统中封装了越来越多的功能,除了对任务的切换、调度、通 信、同步、互斥、中断管理、时钟管理等,还可进一步封装内存管理、网络通讯协 议、文件管理等功能,这些功能可以根据需要进行裁减。Linux正是由于其源代码 开放,可以使开发者根据自己的需要进行裁剪而受到开发者的青睐。 1.2.1 计算机实时操作系统
13
第一节 C/OS的性能特点(一)
公开源代码
可移植性(Portable)
绝大部分C/OS-II的源码是用移植性很强的ANSI C写的。和微处理器硬件相 关的那部分是用汇编语言写的。汇编语言写的部分已经压到最低限度,使得 C/OS-II便于移植到其他微处理器上。 C/OS-II可以在绝大多数8位、16位 、32位以至64位微处理器、微控制器 、数字信号处理器(DSP)上运行。
嵌入式操作系统基础
——C/OS-Ⅱ
1
“嵌入式操作系统基础”课程内容
1 嵌入式实时操作系统 2 C/OS-Ⅱ操作系统及任务 3 C/OS-Ⅱ的任务管理 4 C/OS-Ⅱ的初始化、启动 5 C/OS-Ⅱ的中断、时钟及时间管理 6 C/OS-Ⅱ任务通信与同步 7 C/OS-Ⅱ内存管理 8 C/OS-Ⅱ的移植
9 基于C/OS-Ⅱ应用的开发
2
第一讲 嵌入式实时操作系统
第一节 嵌入式系统
目前国内一个普遍被认同的定义是:以应用为中心、以计算机技术为基础,软件 硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用 计算机系统。而这专用计算机系统是嵌入到对象中。只见对象,不见计算机。
如图1.1、1.2、1.3、1.4 所示。
实时操作系统首要特点是实时性。为此: ⑴ 实时操作系统必须是多任务的。 ⑵ 实时操作系统内核应该是可剥夺型的。
4
图 1.1
图 1.2
图 1.3
7
图 1.4
8
关于内核应该是可剥夺型的
这种可剥夺性表现为:一个在运行的进程可被另一个进程剥夺其在CPU的运行权; 另一方面,被剥夺运行权的进程,一旦再次获得运行时,能够正确无误运行,得到 正确结果。为此,编译器、程序设计都要保证这点。
可固化(ROMable)
C/OS-II是为嵌入式应用而设计的,这就意味着,只要读者有固化手段(C编 译、连接、下载和固化), C/OS-II可以嵌入到读者的产品中成为产品的一 部分。
可裁剪(Scalable)
可以只使用C/OS-II中应用程序要的那些系统服务。也就是说某产品可以只 使用很少几个C/OS-II调用,而另一个产品则使用了几乎所有C/OS-II的功 能,这样可以减少产品中的C/OS-II所需的存储器空间(RAM和ROM)。这 种可剪裁性是靠条件编译实现的。
14
C/OS的性能特点(二)
① 可重入函数
② 不可重入的函数
viod strcpy(char *dest,char *src)int Temp;
{
void swap(int *x , int *y)
while(*dest++ = *src++) {
{
;
Temp = *x;
}
*x = *y;
*dest = NULL;
*y = Temp;
}
}
对于含有不可剥夺的函数的进程是不剥夺的。
⑶ 进程调度的延时可预测并尽可能小
⑷ 系统提供的服务时间可预知.
9
嵌入式实时操作系统
⑸ 中断延时尽可能小。否则影响高优先级进程的执行。
1.2.2 嵌入式实时操作系统
嵌入式系统是嵌入到某一对象中的专用计算机,它所占用的空间和所需的能源十分有 限,甚至是苛刻的。这就要求操作系统是可剪裁的。对于不同的应用对象,必须剪裁 掉与其无关的部分。这样嵌入式系统不但是实时的,而且是可剪裁的。这点与通用操 作系统是不同的.
这个专用计算机系统承担对象的数据处理和对象各部件运动的控制。随着大规模 集成电路的发展、嵌入式软件工程的发展,嵌入的对象越来越广泛。
第二节 嵌入式实时操作系统
正如通用计算机系统,有很多软、硬件资源需要一个操作系统来管理,并提 供用户一个良好的程序运行的环境。同样,作为嵌入式系统—专用计算机也需要 一个操作系统。这个操作系统必须是实时的、嵌入式的。