摘要:嵌入式OS-mC/OS-II是為數(shù)不多的幾個源代碼公開的嵌入式操作系統(tǒng)之一,對它的學習、分析能夠給我們帶來很多概念上的了解和深入。另外mC/OS-II可以移植到很多CPU芯片,本文介紹了把mC/OS-II移值到TI公司浮點DSP芯片的過程的一些細節(jié)問題。關鍵詞:嵌入式操作系統(tǒng);mC/OS-II;DSP;移植嵌入式操作系統(tǒng)mC/OSII是一個可移植可裁剪、占先式多任務OS。大部分源代碼用ANSIC語言編寫,只有很少的一部分用匯編語言編寫,使移植工作簡化。下面介
&nb
sp; 摘 要: 嵌入式OS-
mC/OS-II是為數(shù)不多的幾個源代碼公開的嵌入式操作系統(tǒng)之一,對它的學習、分析能夠給我們帶來很多概念上的了解和深入。另外mC/OS-II可以移植到很多
CPU芯片,本文介紹了把mC/OS-II移值到
TI公司浮點
DSP芯片的過程的一些細節(jié)問題。
關鍵詞: 嵌入式操作系統(tǒng);mC/OS-II; DSP;移植
嵌入式操作系統(tǒng)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字節(jié)RAM、2個
DMA通道、1個串口、2個
定時器、固化引導程序,另外還有如下的通用寄存器:8個
40bit的寄存器(R0~R7),可以用來存放32bit的整數(shù),同時也可以用來存放40bit的擴展精度的浮點數(shù);8個32bit的輔助寄存器(AR0~AR7),它們的主要作用是存儲地址、參與各種模式的尋址等,當然也可以作為一般的寄存器來使用;狀態(tài)寄存器
ST(含全局中斷使能位)、堆棧寄存器SP、中斷標志寄存器IF、中斷使能寄存器IE、I/O標志寄存器
IOF、數(shù)據(jù)頁指針寄存器DP(每頁容量為64K)、索引寄存器IR0、
IR1、塊寄存器BK、重復執(zhí)行寄存器RS(塊起始地址)、RE(塊終止地址)、RC(重復次數(shù))。
要實現(xiàn)mC/OS-II向TMS320C32的移植,需要C3x的C編譯器支持,否則無從下手。我們使用的是TI公司的C編譯器Coder Composer V4.10.36。這個C編譯器允許嵌入行匯編,另外還具有強大的優(yōu)化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位無符號數(shù)*/
typedef signed char INT8S; /* 8位有符號數(shù)*/
typedef unsigned int INT
16U;/* 16位無符號數(shù)*/