第七章︰ucos嵌入式实时操作系统应用解析.ppt
文本预览下载声明
初识μC/OS-II 范例讲解 ?C/OS简介 1、?C/OS——micro O S,微控制器操作系统 2、 ?C/OS简介 美国人Jean Labrosse 1992年完成 应用面覆盖了诸多领域,如照相机、医疗器械、音响设备、发动机控制、高速公路电话系统、自动提款机等 1998年?C/OS-II,目前的版本?C/OS -II V2.84 2000年,得到美国航空管理局(FAA)的认证,可以用于飞行器中 网站,有大量的代码可供参考 公开源代码 可移植性(Portable) 绝大部分? C/OS-II的源码是用移植性很强的ANSI C写的。和微处理器硬件相关的那部分是用汇编语言写的。汇编语言写的部分已经压到最低限度,使得? 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个给系统。应用程序最多可以有56个任务. 在最新版本中,?C/OS-II可以管理255个任务。 可确定性 全部? C/OS-II的函数调用与服务的执行时间具有可确定性。 任务栈 每个任务有自己单独的栈, ? C/OS-II允许每个任务有不同的栈空间,以便压低应用程序对RAM的需求。 系统服务 ?C/OS-II提供很多系统服务,例如邮箱、消息队列、信号量、块大小固定的内存的申请与释放、时间相关函数等。 中断管理 中断可以使正在执行的任务暂时挂起,如果优先级更高的任务被该中断唤醒,则高优先级的任务在中断嵌套全部退出后立即执行,中断嵌套层数可达255层。 稳定性与可靠性 μC/OS-II图书 描述了μC/OS-II内部的工作原理 随书的CD中包含了源代码 工业界最清晰的源代码 除英文版外,有中文和韩文版 安装 μC/OS-II 这些例子用Borland C/C++ 编译器(V4.51)编译过,用选择项产生Intel/AMD80186处理器(大模式下编译)的代码。 安装步骤: 1.双击ucos252.exe,然后点击unzip 范例1 范例1演示了μC/OS-II的多任务处理能力。它包含了13个任务,11个任务在屏幕随机的位置上显示一个0~9的数字和2个系统内部任务空闲任务和CPU利用率统计任务。 运行安装目录下的test,即可看到运行结果。 1.01 INCLUDES.H 用户将注意到本书中所有的 *.C 文件都包括了以下定义: #include includes.h? INCLUDE.H可以使用户不必在工程项目中每个*.C文件中都考虑需要什么样的头文件。换句话说,INCLUDE.H是主头文件。这样做唯一的缺点是INCLUDES.H中许多头文件在一些*.C文件的编译中是不需要的。这意味着逐个编译这些文件要花费额外的时间。这虽有些不便,但代码的可移植性却增加了。本书中所有的例子使用一个共同的头文件INCLUDES.H,3个副本分别存放在\SOFTWARE\uCOS-II\EX1_x86L,\SOFTWARE\uCOS-II\EX2_x86L,以及\SOFTWARE\uCOS-II\EX3_x86L 中。当然可以重新编辑INCLUDES.H以添加用户自己的头文件。 Test.c代码分析 #include includes.h #define TASK_STK_SIZE 512 #define N_TASKS 10 OS_STK TaskStk[N_TASKS][TASK_STK_SIZE]; OS_STK TaskStartStk[TASK_STK_SIZE]; char TaskData[N_TASKS]; OS_EVENT *RandomSem; void main (void) { PC_DispClrScr(DISP
显示全部