久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > ARM嵌入式系統的軟件開發方法

ARM嵌入式系統的軟件開發方法

作者: 時間:2012-11-22 來源:網絡 收藏

  從的角度出發,一個嵌入式Linux系統可以分為4個層次。

  (1)引導和加載Linux內核的程序,主要是用戶自己編制的Boot-loader程序。Boot-loader的功能相當于PC的BIOS,在硬件板一加電后就開始運行,它要用串行電纜把PC與硬件開發板連接起來,在PC端通過對程序的編譯,生成一個bin文件,通過簡易的JTAG探頭,把它燒寫到Nand-Flash。

  Boot-loader主要完成硬件初始化,同時設置Linux啟動時所需要的參數,然后跳到Linux內核啟動代碼的第一個字節開始引導Linux。

  (2)Linux內核,為特定的嵌入式硬件系統板定制的內核及內核的啟動參數。為了實現Linux內核的移植,要把編譯生成的Boot-loader,Kernal Image(內核)及Root Filesystem(根文件系統)燒寫到Hash中。在編譯內核的時候,還可以選擇需要支持的網絡協議,所支持的主要協議包括TCP/IP(如TCP、IP、UDP、ICMP、ARP、RARP、FTP、TFTP、BOOTP、DHCP、RIP、OSPF、HTTP等)。由于內核己經支持多種網絡協議,因此通過加載不同的應用程序,就可以實現相應類型的應用。

  (3)和Linux內核配合使用的根文件系統,包括建立根文件系統和建立于Flash設備上的文件系統。將文件系統也燒寫到Hash后,Linux就可以在硬件板上正常運行了。

  (4)用戶應用程序。為了使人機交互界面友好,通常在用戶應用程序和Linux內核層之間移植一個嵌入式圖形用戶界面(Graphic User Interface,GUI)。

  2. 環境構建

  對于Linux下的開發環境,最重要的是一個交叉編譯器,其次是一個標準的C庫。然而編譯一個可靠的交叉編譯器,是非常復雜的工作,有兩個方法可以得到一個交叉編譯器。

  (1)到專門為ARM開發建立的網站下載一個別人編譯好的編譯器,如網站ftp∶//ftp.arm.linux.Org.uk/pub/armlinux/toolcham,這里提供了多個版本的交叉編譯器,它們都是基于glibc的C庫,但glibc的C庫比較龐大,不適合作為小型的開發使用。所以可以選擇第二種方法去構造一個基于更小的C庫μClibc的編譯器。

  (2)編譯一個交叉編譯器,雖然這個工作非常復雜,但Linux平臺下面有全世界的愛好者在共同維護,所以可以找到許多編譯一個交叉編譯器的方法。

  www.μClibc.Org網站中提供了一個基于pClibc的C庫交叉編譯器的構造方法,這個編譯器是針對多平臺的。μClibc是原來μCLinux(一個專門用于沒有MMU的嵌入式芯片使用的Linux版本)開發過程中的一個C庫,現在已經獨立于μLinux項目并且進一步完善。它目前己經可以支持很多的系統平臺,而且它比glibc更加小巧,非常適合作為嵌入式的開發。很多原來基于glibc開發的軟件在μClibc下面也可以很方便地移植,甚至無須做任何改動就可以編譯運行。;μClibc對glibc的大部分函數都做了重寫,并且保持名稱一樣。利用μClibc構建嵌入式Linux系統將比glibc占用更小的空間。

  構建好了環境或交叉編譯器,就可以在PC上編譯ARM運行的程序了,對調試各個硬件程序模塊和移植ARM Linux/GUI系統很有幫助。

linux操作系統文章專題:linux操作系統詳解(linux不再難懂)

linux相關文章:linux教程



上一頁 1 2 下一頁

評論


相關推薦

技術專區

關閉