摘要:嵌入式OS-mC/OS-II是为数不多的几个源代码公开的嵌入式操作系统之一,对它的学习、分析能够给我们带来很多概念上的了解和深入。另外mC/OS-II可以移植到很多CPU芯片,本文介绍了把mC/OS-II移值到TI公司浮点DSP芯片的过程的一些细节问题。关键词:嵌入式操作系统;mC/OS-II;DSP;移植嵌入式操作系统mC/OSII是一个可移植可裁剪、占先式多任务OS。大部分源代码用ANSIC语言编写,只有很少的一部分用汇编语言编写,使移植工作简化。下面介
&nb
sp; 摘 要: 嵌入式OS-
mC/OS-II是为数不多的几个源代码公开的嵌入式操作系统之一,对它的学习、分析能够给我们带来很多概念上的了解和深入。另外mC/OS-II可以移植到很多
CPU芯片,本文介绍了把mC/OS-II移值到
TI公司浮点
DSP芯片的过程的一些细节问题。
关键词: 嵌入式操作系统;mC/OS-II; DSP;移植
嵌入式操作系统mC/OS II是一个可移植可裁剪、占先式多任务OS。大部分源代码用ANSI C语言编写,只有很少的一部分用汇编语言编写,使移植工作简化。
下面介绍如何将mC/OS-II移植到TI的浮点DSP芯片TMS320
C32上。
TMS320C32 DSP芯片介绍
TMS320C3x是TI公司的浮点DSP芯片。TMS320C32是其中的一款,能工作在60MHz的时钟频率下,指令运行速度达到60 MFLOPS,是性价比很高的浮点处理器,有着广泛的应用。
TMS320C32芯片的组成:浮点CPU、
512字节RAM、2个
DMA通道、1个串口、2个
定时器、固化引导程序,另外还有如下的通用寄存器:8个
40bit的寄存器(R0~R7),可以用来存放32bit的整数,同时也可以用来存放40bit的扩展精度的浮点数;8个32bit的辅助寄存器(AR0~AR7),它们的主要作用是存储地址、参与各种模式的寻址等,当然也可以作为一般的寄存器来使用;状态寄存器
ST(含全局中断使能位)、堆栈寄存器SP、中断标志寄存器IF、中断使能寄存器IE、I/O标志寄存器
IOF、数据页指针寄存器DP(每页容量为64K)、索引寄存器IR0、
IR1、块寄存器BK、重复执行寄存器RS(块起始地址)、RE(块终止地址)、RC(重复次数)。
要实现mC/OS-II向TMS320C32的移植,需要C3x的C编译器支持,否则无从下手。我们使用的是TI公司的C编译器Coder Composer V4.10.36。这个C编译器允许嵌入行汇编,另外还具有强大的优化C编译的功能。
移植中所需修改的文件
和CPU相关的文件主要有四个:C语言文件OS_CPU_C32.C、INCLUDES.H头文件、头文件OS_CPU_C32.H和汇编文件OS_CPU_C32.ASM,我们的主要移植工作就是针对这些文件做一些变动。
OS_CPU_C32.H
OS_CPU_C32.H包括typedef、#define定义的CPU相关信息如下:
#ifndef __OS_CPU_H__
#define __OS_CPU_H__
typedef unsigned char BOOLEAN;/*布尔量*/
typedef unsigned char INT8U;/* 8位无符号数*/
typedef signed char INT8S; /* 8位有符号数*/
typedef unsigned int INT
16U;/* 16位无符号数*/