糯米文學吧

位置:首頁 > IT認證 > 嵌入式

嵌入式Linux系統概述

嵌入式2.36W

當下,微型化和專業化成為發展的新趨勢,嵌入式產品成為信息產業的主流。下面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內核的運行。

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