你好,欢迎来到电脑编程技巧与维护杂志社! 杂志社简介广告服务读者反馈编程社区  
合订本订阅
 
 
您的位置:文章管理 / 本期精品文章
嵌入式UC/OS-II内核在ARM上的移植与实现
 

杨德芳

摘 要  本文描述了嵌入式操作系统UC/OS-IIARM上实现移植的过程。介绍了操作系统的移植原理和方法,并且给出了部分移植函数的代码,实现了UC/OS-IIARM上的移植。

关键词  ARM体系结构,移植,时钟中断,任务级切换

一、引言

随着技术的进步,嵌入式系统设计及其应用在近年来,对人类生活产生了巨大影响,并将继续改变人们未来的生活方式。研究嵌入式系统,一个必不可少的基础工作就是实现嵌入式操作系统在相关处理器平台上的移植。本文基于目前应用非常广泛的ARM处理器体系结构,对uC/OS-II嵌入式实时操作系统内核的移植工作做了分析和介绍。

所谓移植,就是使一个实时内核在某个微处理器上运行。UC/OS-II主要是C语言编写的,但是还需要用C语言和汇编语言写出一些与具体处理器相关的代码,因为访问处理器的某些程序和语言必须用汇编语言来进行编写。移植可以分为两部分,一部分与ARM 有关,另一部分与移植原理有关。

二、UC/OS_II文件的结构及硬件

实际上UC/OS-II可以简单地看作是一个多任务调度器,在这个任务调度器上完善地添加了与多任务操作系统相关的一些系统服务,如信号量、邮箱等。其90%的代码是用C语言写的,可以直接移植到有C语言编译器的处理器上。移植工作主要都集中在多任务切换的实现上,因为这部分代码用来保存和恢复CPU现场(即写/读相关寄存器),不能用C语言,只能使用汇编语言完成。UC/OS-II的全部源代码量大约是60007000行,共15个文件。将 UC/OS-II 移植到ARM处理器上,需要修改三个与ARM体系结构相关的文件,代码量大约是500行,这三个文件是OS_CPU_C.COS_CPU_C.H以及OS_CPU_A.S UC/OS_II文件的结构及硬件如图1 所示。

应用程序(用户代码)

与处理器类型无关的代码

OS_CORE.C

OS_MBOX.C

OS_MUTEX.C

OS_SEM.C

OS_TIME.C

UCOS_II.C

OS_FLAG.C

OS_TASK.C

UCOS_II.H

OS_Q.C

UC/OS的配置文件,与应用程序有关

 

OS_CFG.H

INCLUDE.H

移植UC/OS-II与处理器有关的代码

OS_CPU.H

OS_CPU_A.ASM

OS_CPU_C.C

CPU

定时器

1 UC/OS_II文件的结构及硬件

三、移植过程

1.编写OS_CPU.H

UC/OS-II不使用C语言中的short\int\long等数据类型的定义,因为它与处理器类型有关,隐含着不可移植性。代之以移植性强的整数数据类型,这样直观又可移植,在ADS编译器上其数据类型定义的核心代码如下:

Typedef unsigned char BOOLEAN;

Typedef unsigned char INT8U;

Typedef unsigned char INT8S;

Typedef unsigned short INT16U;

Typedef signed short INT16S;

Typedef unsigned int INT32U;

Typedef signed int INT32S;

Typedef float  FP32;

Typedef  double  FP64;

Typedef  INT32U  OS_STK;

  推荐精品文章

·2024年6月目录 
·2024年5月目录 
·2024年4月目录 
·2024年3月目录 
·2024年2月目录 
·2024年1月目录
·2023年12月目录
·2023年11月目录
·2023年10月目录
·2023年9月目录 
·2023年8月目录 
·2023年7月目录
·2023年6月目录 
·2023年5月目录

  联系方式
TEL:010-82561037
Fax: 010-82561614
QQ: 100164630
Mail:gaojian@comprg.com.cn

  友情链接
 
Copyright 2001-2010, www.comprg.com.cn, All Rights Reserved
京ICP备14022230号-1,电话/传真:010-82561037 82561614 ,Mail:gaojian@comprg.com.cn
地址:北京市海淀区远大路20号宝蓝大厦E座704,邮编:100089