基于嵌入式Linux和Arm的遠(yuǎn)程監(jiān)控模塊的設(shè)計(jì)
2 系統(tǒng)軟件平臺的構(gòu)建
uclinux經(jīng)過對標(biāo)準(zhǔn)Linux內(nèi)核的改動(dòng),形成了一個(gè)高度優(yōu)化的、代碼緊湊的嵌入式Linux,雖然它的體積很小,但uclinux仍然保留了Linux的大多數(shù)的優(yōu)點(diǎn):穩(wěn)定、良好的移植性、優(yōu)秀的網(wǎng)絡(luò)功能、對各種文件系統(tǒng)完備的支持,以及標(biāo)準(zhǔn)豐富的API,適合遠(yuǎn)程配置模塊的建立。因此,遠(yuǎn)程配置模塊以uclinux為基礎(chǔ),建立系統(tǒng)的軟件平臺。
系統(tǒng)采用GNU的套件arm-elf工具鏈:arm—elf-tools-20030314.sh建立對uclinux進(jìn)行編譯的交叉環(huán)境。將arm-elf-tools-20030314.sh拷貝到根目錄,運(yùn)行安裝:
sh arm-elf-tools-20030314.sh即可對uclinux進(jìn)行編譯和移植了
交叉編譯成功后,在uClinux-dist/目錄下產(chǎn)生images目錄,其中包含的3個(gè)二進(jìn)制文件文件image.ram,image.rom和romfs.img。
3 系統(tǒng)軟件設(shè)計(jì)
系統(tǒng)的軟件是實(shí)現(xiàn)遠(yuǎn)程配置模塊的核心,首先編寫bootloader的過程,以優(yōu)化系統(tǒng)在開發(fā)板上的執(zhí)行,然后實(shí)現(xiàn)了應(yīng)用程序以及設(shè)備驅(qū)動(dòng)程序的開發(fā)。應(yīng)用程序的開發(fā)主要是基于Socket應(yīng)用程序的編寫。在socket的實(shí)現(xiàn)過程中.本系統(tǒng)采用了xml文件配置設(shè)備驅(qū)動(dòng)參數(shù)。
3.1 Bootloader的設(shè)計(jì)
Bootloader的設(shè)計(jì)主要是為了在系統(tǒng)上電復(fù)位之后,將系統(tǒng)程序執(zhí)行跳轉(zhuǎn)到系統(tǒng)內(nèi)核的執(zhí)行地點(diǎn)。針對這個(gè)主要的功能,必須對微處理器的內(nèi)核以及其他部分進(jìn)行初始化以及其它的功能擴(kuò)展,Bootloader它主要完成了以下幾個(gè)過程:
(1)建立中斷向量表
(2)初始化各種處理器模式
(3)引入特殊變量
(4)初始化memory
(5)代碼復(fù)制
完成了系統(tǒng)的硬件初始化過程后,將CPU使用權(quán)交給
了操作系統(tǒng),從而完成了.Bootloader的最終目的。
3.2設(shè)備驅(qū)動(dòng)程序開發(fā)
Linux對設(shè)備的操作Linux系統(tǒng)訪問設(shè)備就像訪問文件
—樣。例如打開設(shè)備使用系統(tǒng)調(diào)用open()
評論