- 相關(guān)推薦
嵌入式Linux系統(tǒng)概述
當(dāng)下,微型化和專(zhuān)業(yè)化成為發(fā)展的新趨勢(shì),嵌入式產(chǎn)品成為信息產(chǎn)業(yè)的主流。下面yjbys小編為大家準(zhǔn)備了關(guān)于嵌入式Linux系統(tǒng)的文章,歡迎閱讀。
1 嵌入式Linux的特點(diǎn)
嵌入式系統(tǒng)是以應(yīng)用為中心,以計(jì)算機(jī)為基礎(chǔ),軟硬件可裁剪,適用于系統(tǒng)對(duì)功能、可靠性、成本、功耗嚴(yán)格要求的專(zhuān)用計(jì)算機(jī)系統(tǒng)。實(shí)時(shí)性是嵌入式系統(tǒng)的基本要求,其次,還要求代碼小,速度快,可靠性高。嵌入式Linux(Embedded Linux)是指對(duì)Linux經(jīng)過(guò)裁剪小型化后,可固化在存儲(chǔ)器或單片機(jī)中,應(yīng)用于特定嵌入式場(chǎng)合的專(zhuān)用Linux操作系統(tǒng)。嵌入式Linux的開(kāi)發(fā)和研究已經(jīng)成為目前操作系統(tǒng)領(lǐng)域的一個(gè)熱點(diǎn)。與其它嵌入式操作系統(tǒng)相比,Linux的特點(diǎn)如下:
第一,Linux系統(tǒng)是層次結(jié)構(gòu)且內(nèi)核完全開(kāi)放。Linux是由很多體積小且性能高的微內(nèi)核系統(tǒng)組成。在內(nèi)核代碼完全開(kāi)放的前提下,不同領(lǐng)域和不同層次的用戶(hù)可以根據(jù)自己的應(yīng)用需要方便地對(duì)內(nèi)核進(jìn)行改造,低成本地設(shè)計(jì)和開(kāi)發(fā)出滿足自己需要的嵌入式系統(tǒng)。
第二,強(qiáng)大的網(wǎng)絡(luò)支持功能。Linux誕生于因特網(wǎng)時(shí)代并具有Unix的特性,保證了它支持所有標(biāo)準(zhǔn)因特網(wǎng)協(xié)議,并且可以利用Linux的網(wǎng)絡(luò)協(xié)議棧將其開(kāi)發(fā)成為嵌入式的TCP/IP網(wǎng)絡(luò)協(xié)議棧。
第三,Linux具備一整套工具鏈,容易自行建立嵌入式系統(tǒng)的開(kāi)發(fā)環(huán)境和交叉運(yùn)行環(huán)境,可以跨越嵌入式系統(tǒng)開(kāi)發(fā)中仿真工具的障礙。Linux也符合IEEE POSIX.1標(biāo)準(zhǔn),使應(yīng)用程序具有較好的可移植性。
傳統(tǒng)的嵌入式開(kāi)發(fā)的程序調(diào)試和調(diào)試工具是用在線仿真器(ICE)實(shí)現(xiàn)的。它通過(guò)取代目標(biāo)板的微處理器,給目標(biāo)程序提供一個(gè)完整的仿真環(huán)境,完成監(jiān)視和調(diào)試程序;但一般價(jià)格比較昂貴,只適合做非常底層的調(diào)試。
第四,Linux具有廣泛的硬件支持特性。無(wú)論是RISC還是CISC、32位還是64位等各種處理器,Linux都能運(yùn)行。這意味著嵌入式Linux將具有更廣泛的應(yīng)用前景。
2 Linux嵌入式系統(tǒng)開(kāi)發(fā)平臺(tái)
2.1 系統(tǒng)軟件操作平臺(tái)
操作系統(tǒng)是一種在計(jì)算機(jī)上運(yùn)行的軟件。它的主要任務(wù)是管理計(jì)算機(jī)上的系統(tǒng)資源,為用戶(hù)提供使用計(jì)算機(jī)及其外部設(shè)備的接口。它存在的目的是為了管理所有硬件資源,并且提供應(yīng)用軟件一個(gè)合適的操作環(huán)境。
Linux作為嵌入式操作系統(tǒng)是完全可行的。因?yàn)長(zhǎng)inux提供了完成嵌入功能的基本內(nèi)核和所需要的所有用戶(hù)界面,能處理嵌入式任務(wù)和用戶(hù)界面。將Linux看作是連續(xù)的統(tǒng)一體,從一個(gè)具有內(nèi)存管理、任務(wù)切換和時(shí)間服務(wù)及其它分拆的微內(nèi)核到完整的服務(wù)器,支持所有的文件系統(tǒng)和網(wǎng)絡(luò)服務(wù)。
嵌入式Linux系統(tǒng)需要下面三個(gè)基本元素:系統(tǒng)引導(dǎo)工具(用于機(jī)器加電后的系統(tǒng)定位引導(dǎo))、Linux微內(nèi)核(內(nèi)存管理、 程序管理)、初始化進(jìn)程。但如果要它成為完整的操作系統(tǒng)并且繼續(xù)保持小型化,還必須加上硬件驅(qū)動(dòng)程序、硬件接口程序和應(yīng)用程序組。
Linux是基于GNU的C編譯器,作為GNU工具鏈的一部分,與gdb源調(diào)試器一起工作的。它提供了開(kāi)發(fā)嵌入式Linux系統(tǒng)的所有軟件工具。
2.2 系統(tǒng)硬件平臺(tái)
在選擇硬件時(shí),常由于缺乏完整或精確的信息而使硬件選擇成為復(fù)雜且困難的工作。現(xiàn)在比較流行的硬件平臺(tái)有Intel公司的StrongARM 系列,Motorola公司的DragonBall系列,NEC公司的VR系列,Hitachi公司的SH3、SH4系列等等。選定硬件平臺(tái)前,首先要確定系統(tǒng)的應(yīng)用功能和所需要的速度,并制定好外接設(shè)備和接口標(biāo)準(zhǔn)。這樣才能準(zhǔn)確地定位所需要的硬件方案,得到性?xún)r(jià)比最高的系統(tǒng)。
3 嵌入式Linux系統(tǒng)開(kāi)發(fā)模式
嵌入式系統(tǒng)通常為一個(gè)資源受限的系統(tǒng)。直接在嵌入式系統(tǒng)的硬件平臺(tái)上編寫(xiě)軟件比較困難,有時(shí)甚至是不可能的。目前,一般采用的辦法是,先在通用計(jì)算機(jī)上編寫(xiě)程序,然后,通過(guò)交叉編譯,生成目標(biāo)平臺(tái)上可運(yùn)行的二進(jìn)制代碼格式,最后下載到目標(biāo)平臺(tái)上的特定位置上運(yùn)行,具體步驟如下。
第一步,建立嵌入式Linux交叉開(kāi)發(fā)環(huán)境。目前,常用的交叉開(kāi)發(fā)環(huán)境主要有開(kāi)放和商業(yè)兩種類(lèi)型。開(kāi)放的交叉開(kāi)發(fā)環(huán)境的典型代表是GNU工具鏈,目前已經(jīng)能夠支持x86、ARM、MIPS、PowerPC等多種處理器。商業(yè)的交叉開(kāi)發(fā)環(huán)境主要有Metrowerks CodeWarrior、ARM Software Development Toolkit、SDS Cross compiler、WindRiver Tornado、Microsoft Embedded Visual C++等。交叉開(kāi)發(fā)環(huán)境是指編譯、鏈接和調(diào)試嵌入式應(yīng)用軟件的環(huán)境。它與運(yùn)行嵌入式應(yīng)用軟件的環(huán)境有所不同,通常采用宿主機(jī)/目標(biāo)機(jī)模式。
第二步,交叉編譯和鏈接。在完成嵌入式軟件的編碼之后,就是進(jìn)行編譯和鏈接,以生成可執(zhí)行代碼。由于開(kāi)發(fā)過(guò)程大多是在Intel公司x86系列CPU的通用計(jì)算機(jī)上進(jìn)行的,而目標(biāo)環(huán)境的處理器芯片卻大多為ARM、MIPS、PowerPC、DragonBall等系列的微處理器,這就要求在建立好的交叉開(kāi)發(fā)環(huán)境中進(jìn)行交叉編譯和鏈接。
第三步,交叉調(diào)試。
、 硬件調(diào)試。如果不采用在線仿真器,可以讓CPU直接在其內(nèi)部實(shí)現(xiàn)調(diào)試功能,并通過(guò)在開(kāi)發(fā)板上引出的調(diào)試端口,發(fā)送調(diào)試命令和接收調(diào)試信息,完成調(diào)試過(guò)程。目前,ARM公司提供的開(kāi)發(fā)板上使用的則是JTAG調(diào)試端口。
、 軟件調(diào)試。在嵌入式Linux系統(tǒng)中,Linux系統(tǒng)內(nèi)核調(diào)試,可以先在Linux內(nèi)核中設(shè)置一個(gè)調(diào)試樁(debug stub),用作調(diào)試過(guò)程中和宿主機(jī)之間的通信服務(wù)器。然后,可以在宿主機(jī)中通過(guò)調(diào)試器的串口與調(diào)試樁進(jìn)行通信,并通過(guò)調(diào)試器控制目標(biāo)機(jī)上Linux內(nèi)核的運(yùn)行。
第四步,系統(tǒng)測(cè)試。整個(gè)軟件系統(tǒng)編譯過(guò)程,嵌入式系統(tǒng)的硬件一般采用專(zhuān)門(mén)的測(cè)試儀器進(jìn)行測(cè)試,而軟件則需要有相關(guān)的測(cè)試技術(shù)和測(cè)試工具的支持,并要采用特定的測(cè)試策略。測(cè)試技術(shù)指的是軟件測(cè)試的專(zhuān)門(mén)途徑,以及能夠更加有效地運(yùn)用這些途徑的特定方法。
【嵌入式Linux系統(tǒng)概述】相關(guān)文章:
Linux系統(tǒng)守護(hù)進(jìn)程的啟動(dòng)方法12-15
Linux系統(tǒng)安全的九個(gè)關(guān)鍵點(diǎn)11-07
嵌入式系統(tǒng)基礎(chǔ)知識(shí)10-28
嵌入式系統(tǒng)體系結(jié)構(gòu)12-16
嵌入式系統(tǒng)的分類(lèi)和特點(diǎn)04-07
Java用于嵌入式系統(tǒng)的局限03-01