在進行嵌入式系統(tǒng)的開發(fā)時,首先面臨的難題就是如何挑選一個適合自己的開發(fā)平臺,。ARM系列處理器是專門針對嵌入式設(shè)備設(shè)計的,,是目前構(gòu)造嵌入式系統(tǒng)硬件平臺的首選。本文將介紹如何挑選適合實際需要的嵌入式開發(fā)平臺,,如何構(gòu)建實用的開發(fā)環(huán)境,,以及如何邁出嵌入式Linux系統(tǒng)開發(fā)的第一步。
選用指南
在進行嵌入式系統(tǒng)的開發(fā)之前,,首先必須要選擇恰當?shù)拈_發(fā)平臺,。對于經(jīng)驗豐富的開發(fā)者來說,當然可以自己動手組裝硬件,,然后挑選合適的嵌入式Linux系統(tǒng),,將其移植到開發(fā)平臺上。但對于初學(xué)者來說,,可能更好的辦法是購買硬件廠商已經(jīng)做好的開發(fā)板,,將精力集中在應(yīng)用程序的開發(fā)上。
雖然ARM微處理器有多達十幾種的內(nèi)核結(jié)構(gòu),、幾十個芯片生產(chǎn)廠家和眾多的功能組合,,但這也給廣大嵌入式開發(fā)人員在確定方案時帶來了一定的困難??陀^上講,,嵌入式系統(tǒng)一般都是量身打造的。開發(fā)人員必須依據(jù)客戶需求選擇合適的軟硬件平臺,,否則的話要么無法完成所要求的功能,,要么就會造成資源的浪費,挑選出一個合適的方案確實很不容易,。初學(xué)者在做決定時不妨借鑒下面的一些經(jīng)驗,。
ARM公司設(shè)計了一系列的微處理器內(nèi)核結(jié)構(gòu),,以適應(yīng)不同應(yīng)用領(lǐng)域的需要。如果用戶希望使用Windows CE或標準Linux等操作系統(tǒng)來減少軟件開發(fā)時間,,就需要選用ARM720T以上帶有內(nèi)存管理單元(MMU)的ARM芯片,,如ARM720T、ARM920T,、ARM922T,、ARM946T等。但對于ARM7TDMI這類沒有MMU的微處理器來說,,只能運行像UcLinux那樣不需要MMU支持的操作系統(tǒng),,而無法運行標準的Linux。
微處理器的工作頻率在很大程度上決定了其運算能力的高低,。ARM7系列微處理器的典型處理速度為0.9MIPS/MHz,,常見的ARM7芯片的系統(tǒng)主時鐘為20MHz到133MHz;ARM9系列微處理器的典型處理速度為1.1MIPS/MHz,常見的ARM9芯片的系統(tǒng)主時鐘為100MHz到233MHz;ARM10系列微處理器的典型處理速度為1.25MIPS/MHz,,其時鐘頻率則可以高達400MHz,。不同ARM芯片對時鐘的處理各不相同。有些芯片只有一個主時鐘頻率,,而有些芯片的內(nèi)部時鐘控制器則可以分別為ARM核,、USB、UART和DSP等功能部件提供不同頻率,。
大多數(shù)ARM微處理器片內(nèi)存儲器的容量都不大,,需要用戶在設(shè)計嵌入式系統(tǒng)時擴充外部存儲器。
除了ARM微處理器核之外,,幾乎所有的ARM芯片都根據(jù)各自不同的應(yīng)用領(lǐng)域擴展了相應(yīng)的功能模塊,,并集成在芯片之中,從而形成了片內(nèi)外圍電路,,如USB接口,、I/O接口、RTC和LCD控制器等,。嵌入式系統(tǒng)的開發(fā)人員應(yīng)該盡可能運用這些外圍電路,,來實現(xiàn)系統(tǒng)所要求的功能。這樣既可以簡化系統(tǒng)的設(shè)計,,同時又能夠提高系統(tǒng)的可靠性。
為嵌入式系統(tǒng)挑選合適的硬件平臺是一件很復(fù)雜的工作,。以上給出的只是一些基本的原則,,實際應(yīng)用當中還要根據(jù)情況靈活確定。筆者在展開對嵌入式Linux的研究和開發(fā)之時,,經(jīng)過比較和鑒別,,選用了一款基于S3C4510B處理器的開發(fā)板,。它是由三星公司推出的一款具有很高性價比的16/32位RISC微控制器,采用的是ARM公司提供的ARM7TDMI RISC處理器核,。由于它具有高性能,、低功耗等優(yōu)點,因此特別適合于對價格和功耗比較敏感的應(yīng)用場合,,如手持設(shè)備,、網(wǎng)絡(luò)通信和工業(yè)控制等。
S3C4510B整個開發(fā)板的結(jié)構(gòu)大致如圖1所示,。
圖1 基于S3C4510B的開發(fā)板框圖
快速入門
下面就來一睹嵌入式Linux的芳容,。如果用戶的開發(fā)板是由專門的硬件廠商提供的,一般來說都會預(yù)裝一個嵌入式操作系統(tǒng),,如Windows CE,、Palm OS或Linux等。此處介紹的S3C4510B開發(fā)板預(yù)裝的是嵌入式Linux,。我們不妨借用它來感受一下嵌入式Linux的開發(fā)方法,。如果用戶的開發(fā)板是自己組裝的,或者買來時預(yù)裝的是其它的嵌入式操作系統(tǒng),,那么就需要自己動手來重新構(gòu)建系統(tǒng)了,。
正如前面介紹過的,在開發(fā)嵌入式系統(tǒng)時需要用到兩個平臺:一個是開發(fā)平臺(Host),,另一個是目標平臺(Target),。開發(fā)平臺通常用普通的PC機充當。它可以通過串行端口,、并行端口和以太網(wǎng)等方式與目標平臺相連,,從而共同構(gòu)成一個嵌入式系統(tǒng)的基本開發(fā)環(huán)境。對于嵌入式Linux系統(tǒng)來說,,最簡單的開發(fā)環(huán)境只需要用到宿主機,、目標板和串行連接線。它們之間的連接如圖2所示,。
圖2 最簡單的開發(fā)環(huán)境