當前位置:才華齋>IT認證>嵌入式>

嵌入式Linux系統概述

嵌入式 閱讀(2.4W)

當下,微型化和專業化成為發展的新趨勢,嵌入式產品成為資訊產業的主流。下面yjbys小編為大家準備了關於嵌入式Linux系統的文章,歡迎閱讀。

嵌入式Linux系統概述

  1 嵌入式Linux的特點

嵌入式系統是以應用為中心,以計算機為基礎,軟硬體可裁剪,適用於系統對功能、可靠性、成本、功耗嚴格要求的專用計算機系統。實時性是嵌入式系統的基本要求,其次,還要求程式碼小,速度快,可靠性高。嵌入式Linux(Embedded Linux)是指對Linux經過裁剪小型化後,可固化在儲存器或微控制器中,應用於特定嵌入式場合的專用Linux作業系統。嵌入式Linux的開發和研究已經成為目前作業系統領域的一個熱點。與其它嵌入式作業系統相比,Linux的特點如下:

第一,Linux系統是層次結構且核心完全開放。Linux是由很多體積小且效能高的微核心系統組成。在核心程式碼完全開放的前提下,不同領域和不同層次的使用者可以根據自己的應用需要方便地對核心進行改造,低成本地設計和開發出滿足自己需要的嵌入式系統。

第二,強大的網路支援功能。Linux誕生於因特網時代並具有Unix的特性,保證了它支援所有標準因特網協議,並且可以利用Linux的網路協議棧將其開發成為嵌入式的TCP/IP網路協議棧。

第三,Linux具備一整套工具鏈,容易自行建立嵌入式系統的開發環境和交叉執行環境,可以跨越嵌入式系統開發中模擬工具的障礙。Linux也符合IEEE POSIX.1標準,使應用程式具有較好的可移植性。

傳統的嵌入式開發的程式除錯和除錯工具是用線上模擬器(ICE)實現的。它通過取代目標板的微處理器,給目標程式提供一個完整的模擬環境,完成監視和除錯程式;但一般價格比較昂貴,只適合做非常底層的除錯。

第四,Linux具有廣泛的硬體支援特性。無論是RISC還是CISC、32位還是64位等各種處理器,Linux都能執行。這意味著嵌入式Linux將具有更廣泛的應用前景。

  2 Linux嵌入式系統開發平臺

2.1 系統軟體操作平臺

作業系統是一種在計算機上執行的軟體。它的主要任務是管理計算機上的系統資源,為使用者提供使用計算機及其外部裝置的介面。它存在的目的是為了管理所有硬體資源,並且提供應用軟體一個合適的操作環境。

Linux作為嵌入式作業系統是完全可行的。因為Linux提供了完成嵌入功能的基本核心和所需要的所有使用者介面,能處理嵌入式任務和使用者介面。將Linux看作是連續的統一體,從一個具有記憶體管理、任務切換和時間服務及其它分拆的微核心到完整的伺服器,支援所有的檔案系統和網路服務。

嵌入式Linux系統需要下面三個基本元素:系統引導工具(用於機器加電後的.系統定位引導)、Linux微核心(記憶體管理、 程式管理)、初始化程序。但如果要它成為完整的作業系統並且繼續保持小型化,還必須加上硬體驅動程式、硬體介面程式和應用程式組。

Linux是基於GNU的C編譯器,作為GNU工具鏈的一部分,與gdb源偵錯程式一起工作的。它提供了開發嵌入式Linux系統的所有軟體工具。

2.2 系統硬體平臺

在選擇硬體時,常由於缺乏完整或精確的資訊而使硬體選擇成為複雜且困難的工作。現在比較流行的硬體平臺有Intel公司的StrongARM 系列,Motorola公司的DragonBall系列,NEC公司的VR系列,Hitachi公司的SH3、SH4系列等等。選定硬體平臺前,首先要確定系統的應用功能和所需要的速度,並制定好外接裝置和介面標準。這樣才能準確地定位所需要的硬體方案,得到價效比最高的系統。

  3 嵌入式Linux系統開發模式

嵌入式系統通常為一個資源受限的系統。直接在嵌入式系統的硬體平臺上編寫軟體比較困難,有時甚至是不可能的。目前,一般採用的辦法是,先在通用計算機上編寫程式,然後,通過交叉編譯,生成目標平臺上可執行的二進位制程式碼格式,最後下載到目標平臺上的特定位置上執行,具體步驟如下。

第一步,建立嵌入式Linux交叉開發環境。目前,常用的交叉開發環境主要有開放和商業兩種型別。開放的交叉開發環境的典型代表是GNU工具鏈,目前已經能夠支援x86、ARM、MIPS、PowerPC等多種處理器。商業的交叉開發環境主要有Metrowerks CodeWarrior、ARM Software Development Toolkit、SDS Cross compiler、WindRiver Tornado、Microsoft Embedded Visual C++等。交叉開發環境是指編譯、連結和除錯嵌入式應用軟體的環境。它與執行嵌入式應用軟體的環境有所不同,通常採用宿主機/目標機模式。

第二步,交叉編譯和連結。在完成嵌入式軟體的編碼之後,就是進行編譯和連結,以生成可執行程式碼。由於開發過程大多是在Intel公司x86系列CPU的通用計算機上進行的,而目標環境的處理器晶片卻大多為ARM、MIPS、PowerPC、DragonBall等系列的微處理器,這就要求在建立好的交叉開發環境中進行交叉編譯和連結。

第三步,交叉除錯。

① 硬體除錯。如果不採用線上模擬器,可以讓CPU直接在其內部實現除錯功能,並通過在開發板上引出的除錯埠,傳送除錯命令和接收除錯資訊,完成除錯過程。目前,ARM公司提供的開發板上使用的則是JTAG除錯埠。

② 軟體除錯。在嵌入式Linux系統中,Linux系統核心除錯,可以先在Linux核心中設定一個除錯樁(debug stub),用作除錯過程中和宿主機之間的通訊伺服器。然後,可以在宿主機中通過偵錯程式的串列埠與除錯樁進行通訊,並通過偵錯程式控制目標機上Linux核心的執行。

第四步,系統測試。整個軟體系統編譯過程,嵌入式系統的硬體一般採用專門的測試儀器進行測試,而軟體則需要有相關的測試技術和測試工具的支援,並要採用特定的測試策略。測試技術指的是軟體測試的專門途徑,以及能夠更加有效地運用這些途徑的特定方法。