隨著計算機技術、通信技術的飛速發展和3C(計算機、通信、消費電子)的融合,嵌入式系統已經滲透到各個領域。在32位嵌入式微處理器市場上,基于ARM(Advanced RISC Machine)內核的微處理器在市場上處于絕對的領導地位,因此追蹤ARM技術的發展趨勢顯得尤為重要。在嵌入式操作系統的選擇上,Linux一直因其內核精簡、代碼開放、易于移植等特點受到廣大嵌入式系統工程師的青睞。另外,嵌入式系統一旦具備網絡接入功能,其信息處理能力更加強大,因此有必要為嵌入式系統構建Web服務器。本文主要目的是研究基于ARM的嵌入式Linux開發平臺構建,并在此基礎上進行網絡應用程序的開發。
選用指南
在進行嵌入式系統的開發之前,首先必須要選擇恰當的開發平臺。對于經驗豐富的開發者來說,當然可以自己動手組裝硬件,然后挑選合適的嵌入式Linux系統,將其移植到開發平臺上。但對于初學者來說,可能更好的辦法是購買硬件廠商已經做好的開發板,將精力集中在應用程序的開發上。
雖然ARM微處理器有多達十幾種的內核結構、幾十個芯片生產廠家和眾多的功能組合,但這也給廣大嵌入式開發人員在確定方案時帶來了一定的困難。客觀上講,嵌入式系統一般都是量身打造的。開發人員必須依據客戶需求選擇合適的軟硬件平臺,否則的話要么無法完成所要求的功能,要么就會造成資源的浪費,挑選出一個合適的方案確實很不容易。初學者在做決定時不妨借鑒下面的一些經驗。
ARM處理器包含ARM7系列,ARM9系列,ARM9E系列,ARM10E系列,SecurCore系列,Inter的Xscale,Inter的StrongARM ARM11系列 其中,ARM7、ARM9、ARM9E和ARM10為4個通用處理器系列,每一個系列提供一套相對獨特的性能來滿足不同應用領域的需求。SecurCore系列專門為安全要求較高的應用而設計。
ARM7系列微處理器的典型處理速度為0.9MIPS/MHz,ARM9系列微處理器的典型處理速度為1.1MIPS/MHz,常見的ARM7芯片的系統主時鐘為20MHz到133MHz;常見的ARM9芯片的系統主時鐘為100MHz到233MHz;ARM10系列微處理器的典型處理速度為1.25MIPS/MHz,其時鐘頻率則可以高達400MHz。不同ARM芯片對時鐘的處理各不相同。有些芯片只有一個主時鐘頻率,而有些芯片的內部時鐘控制器則可以分別為ARM核、USB、UART和DSP等功能部件提供不同頻率。
大多數ARM微處理器片內存儲器的容量都不大,需要用戶在設計嵌入式系統時擴充外部存儲器。
除了ARM微處理器核之外,幾乎所有的ARM芯片都根據各自不同的應用領域擴展了相應的功能模塊,并集成在芯片之中,從而形成了片內外圍電路,如USB接口、I/O接口、RTC和LCD控制器等。嵌入式系統的開發人員應該盡可能運用這些外圍電路,來實現系統所要求的功能。這樣既可以簡化系統的設計,同時又能夠提高系統的可靠性。
為嵌入式系統挑選合適的硬件平臺是一件很復雜的工作。以上給出的只是一些基本的原則,實際應用當中還要根據情況靈活確定。筆者在展開對嵌入式Linux的研究和開發之時,經過比較和鑒別,選用了一款基于S3C4510B處理器的開發板。它是由三星公司推出的一款具有很高性價比的16/32位RISC微控制器,采用的是ARM公司提供的ARM7TDMI RISC處理器核。由于它具有高性能、低功耗等優點,因此特別適合于對價格和功耗比較敏感的應用場合,如手持設備、網絡通信和工業控制等。
S3C4510B整個開發板的結構大致如圖1所示。
圖1 基于S3C4510B的開發板框圖
快速入門
下面就來一睹嵌入式Linux的芳容。如果用戶的開發板是由專門的硬件廠商提供的,一般來說都會預裝一個嵌入式操作系統,如Windows CE、Palm OS或Linux等。此處介紹的S3C4510B開發板預裝的是嵌入式Linux。我們不妨借用它來感受一下嵌入式Linux的開發方法。如果用戶的開發板是自己組裝的,或者買來時預裝的是其它的嵌入式操作系統,那么就需要自己動手來重新構建系統了。
正如前面介紹過的,在開發嵌入式系統時需要用到兩個平臺:一個是開發平臺(Host),另一個是目標平臺(Target)。開發平臺通常用普通的PC機充當。它可以通過串行端口、并行端口和以太網等方式與目標平臺相連,從而共同構成一個嵌入式系統的基本開發環境。對于嵌入式Linux系統來說,最簡單的開發環境只需要用到宿主機、目標板和串行連接線。它們之間的連接如圖2所示。
圖2 最簡單的開發環境