嵌入式系統(tǒng)的設(shè)計(jì)可以分為硬件平臺(tái)設(shè)計(jì),軟件平臺(tái)設(shè)計(jì)。通討軟件在硬件系統(tǒng)的運(yùn)行來(lái)驗(yàn)證硬件系統(tǒng)功能和設(shè)計(jì)的正確性。操作系統(tǒng)的移植和驅(qū)動(dòng)程序測(cè)試需要應(yīng)用程序配合。而應(yīng)用程序的測(cè)試則按照軟件工程理論測(cè)試的方法來(lái)進(jìn)行。
1硬件平臺(tái)設(shè)計(jì)
系統(tǒng)選用$3c2410處理器芯片作為MCU。本系統(tǒng)以S3c2410處理器芯片為核心,配備N(xiāo)OR FlashSDRAM、USB接口、串口轉(zhuǎn)換等芯片完成系統(tǒng)所要求的核心模塊。
2軟件平臺(tái)設(shè)計(jì)
Linux以其內(nèi)核穩(wěn)定、功能強(qiáng)大、支持多種硬件平臺(tái)、應(yīng)用軟件繁多、兼容性好、低廉的價(jià)格以及眾多開(kāi)發(fā)人員的維護(hù)成為嵌入式操作系統(tǒng)的首選。同時(shí)硬件平臺(tái)眾多的存儲(chǔ)器資源為運(yùn)行Linux提供了強(qiáng)大的物質(zhì)基礎(chǔ)。軟件亞臺(tái)一般包括如下四部分:
1.BootLoader引導(dǎo)程序。能實(shí)現(xiàn)系統(tǒng)的快速引導(dǎo),首先完成對(duì)CPU環(huán)境的最初初始化,如:芯片引腳、外部控制器、輸入輸出設(shè)備等,然后負(fù)責(zé)將Linux內(nèi)核加載到內(nèi)存,將控制權(quán)交給內(nèi)核初始化程序。具體工作包括:尋找或?qū)⒅付ǖ膬?nèi)核映像文件解壓至內(nèi)存,然后解壓文件系統(tǒng),將控制權(quán)移交給內(nèi)核。
2.Linux內(nèi)核。Linux是一個(gè)單一內(nèi)核操作系統(tǒng),但可以動(dòng)態(tài)裝入和卸載內(nèi)核中的部分源代碼。Linux內(nèi)核由內(nèi)存管理、進(jìn)程管理、定時(shí)器中斷管理、模塊管理、虛擬文件系統(tǒng)、接口文件系統(tǒng)、設(shè)備驅(qū)動(dòng)程序、進(jìn)程間通信、網(wǎng)絡(luò)管理、系統(tǒng)啟動(dòng)等構(gòu)成。
3.設(shè)備驅(qū)動(dòng)程序。設(shè)備驅(qū)動(dòng)程序是內(nèi)核的一部分,它像內(nèi)核中其它代碼一樣運(yùn)行在內(nèi)核模式。Linux設(shè)備驅(qū)動(dòng)程序的主要功能有:對(duì)設(shè)備進(jìn)行初始化:使設(shè)備投入運(yùn)行和退出服務(wù);從設(shè)備接收數(shù)據(jù)并將它們送回內(nèi)核:將數(shù)據(jù)從內(nèi)核送到設(shè)備:檢測(cè)和處理設(shè)備出現(xiàn)的錯(cuò)誤
4應(yīng)用程序。嵌入式應(yīng)用軟件是針對(duì)特定應(yīng)用領(lǐng)域,基于某一固定的硬件平臺(tái),用來(lái)達(dá)到用戶預(yù)期目標(biāo)的計(jì)算機(jī)軟件,由于用戶任務(wù)可能有時(shí)間和精度上的要求,因此有些嵌入式應(yīng)用軟件需要特定嵌入式操作系統(tǒng)的支持。嵌入式應(yīng)用軟件和普通應(yīng)用軟件有一定的區(qū)別,它不僅要求其準(zhǔn)確性、安全性和穩(wěn)定性等方面能夠滿足實(shí)際應(yīng)用的需要,而且還要盡可能地進(jìn)行優(yōu)化,以減少對(duì)系統(tǒng)資源的消耗,降低硬件成本。
嵌入式系統(tǒng)開(kāi)發(fā)和以前從事的開(kāi)發(fā)工作實(shí)質(zhì)上并無(wú)區(qū)別,唯一改變的是每個(gè)硬件平臺(tái)都是獨(dú)特的,這一個(gè)不同點(diǎn)導(dǎo)致了許多附加的開(kāi)發(fā)復(fù)雜性,因而,在嵌入式開(kāi)發(fā)過(guò)程中要格外注意軟件創(chuàng)建過(guò)程。