1、中文 3920 字 毕业设计翻译文献 文献题目: Construction of Embedded System Platform which Based on C/OS- and ARM7 Kernel Microprocessor 构建基于 C/ OS- 和 ARM7 内核微处理器的嵌入式系统平台 学生姓名: 学 院 : 信息与通信工程学院 专 业: 电子信息工程 指导教师: 2015 年 5 月 10 日 构建基于 C/ OS- 和 ARM7 内核微处理器的嵌入式系统平台 Yujun Bao Xiaoyan Jiang 摘 要 今天,嵌入式系统被广泛地应用于各行各业。引入嵌入式操作系统在
2、嵌入式发展中已经是一种趋势。嵌入式操作系统能够适用于不同的系统硬件,并能够显著的减少开发费用,缩短研究周期。 C/ OS- 是一款优秀的开源,轻型内核,占用少量资源并且在实时性方面有着高性能的嵌入式操作系统。 C/ OS- 适用于越来 越多的 32 位 ARM7 核微处理器,本文介绍了基于 ARM7 微处理器的 C/ OS- 嵌入式操作系统的移植方法。最终实现了构建基于 C/ OS- 和 ARM7 内核处理器的嵌入式开发平台。该平台能有效的简化软件程序开发流程,并缩短工程研究的周期和显著提高系统的执行效率。 关键字:嵌入式系统;嵌入式操作系统; ARM7 内核; C/ OS- 一、 介绍 所谓
3、的操作系统移植是一个实时操作系统内核可以在运行在其他微处理器上。移植部分对于不同的 CPU 具有对应的不同的代码。大多数 C / OS- 代码是用 C 编程语言编写的 ,这对于 移植 C / OS - 是非常方便的。但根据不同的微处理器 ,用户仍然需要使用汇编语言编写一些有关不同微处理器的硬件的程序。这是因为当 C / OS- 读或写寄存器时 ,它只依赖于汇编语言。 因为 C / OS - 操作系统的要求 ,有三个文件需要当 C / OS- 移植到一个特定的微处理器。整个移植工作主要围绕创建这三个文件。这些文件显示如下: 1、在 C 语言中的头文件 OS_CPU 中,一些与编译器无关的数据 类
4、型需要定义 OS_CPU 中。 这些数据类型包括使用的堆栈数据类型和堆栈的增长方向。一些与 ARM7 内核相关的软件中断也被定义在该文件中。 2、另一个 OS_CPU_C.C 是一个 C 源文件程序。该文件主要包括 C / OS- 的任务堆栈的初始化函数和一些被 C / OS- 操作系统调用的用户函数。 3、最后一个 OS_CPU_A.S 文件是一个汇编程序源文件。这是一个时钟中断服务函数在运行的时候,也包含了一个用于引起中断的任务切换函数,并且也具有总是运行最高优先级的任务当 C / OS- 系统首次进入多任务环境时。 二、 创建 OS_CPU.H 文件 A、定义与编译器有关的数据类型 因为
5、不同的微处理器有不同 的字长度 ,所以 C / OS- 的移植包含一系列的数据类型的定义 ,这使移植能够实现。尤其是在 C 语言中使用的数据类型 ,例如短型、整型、长型等等 ,这些数据类型不能直接用于 C / OS- 。因为这些数据类型与编译器类型有关,它们不能被移植。所以这些数据类型都定义为整型数据结构,在许多情况下 ,他们是可移植的。 B、系统软中断函数的定义 中断是一种硬件机制 ,但在 C / OS - 操作系统 ,一些重要的任务函数的实现应该取决于中断级的代码。所以 ,这种情况下, C / OS- 操作系统需要一条预处理器指令来模拟中断。它 类似于一个硬件中断 ,所以它被称为软中断。大
6、多数微处理器的内核可以提供这种类型的软中断指令。在 ARM7 内核 ,它是 “SWI”。 为了使底层接口函数是独立的处理器状态并且底层任务函数不需要知道调用函数的准确的地址当任务被调用时。 SWI 指令应该用作底层接口。并且不同的函数能够通过不同的软件中断函数编号的方法进行区分。 ADS1.2 编译器总是使用“_swi”来声明一个不存在的函数。而一旦不存在的函数被调用时 ,一条 SWI 的指令应该插入调用函数并指定函数编号的位置。这里显示一些在 C / OS- 中重要功能的软中断函数 _swi(0x00) void OS_TASK_SW(void); /在任务间切换功能 _swi(0x01)
7、void _OSStartHighRdy(void); /首先运行最高优先级任务 _swi(0x02) void OS_ENTER_CRITICAL(void); /关中断 _swi(0x03) void OS_EXIT_CRITICAL(void); /开中断 _swi(0x80) void ChangeToSYSMode(void); /切换到系统模式 这些函数的具体代码在文件 OS_CPU_C.C 和 OS_CPU_A.S 中。根据 C / OS-的要求 ,所有在应用系统中的 C 文件必须包括文件 INCLUDES.H。所以正常的做法是使 INCLUDES.H 文件包含 OS_CPU.H 文件。 三、创建 OS_CPU_C.C 文件