基于A(yíng)RM的嵌入式Linux開(kāi)發(fā)平臺
選用指南
在進(jìn)行嵌入式系統的開(kāi)發(fā)之前,首先必須要選擇恰當的開(kāi)發(fā)平臺。對于經(jīng)驗豐富的開(kāi)發(fā)者來(lái)說(shuō),當然可以自己動(dòng)手組裝硬件,然后挑選合適的嵌入式Linux系統,將其移植到開(kāi)發(fā)平臺上。但對于初學(xué)者來(lái)說(shuō),可能更好的辦法是購買(mǎi)硬件廠(chǎng)商已經(jīng)做好的開(kāi)發(fā)板,將精力集中在應用程序的開(kāi)發(fā)上。
雖然ARM微處理器有多達十幾種的內核結構、幾十個(gè)芯片生產(chǎn)廠(chǎng)家和眾多的功能組合,但這也給廣大嵌入式開(kāi)發(fā)人員在確定方案時(shí)帶來(lái)了一定的困難??陀^(guān)上講,嵌入式系統一般都是量身打造的。開(kāi)發(fā)人員必須依據客戶(hù)需求選擇合適的軟硬件平臺,否則的話(huà)要么無(wú)法完成所要求的功能,要么就會(huì )造成資源的浪費,挑選出一個(gè)合適的方案確實(shí)很不容易。初學(xué)者在做決定時(shí)不妨借鑒下面的一些經(jīng)驗。
ARM公司設計了一系列的微處理器內核結構,以適應不同應用領(lǐng)域的需要。如果用戶(hù)希望使用Windows CE或標準Linux等操作系統來(lái)減少軟件開(kāi)發(fā)時(shí)間,就需要選用ARM720T以上帶有內存管理單元(MMU)的ARM芯片,如ARM720T、ARM920T、ARM922T、ARM946T等。但對于A(yíng)RM7TDMI這類(lèi)沒(méi)有MMU的微處理器來(lái)說(shuō),只能運行像UcLinux那樣不需要MMU支持的操作系統,而無(wú)法運行標準的Linux。
微處理器的工作頻率在很大程度上決定了其運算能力的高低。ARM7系列微處理器的典型處理速度為0.9MIPS/MHz,常見(jiàn)的ARM7芯片的系統主時(shí)鐘為20MHz到133MHz;ARM9系列微處理器的典型處理速度為1.1MIPS/MHz,常見(jiàn)的ARM9芯片的系統主時(shí)鐘為100MHz到233MHz;ARM10系列微處理器的典型處理速度為1.25MIPS/MHz,其時(shí)鐘頻率則可以高達400MHz。不同ARM芯片對時(shí)鐘的處理各不相同。有些芯片只有一個(gè)主時(shí)鐘頻率,而有些芯片的內部時(shí)鐘控制器則可以分別為ARM核、USB、UART和DSP等功能部件提供不同頻率。
大多數ARM微處理器片內存儲器的容量都不大,需要用戶(hù)在設計嵌入式系統時(shí)擴充外部存儲器。
除了ARM微處理器核之外,幾乎所有的ARM芯片都根據各自不同的應用領(lǐng)域擴展了相應的功能模塊,并集成在芯片之中,從而形成了片內外圍電路,如USB接口、I/O接口、RTC和LCD控制器等。嵌入式系統的開(kāi)發(fā)人員應該盡可能運用這些外圍電路,來(lái)實(shí)現系統所要求的功能。這樣既可以簡(jiǎn)化系統的設計,同時(shí)又能夠提高系統的可靠性。
為嵌入式系統挑選合適的硬件平臺是一件很復雜的工作。以上給出的只是一些基本的原則,實(shí)際應用當中還要根據情況靈活確定。筆者在展開(kāi)對嵌入式Linux的研究和開(kāi)發(fā)之時(shí),經(jīng)過(guò)比較和鑒別,選用了一款基于S3C4510B處理器的開(kāi)發(fā)板。它是由三星公司推出的一款具有很高性?xún)r(jià)比的16/32位RISC微控制器,采用的是ARM公司提供的ARM7TDMI RISC處理器核。由于它具有高性能、低功耗等優(yōu)點(diǎn),因此特別適合于對價(jià)格和功耗比較敏感的應用場(chǎng)合,如手持設備、網(wǎng)絡(luò )通信和工業(yè)控制等。
S3C4510B整個(gè)開(kāi)發(fā)板的結構大致如圖1所示。
快速入門(mén)
下面就來(lái)一睹嵌入式Linux的芳容。如果用戶(hù)的開(kāi)發(fā)板是由專(zhuān)門(mén)的硬件廠(chǎng)商提供的,一般來(lái)說(shuō)都會(huì )預裝一個(gè)嵌入式操作系統,如Windows CE、Palm OS或Linux等。此處介紹的S3C4510B開(kāi)發(fā)板預裝的是嵌入式Linux。我們不妨借用它來(lái)感受一下嵌入式Linux的開(kāi)發(fā)方法。如果用戶(hù)的開(kāi)發(fā)板是自己組裝的,或者買(mǎi)來(lái)時(shí)預裝的是其它的嵌入式操作系統,那么就需要自己動(dòng)手來(lái)重新構建系統了。
正如前面介紹過(guò)的,在開(kāi)發(fā)嵌入式系統時(shí)需要用到兩個(gè)平臺:一個(gè)是開(kāi)發(fā)平臺(Host),另一個(gè)是目標平臺(Target)。開(kāi)發(fā)平臺通常用普通的PC機充當。它可以通過(guò)串行端口、并行端口和以太網(wǎng)等方式與目標平臺相連,從而共同構成一個(gè)嵌入式系統的基本開(kāi)發(fā)環(huán)境。對于嵌入式Linux系統來(lái)說(shuō),最簡(jiǎn)單的開(kāi)發(fā)環(huán)境只需要用到宿主機、目標板和串行連接線(xiàn)。它們之間的連接如圖2所示。
當硬件連接好之后,接下去該做的就是要在宿主機和目標板之間建立起連接。這需要在宿主機上運行一個(gè)終端仿真程序。Linux下終端仿真程序非Minicom莫屬。Minicom是一個(gè)界面友好,并且容易使用的串口通信程序,利用它可以很方便地對串行端口進(jìn)行監視或控制,是嵌入式Linux開(kāi)發(fā)環(huán)境中非常重要的一個(gè)組成部分。稍微了解串行通信的人都知道,進(jìn)行串行通信時(shí)比較麻煩的是通信參數的設置。好在Minicom提供了非常友好的配置界面,通過(guò)執行下面的命令將進(jìn)入Minicom的配置界面,如圖3所示。
# minicom -s
從選單中選擇Serial port setup項,進(jìn)入串行端口配置界面。然后用戶(hù)根據所用開(kāi)發(fā)板的具體情況,選擇正確的串行設備文件、波特率、數據位、停止位、奇偶校驗位、硬件流控制和軟件流控制參數。在圖4中選擇的參數代表使用串口1(/dev/ttyS0)、波特率為19200bps、數據8位、無(wú)奇偶校驗位、停止1位、無(wú)硬件流控制和無(wú)軟件流控制。
在設置好串行通信的參數之后,重新返回到Minicom的主配置界面;然后選擇Save setup as dfl項保存當前配置值;再選擇Exit from Minicom項退出Minicom。
如果一切正常,下面就可以通過(guò)Minicom來(lái)與開(kāi)發(fā)板建立起正常的通信了。首先執行如下命令再次進(jìn)入Minicom:
# minicom
然后接通開(kāi)發(fā)板上的電源,或者按下開(kāi)發(fā)板上的復位鍵,就可以在Minicom中監視到開(kāi)發(fā)板上嵌入式Linux系統的當 前運行狀態(tài)??梢詫inicom想象成是開(kāi)發(fā)板上嵌入式Linux系統的一個(gè)虛擬終端,也就是說(shuō)在Minicom中輸入的所有命令都將交由開(kāi)發(fā)板上的嵌入式Linux系統來(lái)進(jìn)行處理。
小結
構建嵌入式系統的首要任務(wù)是明確它到底要做些什么。用途決定了嵌入式系統的整個(gè)行為模式和體系結構,同時(shí)也決定了它所應該采用的硬件平臺和軟件平臺。為嵌入式系統挑選目標平臺必須審慎,因為這牽涉到有沒(méi)有好的開(kāi)發(fā)環(huán)境和技術(shù)支持,一定要根據實(shí)際情況來(lái)挑選合適的處理器、合適的開(kāi)發(fā)板和合適的開(kāi)發(fā)環(huán)境。在開(kāi)發(fā)嵌入式系統時(shí)請始終牢記一點(diǎn),用戶(hù)需求永遠是嵌入式系統的“第一推動(dòng)力”。
評論