资料介绍
引言
在开发嵌入式系统时,一般选择基于ARM 和uC/ OS - II 的嵌入式开发平台,因为ARM 微处理器具有处理速度快、超低功耗、价格低廉、应用前景广泛等优点[1 ] 。 将uC/ OS - II 移植到ARM 系统之后,可以充分结合两者的优势。 如果一个程序在一个环境里能工作,我们经常希望能将它移植到另一个编译系统、处理器或者操作系统上,这就是移植技术。移植技术可以使一种特定的技术在更加广泛的范围使用,使软件使用更加灵活,不局限于某一条件.uC/OS - II 是由Jean J 。 Labrosse 先生编写的完整的可移植、固化、裁剪的占先式实时多任务内核.uC/ OS - II 的源代码完全开放,这是其他商业实时内核无法比拟的[2 ] 。 它是针对嵌入式应用设计的,在设计之初就充分考虑了可移植性,它的大部分源代码都是用高可移植性的ANSIC 编写的[3 ] 。 uC/ OS - II可以移植到从8 位到64 位的不同类型、不同规模的嵌入式系统,并能在大部分的8 位、16 位、32 位、甚至64 位的微处理器和DSP 上运行。 由于uC/ OS - II是一个实时操作系统,所以如果将它嵌入到ARM处理器上,就能够进一步简化ARM系统的开发。
图1 uC/ OS - II 文件体系结构
1 uC/ OS - II 的移植
uC/OS - II 的文件系统结构包括核心代码部分、设置代码部分、与处理器相关的移植代码部分[4 ] 。 结构如图1 所示。其中最上边的软件应用层是uC/ OS - II 上的代码。 核心代码部分包括7 个源代码文件和1 个头文件。 功能分别是内核管理、事件管理、消息队列管理、存储管理、消息管理、信号量处理、任务调度和定时管理。 设置代码部分包括2 个头文件,用来配置事件控制块的数目以及是否包含消息管理相关代码。 而与处理器相关的移植代码部分则是进行移植过程中需要更改的部分,包括1 个头文件OS CPU. H ,1 个汇编文件OS CPU A. S 和1 个C 代码文件。实际上将uC/ OS - II 移植到ARM 处理器上,需要完成的工作主要是以下三个与体系结构相关的文件:OS CPU. H ,OS CPU. C 以及OS CPU A. S[5 ] 。
1. 1 OS CPU. H 的移植
文件OS CPU. H 中包括了用# define 语句定义的与处理器相关的常数、宏以及类型。 移植时主要修改的内容有:与编译器相关的数据类型的设定;用#define 语句定义2 个宏开关中断;根据堆栈的方向定义OS STK GROWTH等。
在将uC/ OS - II 移植到ARM 处理器上时,首先进行基本配置和数据类型定义。 重新定义数据类型是为了增加代码的可移植性,因为不同的编译器所提供的同一数据类型的数据长度并不相同,例如int型,在有的编译器中是16 位,而在另外一些编译器中则是32 位。 所以,为了便于移植,需要重新定义数据类型,如INT32U 代表无符号32 位整型。 typedefunsigned int INT8U ,就是定义一个8 位的无符号整型数据类型。 其次就是对ARM 处理器相关宏进行定义,如ARM处理器中的退出临界区和进入临界区的宏定义,退出临界区宏定义[5 ] : # define OS EXITCRITICAL () ARMDisable Int ( ) / / 关中断,进入临界区宏定义# define OS ENTER CRITICAL ( ) AR2MEnableInt () / / 开中断。 最后就是堆栈增长方向的设定。 当进行函数调用时,入口参数和返回地址一般都会保存在当前任务的堆栈中,编译器的编译选项和由此生成的堆栈指令就会决定堆栈的增长方向[6 ] ,定义为# define OS STK GROWTH 1.
在开发嵌入式系统时,一般选择基于ARM 和uC/ OS - II 的嵌入式开发平台,因为ARM 微处理器具有处理速度快、超低功耗、价格低廉、应用前景广泛等优点[1 ] 。 将uC/ OS - II 移植到ARM 系统之后,可以充分结合两者的优势。 如果一个程序在一个环境里能工作,我们经常希望能将它移植到另一个编译系统、处理器或者操作系统上,这就是移植技术。移植技术可以使一种特定的技术在更加广泛的范围使用,使软件使用更加灵活,不局限于某一条件.uC/OS - II 是由Jean J 。 Labrosse 先生编写的完整的可移植、固化、裁剪的占先式实时多任务内核.uC/ OS - II 的源代码完全开放,这是其他商业实时内核无法比拟的[2 ] 。 它是针对嵌入式应用设计的,在设计之初就充分考虑了可移植性,它的大部分源代码都是用高可移植性的ANSIC 编写的[3 ] 。 uC/ OS - II可以移植到从8 位到64 位的不同类型、不同规模的嵌入式系统,并能在大部分的8 位、16 位、32 位、甚至64 位的微处理器和DSP 上运行。 由于uC/ OS - II是一个实时操作系统,所以如果将它嵌入到ARM处理器上,就能够进一步简化ARM系统的开发。
图1 uC/ OS - II 文件体系结构
1 uC/ OS - II 的移植
uC/OS - II 的文件系统结构包括核心代码部分、设置代码部分、与处理器相关的移植代码部分[4 ] 。 结构如图1 所示。其中最上边的软件应用层是uC/ OS - II 上的代码。 核心代码部分包括7 个源代码文件和1 个头文件。 功能分别是内核管理、事件管理、消息队列管理、存储管理、消息管理、信号量处理、任务调度和定时管理。 设置代码部分包括2 个头文件,用来配置事件控制块的数目以及是否包含消息管理相关代码。 而与处理器相关的移植代码部分则是进行移植过程中需要更改的部分,包括1 个头文件OS CPU. H ,1 个汇编文件OS CPU A. S 和1 个C 代码文件。实际上将uC/ OS - II 移植到ARM 处理器上,需要完成的工作主要是以下三个与体系结构相关的文件:OS CPU. H ,OS CPU. C 以及OS CPU A. S[5 ] 。
1. 1 OS CPU. H 的移植
文件OS CPU. H 中包括了用# define 语句定义的与处理器相关的常数、宏以及类型。 移植时主要修改的内容有:与编译器相关的数据类型的设定;用#define 语句定义2 个宏开关中断;根据堆栈的方向定义OS STK GROWTH等。
在将uC/ OS - II 移植到ARM 处理器上时,首先进行基本配置和数据类型定义。 重新定义数据类型是为了增加代码的可移植性,因为不同的编译器所提供的同一数据类型的数据长度并不相同,例如int型,在有的编译器中是16 位,而在另外一些编译器中则是32 位。 所以,为了便于移植,需要重新定义数据类型,如INT32U 代表无符号32 位整型。 typedefunsigned int INT8U ,就是定义一个8 位的无符号整型数据类型。 其次就是对ARM 处理器相关宏进行定义,如ARM处理器中的退出临界区和进入临界区的宏定义,退出临界区宏定义[5 ] : # define OS EXITCRITICAL () ARMDisable Int ( ) / / 关中断,进入临界区宏定义# define OS ENTER CRITICAL ( ) AR2MEnableInt () / / 开中断。 最后就是堆栈增长方向的设定。 当进行函数调用时,入口参数和返回地址一般都会保存在当前任务的堆栈中,编译器的编译选项和由此生成的堆栈指令就会决定堆栈的增长方向[6 ] ,定义为# define OS STK GROWTH 1.
下载该资料的人也在下载
下载该资料的人还在阅读
更多 >
- 【嵌入式系统—实时操作系统】uC/OS-II 及其STM32F103移植 5次下载
- 嵌入式实时操作系统μC、OS-II在ARM上的移植. 13次下载
- 详解μC/OS-II在ARM平台上移植 13次下载
- μC/OS-II 在Nios上的移植 90次下载
- 基于ARM+μC/OS-II的嵌入式数据采集系统设计 35次下载
- uCOS II 在SkyEye 上的移植分析 34次下载
- ARM7内核上的uCOS II嵌入式系统移植 100次下载
- uc/os-ii在ARM处理器上的移植 65次下载
- 实时操作系统OS-II在ARM7上的移植 21次下载
- 基于ARM的嵌入式操作系统μC/OS-II的移植 28次下载
- μC/OS-II在PC机上移植的设计与实现 14次下载
- 基于ARM微处理器的μC/OS-II的移植研究 14次下载
- 基于uc/os-ii 的嵌入式GUI研究与应用 20次下载
- μC OS-II 在Nios 上的移植1 28次下载
- μC OS-II 在S3C44B0X 处理器上的移植 18次下载
- 基于μC/OS-II和TMS320LF2407A实现集散式数据采集系统的设计 2003次阅读
- 基于实时嵌入式操作系统mC/OS-II实现GPRS终端系统的设计 2063次阅读
- 基于嵌入式工控模块和μC/OS-II实现车载状态监控系统的设计 1725次阅读
- 基于μC/OS-II操作系统实现在P89V51RD2微控制器上运行 645次阅读
- 基于μC/OS-II操作系统在SPCE061A上的移植优化研研究 673次阅读
- 基于μC/OS-II嵌入式系统开发中低功耗系统的设计 2817次阅读
- 51单片机对μC/OS-II实时操作系统的移植 2228次阅读
- LPC213X通过μC/OS-II的多种移植方案 547次阅读
- 浅论uC/OS-II 在电动车电池管理系统中的应用研究 1168次阅读
- μC/OS-II系统基础嵌入式开发编程教程 4148次阅读
- LPC2119简介 μC/OS-II在LPC2119上的移植 2526次阅读
- 车辆调度系统的整体设计 UC/OS-II的内核调度机理 1022次阅读
- 基于STM32的嵌入式测控系统设计与实现 8044次阅读
- 嵌入式设备设计的内核uc/os-ii api使用手册大全 4044次阅读
- 用AndesCore N1033A-S处理器实现μC/OS-II的移植 3693次阅读
下载排行
本周
- 1电子电路原理第七版PDF电子教材免费下载
- 0.00 MB | 1490次下载 | 免费
- 2单片机典型实例介绍
- 18.19 MB | 92次下载 | 1 积分
- 3S7-200PLC编程实例详细资料
- 1.17 MB | 27次下载 | 1 积分
- 4笔记本电脑主板的元件识别和讲解说明
- 4.28 MB | 18次下载 | 4 积分
- 5开关电源原理及各功能电路详解
- 0.38 MB | 10次下载 | 免费
- 6基于AT89C2051/4051单片机编程器的实验
- 0.11 MB | 4次下载 | 免费
- 7蓝牙设备在嵌入式领域的广泛应用
- 0.63 MB | 3次下载 | 免费
- 89天练会电子电路识图
- 5.91 MB | 3次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234313次下载 | 免费
- 2PADS 9.0 2009最新版 -下载
- 0.00 MB | 66304次下载 | 免费
- 3protel99下载protel99软件下载(中文版)
- 0.00 MB | 51209次下载 | 免费
- 4LabView 8.0 专业版下载 (3CD完整版)
- 0.00 MB | 51043次下载 | 免费
- 5555集成电路应用800例(新编版)
- 0.00 MB | 33562次下载 | 免费
- 6接口电路图大全
- 未知 | 30320次下载 | 免费
- 7Multisim 10下载Multisim 10 中文版
- 0.00 MB | 28588次下载 | 免费
- 8开关电源设计实例指南
- 未知 | 21539次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935053次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537791次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420026次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234313次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233045次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191183次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183277次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138039次下载 | 免费
评论
查看更多