μC/OS-II操作系统在各种处理器上的移植

发布者:ArtisticSoul最新更新时间:2018-01-15 来源: 21IC中国电子网关键字:μC/OS-II  处理器  移植 手机看文章 扫描二维码
随时随地手机看文章

μC/OS-II操作系统是一种抢占式多任务、单内存空间、微小内核的嵌入式操作系统,具有高效紧凑的特点。它执行效率高,占用空间小,可移植性强,实时性能良好且可扩展性强。采用μC/OS-II实时操作系统,可以有效地对任务进行调度;对各任务赋予不同的优先级可以保证任务及时响应;采用实时操作系统,降低了程序的复杂度,方便程序的开发和维护。下面就随嵌入式小编一起来了解一下相关内容吧。


μC/OS-II操作系统是一种抢占式多任务、单内存空间、微小内核的嵌入式操作系统,具有高效紧凑的特点。它执行效率高,占用空间小,可移植性强,实时性能良好且可扩展性强。采用μC/OS-II实时操作系统,可以有效地对任务进行调度;对各任务赋予不同的优先级可以保证任务及时响应;采用实时操作系统,降低了程序的复杂度,方便程序的开发和维护。 μC/OS-11非常适合应用在一些小型的嵌入式产品应用场合,在家用电器、机器人、工业控制、航空航天、军事科技等领域有着广泛的应用。


单片机、ARM、FPGA与μC/OS-II操作系统相结合,实现一些具体功能,是目前嵌入式应用中比较常见的。在这些应用中,基础性的工作就是操作系统的移植。本文选取使用较多的51单片机、LPC2210、NiosII三种处理器进行介绍。


1 μC/OS-II操作系统移植条件


μC/OS-II操作系统的大部分源代码都是用C语言书写的,但仍需使用汇编语言来完成一些和处理器相关的操作,例如读写处理器、寄存器时只能使用汇编语言来实现。因此,将μC/OS-II操作系统移植到目标处理器上,需要从硬件和软件两方面来考虑。


硬件方面,目标处理器需满足以下条件:


①处理器的C编译器能产生可重入代码;


②用C语言可以开/关中断;


③处理器支持中断,并且能够产生定时中断(通常在10~1 000 Hz之间);


④处理器能够支持容纳一定量数据的硬件堆栈;


⑤处理器有将堆栈指针和其他寄存器读出和存储到堆栈或内存中的指令。


软件方面,主要关注的是一些与处理器相关的代码移植,其分布在OS_CPU.H、OS_CPU_C.C和OS_CPU_A.ASM这3个不同的文件中。


2 目标处理器硬件支持


51单片机、LPC2210、NiosII三种处理器在硬件方面均能满足μC/OS-II操作系统的移植要求。


51单片机:选择Keil公司的集成开发环境作为开发工具,因为该集成开发环境的C51编译器能产生可重入型代码,且用C语言就可以开/关中断。同时具有一定数量的堆栈和操作相关寄存器的指令。


LPC2210:采用ARM7微控制器可以满足上述②、④、⑤,而ADS1.2的C编译器可以满足①、③的要求。


NiosII处理器:Nios处理器可以配置成最多支持64个中断,包括外部硬件中断、内部中断以及TRAP(调试中断)。Nios II处理器可以配置使用32位内部定时器,通过用软件控制写入几个控制寄存器的内容来获得定时工作,与一般的定时器工作原理相同,可以产生定时中断。 Nios处理器可以外接存储器。以使用的DE2开发板为例,外接512 KB SRAM资源,可提供足够的数据硬件堆栈。NioslI 8.0 IDE采用GNU编译器,支持C/C++的编译、链接产生重入代码,允许在C语言中嵌入汇编语言。


3 软件移植过程


3.1 OS_CPU.H的实现


OS_CPU.H文件包括了用#define语言定义的与处理器相关的常数、宏以及数据类型。


在上述三种处理器采用的不同编译器中,数据类型的定义是相同的,在此不做具体介绍。


在OS_CPU.H中定义与处理器相关的宏,主要是进入临界区的OS_ENTER_CRITICAL()和退出临界区的OS_EXIT_CRITICAL()。


在Keil编译器中,EA是总中断。


#define OS_ENTER_CRITICAL() EA=0;//关中断


#define OS_EXIT_CRITICAL() EA=1;//开中断


在ADS编译器中定义为软件中断函数,并编写软件中断处理代码实现开/关中断。


_swi(0x00)viod OS_TASK_SW(viod);//任务级任务切换函数


_swi(0x00)viod OS_ENTER_CRITICAL(viod);//关中断


_swi(0x00)viod OS_EXIT_CRITICAL(viod); //开中断


在NiosII 8.0 IDE编译器中:


#define OS_ENTER_CRITICAL() asm(“PFX 8\n WRCTL%g0;”) //关中断


#define OS_EXIT_CRITICAL() asm(“PFX 9\n WRC TL%g 0;”) //开中断


堆栈的增长方向通过设置OS_STK_GROWTH为0或者1来确定。51单片机中只能设置为0,表示堆栈是从下往上增长的。LPC2210中则可以设置成0或者1。NiosII中则只能设置成1,表示堆栈是从上往下增长的。


3.2 OS_CPU_C.C的实现


OS_CPU_C.C中,主要应改写堆栈初始化函数OS-TaskStkIint()。必须根据移植时统一定义的任务堆栈结构进行初始化,其他9个钩子函数只需说明即可。也可根据移植时用户自己的需要,编写相应的操作代码。


以LPC2210为例,堆栈空间从高到低依次存放着PC,LR,R12,R11,…,R1,R0,CPSR,OsEnterSum。每个任务都有独立的 OsEnterSum,在任务切换时保存和恢复各自的OsEnterSum值。各个任务开/关中断的状态可以不同,这样实现了开/关中断的嵌套。


 

关于51单片机和NiosII处理器的这部分移植,请参看参考文献。


3.3 OS-CPU-A.S的实现


这部分需要对处理器的寄存器进行操作,所以必须用汇编语言编写。μC/OS-II移植要求用户编写4个简单的汇编语言函数:OSStartHighRdy()、OSCtxSw()、OS-IntCtxSw()、OSTickISR()。


OSStartHighRdy()的任务是进行任务调度和切换;OSCtxSw()的任务是强制CPU进行寄存器和程序计数器的切换;OSIntCtxSw()的任务是在中断返回时进行任务切换;OSTickISR()是时钟节拍中断服务程序,用来实现时间的延迟和超时功能。


以OSStartHighRdy()任务调度和切换函数为例,介绍3种处理器移植代码。


(1)51单片机


OSStartHighRdy:

 


结 语


51单片机、LPC2210,NiosII三种处理器在目前的嵌入式应用方面有着广阔的市场前景。将μC/OSs-II操作系统移植到这三种以及其他处理器上,能够更好地保证系统运行时的稳定性和实时性,而且该操作系统代码少,易于掌握和移植。


本文所介绍的μC/OS-II操作系统在3种处理器上的移植是笔者在实际学习过程中,进行的梳理和小结,对初学者有一定的参考价值。

关键字:μC/OS-II  处理器  移植 引用地址:μC/OS-II操作系统在各种处理器上的移植

上一篇:通过存储提升处理器核心性能,为IT开源节流
下一篇:向APFS文件系统转进:看iOS 10.3如何为iPhone扩容存储空间

推荐阅读最新更新时间:2024-05-03 02:19

英特尔将推出三款超低电压处理器 或下周发布
英特尔很快将推出基于“Bay Trail”内核的入门级台式电脑处理器。为了准备这个产品发布会,英特尔更新了官方价格表,增加了凌动J1750、J1850和J2850三款新的处理器。这个价格表包含这些芯片的简单介绍,证实了以前泄露的一些技术规格。新的信息是这些芯片的价格范围在72至94美元之间。  以前的报道称,J1750和J1850系统芯片将采用赛扬品牌。J2850将采用奔腾品牌。然而,这个新的价格表显示,这三款处理器都使用英特尔凌动品牌。无论这些处理器使用什么品牌,这些处理器芯片都将以已经发布的“Silvermont”22纳米凌动架构为基础。这个架构在老式凌动处理器使用的同样功率范围内工作应该会显著提高处理器和图形处理器的性能
[嵌入式]
英特尔将推出三款超低电压<font color='red'>处理器</font> 或下周发布
凌力尔特推出用于多核处理器的LTspice IV
凌力尔特 公司(Linear Technology Corporation)推出 LTspice IV ,这是对其免费 SPICE 电路仿真软件LTspice/SwitcherCADIII所做的一次重大更新。LTspice IV具有专为提升现有多内核处理器的利用率而设计的多线程求解器。另外,该软件还内置了新型SPARSE矩阵求解器,这种求解器采用汇编语言,旨在接近现用 FPU (浮点处理单元)的理论浮点计算限值。当采用四核处理器时,LTspice IV可将大中型电路的仿真速度提高 3 倍。 对于SPICE仿真器而言,并行处理是一项长期存在的挑战。LTspice IV运用了专有的方法,这些方法实现了任务的高效并行处理,如果运行单
[工业控制]
MSP432处理器的命名规则
MSP432处理器系列的命名规则: 主要是两个大的系列, E系列(带以太网模块) 和 P系列(带高精度ADC模块) 还可子这么理解,P系列作为MSP430的升级版本(低功耗 + ARM内核); E系列作为 Tiva系列1294的替换版本。
[单片机]
MSP432<font color='red'>处理器</font>的命名规则
高通:“真”八核处理器太愚蠢 完全毫无意义
    众所周知,高通是一个相当成功的芯片厂商,近几年,它通过自家的 Snapdragon 系列处理器成功战胜了 Nvidia 和三星,成为占据市场份额最多的移动芯片厂商。虽然现在几乎所有中高端 Andr​​oid 设备上均搭载高通处理器,但是台湾 MediaTek 联发科理出了一些很好的发展建议,即将自家的芯片打入低端和中档 Android 设备中,针对中国大陆等中低端智能手机需求量较高的国家发货。   为此,近日联发科高调的推出了一款号称世界上首枚“真八核”的处理器 MT6592。很早便推出 Exynos 5 Octa 芯片韩国电子巨头三星或许并不认同,那么高通又怎么看呢?日前,高通资深高级副总裁 Anand Chandrase
[手机便携]
黑莓贴牌新机曝光 骁龙625处理器定位中端
电子网 熟悉智能手机市场的朋友都知道,加拿大黑莓公司自己已经不再生产智能手机了,而是将品牌授权给了中国的TCL,由后者负责生产和设计产品,并且使用黑莓的标志。而在两家公司合作之后推出的第一款产品KEYOne已经上市,而现在似乎第二款产品也呼之欲出。 根据一份最新的报告显示,这款尚未发布的黑莓智能手机将很有可能配备高通骁龙625处理器和FHD分辨率显示屏。而根据这两样配置我们基本可以确定,这是一款定位中端的产品。 目前关于这款黑莓新机的消息还并不算多,但是如果消息属实的话,那么该机将配备5.2英寸1920×1080p分辨率显示屏,不过其它配置目前我们还不得而知。 目前可以确定的是,这款新机将运行最新的Android Noug
[手机便携]
处理器的电源管理方案
如今,电源管理领域的主导厂商在为先进的微处理器供电上面临着巨大挑战。这种挑战的出现源自为微处理器供电是一个不断向前发展的目标。 随着领先微处理器的每一代后续产品对 电流 的需求不断提高,为了使功耗保持在可管理的水平,就需要把工作 电压 降至更低。同时,这些高电流水平带来极大的电流变化率(di/dt),因而使电压调节(即稳压)也变得更加困难得多。了为缓解这一问题,稳压容差指标一直在不断下降。5年前,±250mV还是可接受的;到2005年,任何微处理器供电 电源 的最大稳压容差将不得超过±25mV。 展望2005年的先进微处理器,预计未来电源供电解决方案的电流水平将从目前的60A增至130A,同时电压将下降到1.1
[电源管理]
微<font color='red'>处理器</font>的电源管理方案
ARM 处理器介绍
ARM 的概念 ARM(Advanced RISC Machine),既可以认为是一个公司的名字,也可以认为是对一类微处理器的通称,还可以认为是一种技术的名字。 ARM 公司并不生产芯片也不销售芯片,它只出售芯片技术授权。其合作公司针对不同需求搭配各类硬件部件,比如 UART、SDI、I2C 等,从而设计出不同的 SoC 芯片。 ARM 的应用场景 基于 ARM 的处理器具有高速度、低功耗、价格低等优点被广泛应用于以下领域: 为通信、消费电子、成像设备等产品,提供可运行复杂操作系统的开放应用平台; 在海量存储、汽车电子、工业控制和网络应用等领域,提供实时嵌入式应用; 安全系统,比如信用卡、SIM 卡等。 AR
[单片机]
ARM <font color='red'>处理器</font>介绍
龙芯预告下一代桌面端处理器 3B6600 与 3B7000:8 核,最高 3.5GHz
4 月 25 日消息,第七届关键信息基础设施自主安全创新论坛在北京召开,龙芯中科技术股份有限公司副总裁张戈在会上预告了龙芯下一代桌面端处理器 3B6600 与 3B7000。 他表示,龙芯 CPU 的主要 IP 核均为自主研发,通过自主研发 IP 核大幅提高性价比。国产 CPU 性能与主流 CPU 差距主要在单核而非多核,近十年龙芯 CPU 单核通用性能提升了 20 倍,主频提升 2-3 倍,设计能力提升了 5-10 倍。 下一代龙芯笔记本芯片将集成八个 LA864 核心,3B6600 主频为 3.0GHz,同时集成 LG200 核显,3B7000 主频可达 3.5GHz,具有丰富的 IO 接口,包含 PCIe4、SATA3
[嵌入式]
龙芯预告下一代桌面端<font color='red'>处理器</font> 3B6600 与 3B7000:8 核,最高 3.5GHz
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved