新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > ARM設(shè)計(jì)的uClinux及其應(yīng)用

ARM設(shè)計(jì)的uClinux及其應(yīng)用

作者: 時(shí)間:2010-12-13 來源:網(wǎng)絡(luò) 收藏

摘要:本文討論了基于的嵌入式操作系統(tǒng)開發(fā)及實(shí)現(xiàn)。在32位核的微處理器S3C4510B的硬件平臺(tái)上結(jié)合嵌入式實(shí)時(shí)操作. 完成了系統(tǒng)的硬件的編譯、移植,最后實(shí)現(xiàn)了程序的添加。

本文引用地址:http://butianyuan.cn/article/151207.htm

關(guān)鍵詞:;實(shí)時(shí)操作系統(tǒng)uClinux;S3C4510B;ARM7TDMI

1 嵌入式操作系統(tǒng)uClinux開發(fā)

嵌入式軟件平臺(tái)由以下部分組成:系統(tǒng)引導(dǎo)程序、嵌入式操作系統(tǒng)內(nèi)核、文件系統(tǒng)。系統(tǒng)引導(dǎo)程序通常也稱為BootLoad—er ,代碼量雖少,但是作用非常大,相當(dāng)于PC上的BOIS,負(fù)責(zé)將操作系統(tǒng)內(nèi)核固化到Flash中和系統(tǒng)初始化工作.然后將系統(tǒng)控制權(quán)交給操作系統(tǒng)。文件系統(tǒng)是嵌入式軟件平臺(tái)占用存儲(chǔ)量最大的一部分,也是與用戶開發(fā)最相關(guān)的一部分,它存儲(chǔ)了系統(tǒng)配置文件、系統(tǒng)程序、用戶應(yīng)用程序和必需的驅(qū)動(dòng)程序。

1.1 BootLoader程序

系統(tǒng)引導(dǎo)程序BootLoader是嵌入式系統(tǒng)加電后執(zhí)行的第一個(gè)程序,一般應(yīng)寫入Flash存儲(chǔ)器中并從起始物理地址0x0開始。在應(yīng)用實(shí)際中BootLoader的功能主要有:① 將uCLinux內(nèi)核和文件系統(tǒng)燒寫到目標(biāo)板中;②系統(tǒng)初始化;③系統(tǒng)的內(nèi)存映射;④加載uClinux內(nèi)核

1.2 嵌入式操作系統(tǒng)uCiinux

uClinux就是Micro—Control—Linux,是針對(duì)控制領(lǐng)域的嵌入式linux操作系統(tǒng),它是從Linux 2.0/2.4內(nèi)核派生而來,沿襲了主流Linux的絕大部分特性,適合不具備內(nèi)存管理單元(MMU)的微處理器/微控制器(例如ARM7TDMI),它也是一個(gè)完全符合GNU/GPL公約的操作系統(tǒng),完全開放代碼。和主流的Linux相比,uClinux有以下特點(diǎn):① 簡(jiǎn)化了內(nèi)核加載方式,uClinux的內(nèi)核可以在Flash上直接運(yùn)行;② 采用romfs文件系統(tǒng)作為root文件系統(tǒng),相對(duì)于一般的ext2使用更少的存儲(chǔ)空間;③ 使用了Flat可執(zhí)行文件格式替代elf格式;④ 使用應(yīng)用程序庫uClibc替代libc。

1.3 uClinux的編譯與移植

I-3.1 uClinux系統(tǒng)針對(duì)硬件的改動(dòng)

目前.uClinux已被成功移植到多款微處理器芯片上.但由于嵌入式操作系統(tǒng)的運(yùn)行是與嵌入式系統(tǒng)的硬件密切相關(guān)的.而硬件的則會(huì)因?yàn)槭褂脠?chǎng)合的不同而千差萬別,因此,在uClinux內(nèi)核源代碼中和硬件緊密相關(guān)的部分就應(yīng)該針對(duì)特定的硬件作出適當(dāng)?shù)男薷摹?/p>

本文中所涉及的對(duì)uClinux操作系統(tǒng)源代碼的裁剪修改主要有以下幾個(gè)地方:

uClinux內(nèi)核源代碼中對(duì)S3C4510B片內(nèi)特殊功能寄存器以他相關(guān)硬件信息的定義文件hardware.h首先要定義系統(tǒng)工作的主時(shí)鐘頻率,本系統(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

此外對(duì)系統(tǒng)SYSCFG寄存器也進(jìn)行了相關(guān)的設(shè)置。如Cache操作使能、寫緩沖使能以及設(shè)置了特殊功能寄存器組的基指針等。最后即定義系統(tǒng)存儲(chǔ)器控制寄存器。

1.3.2 編譯uClinux內(nèi)核

在準(zhǔn)備好uClinux的內(nèi)核源代碼后.利用交叉編譯器就可以編譯生成運(yùn)行在硬件目標(biāo)板上的uClinux內(nèi)核。首先將U—Clinux內(nèi)核源代~uClinux—Samsung一20031005.tar.gz保存到宿主機(jī)的用戶目錄,解壓完畢后。就會(huì)在用戶目錄下生成uClinux—Samsung目錄。

以下是編譯uClinux的具體過程:

使用make menuconfig或者make xconfig命令進(jìn)行內(nèi)核配置:

輸人命令:make dep


上一頁 1 2 下一頁

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉