張占昭
摘要:隨著計算機智能化技術的深入發展,計算機迎來了嵌入式系統時代,其產品也越來越豐富,市場價值不言而喻。作為嵌入式系統的硬件代表產品ARM和軟件產品Linux也得到了前所未有的發展,如何將ARM平臺下Linux嵌入式系統進行移植就顯得尤為重要,本文分析了組成嵌入式系統的軟件Linux和硬件平臺ARM,然后詳細介紹了將Linux系統移植到ARM平臺上的具體方法,旨在將理論研究應用到具體嵌入式產品中。
關鍵詞:Linux;ARM平臺;嵌入式系統
DOI:10.16640/j.cnki.37-1222/t.2018.02.097
1嵌入式系統
嵌入式系統和其他的計算機系統一樣,由計算機硬件和軟件組成,其中計算機硬件最成功的作品就是ARM系列;計算機軟件最優代表性的就是Linux系統。嵌入式系統是后計算機時代的發展必然,它以“私人訂制”式應用為核心的計算機相關技術,滿足特定人群和廠家的個性化需要,所以要求相關硬件和軟件必須可以靈活的增加和減少這個特性,其產品也必須是功能可靠;大小可以靈活改變;成本和功耗越低越好,待機時間越長越好。
ARM最為嵌入式系統最成功的架構硬件平臺,換句話說,現在的嵌入式系統硬件平臺幾乎80%來源于ARM。主流的操作系統均可以應用于ARM硬件平臺,Linux系統也不列外。ARM著名的產品有ARM7、ARM9、ARM9E、ARM10、ARM10E等,并且較以往的硬件平臺,ARM將位數擴展為32位,功能大大加強,也為其架構智能化的軟件系統打下了基礎;與傳統計算機CPU不同的是,ARM將內存和I/O設備統一編址,簡化了指令系統,指令運用更加靈活,效率也就越高;ARM同時使用了大量的寄存器來代替存儲器,大大提升了運行速度,編址方式采用是大端和小端格式相結合的方式,組織形式更加靈活方便。
Linux系統是一個開源的操作系統,源代碼完全公開,每個版本均可在Linux官網下載使用,這個特性滿足了嵌入式系統的核心要求,也就是代碼可以根據需要靈活的裁剪,同時它還可以運行于普通PC機和任何智能終端當中,據統計,在現有的智能設計中,有50%左右的軟件系統平臺使用Linux,內核的配置可以模塊化進行,組合十分靈活;Linux一個重要是編譯方便,普通的簡單代碼可利用Gcc進行編譯,模塊化的代碼可使用Make進行統一編譯,一次編譯,修改代碼后,下次編譯只對修改后的代碼進行編譯,節省了編譯時間,提高了編譯的靈活性,大大提升了代碼開發效率。
Linux操作系統主要由引導程序、內核程序和根文件系統組成。Linux系統的移植性是它的核心優勢,方法是將普通PC計算機上安裝Linux系統(可單獨安裝和虛擬機),然后交叉編譯,然后通過串口或者模擬串口將編譯后的程序下載到宿主機上,調試運行即可,對I/O設備的修改也就更加方便,軟件和硬件的調試更加靈活自如。
2 ARM平臺下Linux嵌入式系統的移植
Linux系統引導程序和普通計算機的引導程序類似,也就是我們熟悉的BIOS,離硬件最近的軟件程序,具體作用是嵌入式系統中軟件和硬件的橋梁,移植具體步驟首先在物理地址00000000H處放置一條無條件轉移指令,跳到系統程序入口處,然后進行硬件初始化操作,包括I/O設備、ARM、存儲器、高速緩存、串口和并口、液晶顯示器驅動等。移植的關鍵是編寫程序即Boodoader,使用它的目的是提高引導程序和硬件初始化時更加安全可靠,并對硬件進行解析,加快移植的效率。
ARM平臺下Linux系統內核的移植就是將程序員開發的程序(實質是內核文件的裁剪)通過通訊方式下載到開發產品上,這就涉及了Linux的文件系統,包括kenel、boot、lib、arch、roach等文件目錄,具體操作如下:第一步配置地址,包括計算機的IP地址、宿主機的IP地址、虛擬機的IP地址等;第二步配置文件的設置,包括XShell通訊文件(WindowsXP系統可以用超級終端)、模擬終端接口、Menuconfig文件等;第三步制作Makefile文件,然后Make編譯調試。
Linux系統的根文件類型主要有ext2、JFFS2、CRAFS、CMPFS等,根文件系統的配置原則是根據系統的需要來選擇,例如內存允許,就選CRAFS。
3結語
本文提出了組成嵌入式系統的硬件和軟件,即ARM和Linux,進而分析了其無可比擬的優越性,提出Linux操作系統主要由引導程序、內核程序和根文件系統組成,并且給出這三類程序具體的移植方法和步驟。