资料介绍
引言
在开发嵌入式系统时,一般选择基于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.
下载该资料的人也在下载
下载该资料的人还在阅读
更多 >
- 嵌入式实时操作系统μC、OS-II在ARM上的移植.
- 详解μC/OS-II在ARM平台上移植 13次下载
- μC/OS-II 在Nios上的移植
- uCOS II 在SkyEye 上的移植分析
- ARM7内核上的uCOS II嵌入式系统移植
- uc/os-ii在ARM处理器上的移植
- 实时操作系统OS-II在ARM7上的移植
- 基于ARM的嵌入式操作系统μC/OS-II的移植
- μC/OS-II在PC机上移植的设计与实现
- 基于uc/os-ii 的嵌入式GUI研究与应用
- μC/OS-II 在LPC2210上的移植实现
- 嵌入式μC/OS-II在LPC2104上的移植及通信设计
- 实时操作系统μC/OS-II 在LPC2210 上的移植研究
- μC OS-II 在Nios 上的移植1
- μC OS-II 在S3C44B0X 处理器上的移植
- 基于μC/OS-II和TMS320LF2407A实现集散式数据采集系统的设计 2344次阅读
- 基于实时嵌入式操作系统mC/OS-II实现GPRS终端系统的设计 2408次阅读
- 基于MC9S12DP256芯片和μC/OS-II实现CCP软件的设计 2883次阅读
- 基于嵌入式工控模块和μC/OS-II实现车载状态监控系统的设计 2064次阅读
- 基于C8051F015芯片在开发板上实现μC/OS-II的移植 2154次阅读
- 基于μC/OS-II操作系统实现在P89V51RD2微控制器上运行 811次阅读
- 基于μC/OS-II操作系统在SPCE061A上的移植优化研研究 850次阅读
- 51单片机对μC/OS-II实时操作系统的移植 2507次阅读
- LPC213X通过μC/OS-II的多种移植方案 678次阅读
- 浅论uC/OS-II 在电动车电池管理系统中的应用研究 1437次阅读
- LPC2119简介 μC/OS-II在LPC2119上的移植 2847次阅读
- 车辆调度系统的整体设计 UC/OS-II的内核调度机理 1207次阅读
- 基于STM32的嵌入式测控系统设计与实现 8642次阅读
- 嵌入式设备设计的内核uc/os-ii api使用手册大全 4323次阅读
- 用AndesCore N1033A-S处理器实现μC/OS-II的移植 4140次阅读
下载排行
本周
- 1DC电源插座图纸
- 0.67 MB | 2次下载 | 免费
- 2AN158 GD32VW553 Wi-Fi开发指南
- 1.51MB | 2次下载 | 免费
- 3AN148 GD32VW553射频硬件开发指南
- 2.07MB | 1次下载 | 免费
- 4AN111-LTC3219用户指南
- 84.32KB | 次下载 | 免费
- 5AN153-用于电源系统管理的Linduino
- 1.38MB | 次下载 | 免费
- 6AN-283: Σ-Δ型ADC和DAC[中文版]
- 677.86KB | 次下载 | 免费
- 7SM2018E 支持可控硅调光线性恒流控制芯片
- 402.24 KB | 次下载 | 免费
- 8AN-1308: 电流检测放大器共模阶跃响应
- 545.42KB | 次下载 | 免费
本月
- 1ADI高性能电源管理解决方案
- 2.43 MB | 450次下载 | 免费
- 2免费开源CC3D飞控资料(电路图&PCB源文件、BOM、
- 5.67 MB | 138次下载 | 1 积分
- 3基于STM32单片机智能手环心率计步器体温显示设计
- 0.10 MB | 130次下载 | 免费
- 4使用单片机实现七人表决器的程序和仿真资料免费下载
- 2.96 MB | 44次下载 | 免费
- 53314A函数发生器维修手册
- 16.30 MB | 31次下载 | 免费
- 6美的电磁炉维修手册大全
- 1.56 MB | 24次下载 | 5 积分
- 7如何正确测试电源的纹波
- 0.36 MB | 17次下载 | 免费
- 8感应笔电路图
- 0.06 MB | 10次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935121次下载 | 10 积分
- 2开源硬件-PMP21529.1-4 开关降压/升压双向直流/直流转换器 PCB layout 设计
- 1.48MB | 420062次下载 | 10 积分
- 3Altium DXP2002下载入口
- 未知 | 233088次下载 | 10 积分
- 4电路仿真软件multisim 10.0免费下载
- 340992 | 191367次下载 | 10 积分
- 5十天学会AVR单片机与C语言视频教程 下载
- 158M | 183335次下载 | 10 积分
- 6labview8.5下载
- 未知 | 81581次下载 | 10 积分
- 7Keil工具MDK-Arm免费下载
- 0.02 MB | 73810次下载 | 10 积分
- 8LabVIEW 8.6下载
- 未知 | 65988次下载 | 10 积分
电子发烧友App






创作
发文章
发帖
提问
发资料
发视频
上传资料赚积分
评论