《嵌入式实时操作系统uC OS-2教程》课件第10章.ppt
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式实时操作系统uC OS-2教程 嵌入式实时操作系统uC OS-2教程课件第10章 嵌入式 实时 操作系统 uC OS 教程 课件 10
- 资源描述:
-
1、第10章 C/OS-C/OS-的移植与应用的移植与应用 第10章 C/OS-的移植与应用的移植与应用 10.1 移植的基本方法移植的基本方法 10.2 基于基于MCS-51单片机的移植实例单片机的移植实例 10.3 基于基于ARM处理器的移植实例处理器的移植实例 10.4 基于基于MCS-51单片机的应用实例单片机的应用实例 10.5 基于基于ARM处理器的应用实例处理器的应用实例 习题习题 第10章 C/OS-C/OS-的移植与应用的移植与应用 10.1 移植的基本方法移植的基本方法10.1.1 移植的概念与一般要求移植的概念与一般要求这里所谓的移植,就是使一个实时内核能运行在另一种微处理器
2、或者微控制器上。为了方便移植,C/OS-在设计时就充分考虑了可移植性,大部分代码都是用ANSI C语言编写的,考虑到绝大多数微处理器在读/写寄存器时只能用汇编语言来实现,所以仍然需要用汇编语言来编写一些与处理器相关的代码。第10章 C/OS-C/OS-的移植与应用的移植与应用 1.移植对微处理器的要求移植对微处理器的要求要使C/OS-能够正常运行,处理器和编译器必须满足以下五项要求:(1)处理器的C编译器能产生可重入代码;(2)用C语言就可以实现开关中断;(3)处理器至少能支持定时中断,中断频率一般在10100 Hz之间;(4)处理器能够支持硬件堆栈,容量可达几KB;(5)处理器有堆栈指针和读
3、/写CPU其它寄存器、堆栈内容或内存的指令。第10章 C/OS-C/OS-的移植与应用的移植与应用 2.对移植开发工具的要求对移植开发工具的要求移植C/OS-,需要一个针对用户用的CPU的C编译器,它必须满足如下要求:(1)C编译器必须支持汇编语言程序。(2)C编译器必须能支持可重入代码,因为C/OS-是一个可剥夺型内核。(3)C编译器必须包括汇编器、连接器和定位器。连接器用来将经编译和汇编后产生的不同的模块连接成目标文件。定位器用于将代码和数据放置在目标处理器的指定内存映射空间中。第10章 C/OS-C/OS-的移植与应用的移植与应用(4)C编译器必须支持从C中打开和关闭中断。(5)C编译器
4、最好支持用户在C语言程序中嵌入汇编语言,这有利于用汇编语言来直接开关中断。3.移植的主要工作移植的主要工作C/OS-的移植非常简单,但前提是:必须理解处理器和C编译器的技术细节,拥有和掌握必要的工具,处理器和编译器满足C/OS-的上述五项原则。根据如图10.1所示的C/OS-软硬件体系结构,移植工作主要是改写与处理器有关的内核代码以及与编译器数据类型有关的文件,详细内容如表10.1所示。第10章 C/OS-C/OS-的移植与应用的移植与应用 图10.1 C/OS-软硬件体系结构第10章 C/OS-C/OS-的移植与应用的移植与应用 表表10.1 移植需要修改的文件一览表移植需要修改的文件一览表
5、第10章 C/OS-C/OS-的移植与应用的移植与应用 第10章 C/OS-C/OS-的移植与应用的移植与应用 移植所要进行的工作可以简单地归纳为如下几条:(1)声明11个数据类型(OS_CPU.H);(2)用#define声明4个宏(OS_CPU.H);(3)用C语言编写10个简单的函数(OS_CPU_C.C);(4)编写4个汇编语言函数(OS_CPU_A.ASM)。根据处理器的不同,一个移植实例可能需要编写或改写50300行的代码,需要的时间从几个小时到一星期不等。移植完毕后还要进行测试。第10章 C/OS-C/OS-的移植与应用的移植与应用 4.INCLUDES.H文件说明文件说明INC
6、LUDES.H是一个主头文件,它包括了所有的头文件,这样做的好处是使得在应用中无需考虑每个.C文件到底需要哪些头文件,还可大大地提高代码的可移植性。唯一的缺点是它可能会包含一些不相关的头文件,因此可能增加每个文件的编译时间。一般地,该文件应该包含在所有.C文件的第一行,即#include “includes.h”。10.1.2 OS_CPU.H代码的移植代码的移植OS_CPU.H头文件中包含了与编译器有关的数据类型和与处理器有关的代码,具体如程序清单10.1所示。第10章 C/OS-C/OS-的移植与应用的移植与应用 程序清单程序清单10.1 OS_CPU.H与编译器有关的数据类型和与处与编译
7、器有关的数据类型和与处理器有关的代码理器有关的代码*与编译器有关的数据类型 */typedef unsigned char BOOLEAN;/*不能使用bit定义,因为在结构体里无法使用*/typedef unsigned char INT8U;/*无符号8位数*/typedef signed char INT8S;/*有符号8位数*/第10章 C/OS-C/OS-的移植与应用的移植与应用 typedef unsigned int INT16U;/*无符号16位数*/typedef signed int INT16S;/*有符号16位数*/typedef unsigned long INT32
8、U;/*无符号32位数*/typedef signed long INT32S;/*有符号32位数*/typedef float FP32;/*单精度浮点数*/第10章 C/OS-C/OS-的移植与应用的移植与应用 typedef double FP64;/*双精度浮点数*/typedef unsigned char OS_STK;/*定义堆栈入口宽度为8位*/typedef unsigned char OS_CPU_SR;/*定义CPU状态字的宽度为8位*/*与处理器有关的代码 */#if OS_CRITICAL_METHOD=1第10章 C/OS-C/OS-的移植与应用的移植与应用#def
展开阅读全文
兔兜文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。




11月份国旗下演讲稿:懂得感恩-承担责任.doc

鲁公网安备