ARM設計的uClinux及其應用
摘要:本文討論了基于ARM的嵌入式操作系統(tǒng)uClinux及其應用開發(fā)設計及實現。在32位ARM核的微處理器S3C4510B的硬件平臺上結合嵌入式實時操作uClinux. 完成了系統(tǒng)的硬件設計uClinux的編譯、移植,最后實現了應用程序的添加。
本文引用地址:http://www.ex-cimer.com/article/151207.htm關鍵詞:ARM;實時操作系統(tǒng)uClinux;S3C4510B;ARM7TDMI
1 嵌入式操作系統(tǒng)uClinux及其應用開發(fā)
嵌入式軟件平臺由以下部分組成:系統(tǒng)引導程序、嵌入式操作系統(tǒng)內核、文件系統(tǒng)。系統(tǒng)引導程序通常也稱為BootLoad—er ,代碼量雖少,但是作用非常大,相當于PC上的BOIS,負責將操作系統(tǒng)內核固化到Flash中和系統(tǒng)初始化工作.然后將系統(tǒng)控制權交給操作系統(tǒng)。文件系統(tǒng)是嵌入式軟件平臺占用存儲量最大的一部分,也是與用戶開發(fā)最相關的一部分,它存儲了系統(tǒng)配置文件、系統(tǒng)程序、用戶應用程序和必需的驅動程序。
1.1 BootLoader程序
系統(tǒng)引導程序BootLoader是嵌入式系統(tǒng)加電后執(zhí)行的第一個程序,一般應寫入Flash存儲器中并從起始物理地址0x0開始。在應用實際中BootLoader的功能主要有:① 將uCLinux內核和文件系統(tǒng)燒寫到目標板中;②系統(tǒng)初始化;③系統(tǒng)的內存映射;④加載uClinux內核
1.2 嵌入式操作系統(tǒng)uCiinux
uClinux就是Micro—Control—Linux,是針對控制領域的嵌入式linux操作系統(tǒng),它是從Linux 2.0/2.4內核派生而來,沿襲了主流Linux的絕大部分特性,適合不具備內存管理單元(MMU)的微處理器/微控制器(例如ARM7TDMI),它也是一個完全符合GNU/GPL公約的操作系統(tǒng),完全開放代碼。和主流的Linux相比,uClinux有以下特點:① 簡化了內核加載方式,uClinux的內核可以在Flash上直接運行;② 采用romfs文件系統(tǒng)作為root文件系統(tǒng),相對于一般的ext2使用更少的存儲空間;③ 使用了Flat可執(zhí)行文件格式替代elf格式;④ 使用應用程序庫uClibc替代libc。
1.3 uClinux的編譯與移植
I-3.1 uClinux系統(tǒng)針對硬件的改動
目前.uClinux已被成功移植到多款微處理器芯片上.但由于嵌入式操作系統(tǒng)的運行是與嵌入式系統(tǒng)的硬件密切相關的.而硬件的設計則會因為使用場合的不同而千差萬別,因此,在uClinux內核源代碼中和硬件緊密相關的部分就應該針對特定的硬件作出適當的修改。
本文中所涉及的對uClinux操作系統(tǒng)源代碼的裁剪修改主要有以下幾個地方:
uClinux內核源代碼中對S3C4510B片內特殊功能寄存器以及其他相關硬件信息的定義文件hardware.h首先要定義系統(tǒng)工作的主時鐘頻率,本系統(tǒng)的為50MHz。
/********************************/
define$3C4510b CPU master clock
/********************************/
#define MHz l0o0000
#define fMCLK_ MHz (50 MHz)
#define fMCLK (fMCLK_MHz/MHz)
#define MCLK2 (fMCLK_MHz/21
此外對系統(tǒng)SYSCFG寄存器也進行了相關的設置。如Cache操作使能、寫緩沖使能以及設置了特殊功能寄存器組的基指針等。最后即定義系統(tǒng)存儲器控制寄存器。
1.3.2 編譯uClinux內核
在準備好uClinux的內核源代碼后.利用交叉編譯器就可以編譯生成運行在硬件目標板上的uClinux內核。首先將U—Clinux內核源代~uClinux—Samsung一20031005.tar.gz保存到宿主機的用戶目錄,解壓完畢后。就會在用戶目錄下生成uClinux—Samsung目錄。
以下是編譯uClinux的具體過程:
使用make menuconfig或者make xconfig命令進行內核配置:
輸人命令:make dep
評論