當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]你需要了解的嵌入式Linux

今天,Linux 正廣泛應(yīng)用于各種嵌入式設(shè)備的開(kāi)發(fā)中,如數(shù)字電視、機(jī)頂盒、DVR播放器、xDSL/有線/PON調(diào)制解調(diào)器、家用路由器和網(wǎng)關(guān)。它尤其適合具有先進(jìn)網(wǎng)絡(luò)功能、大量設(shè)備驅(qū)動(dòng)程序和免版稅運(yùn)行時(shí)間的數(shù)字家庭和家庭網(wǎng)絡(luò)。除了嵌入式設(shè)備,Linux 還支持企業(yè)級(jí)設(shè)備,如服務(wù)器和路由器。

Linux在移動(dòng)設(shè)備中也獲得了青睞。In-Stat的報(bào)告顯示,移動(dòng)Linux將牢牢抓住中國(guó)巨大的市場(chǎng)占有率。該機(jī)構(gòu)認(rèn)為,到2012年,中國(guó)基于移動(dòng)Linux的智能手機(jī)總發(fā)貨量將達(dá)到中國(guó)智能手機(jī)總出貨量的25.4%。

不斷改進(jìn)的Linux內(nèi)核

Linux當(dāng)面對(duì)特定的嵌入式應(yīng)用時(shí)仍存在很多挑戰(zhàn),包括那些內(nèi)存空間小或?qū)崟r(shí)確定性以及安全性能要求高的應(yīng)用。工具鏈的改進(jìn)、新的調(diào)試工具和性能、不斷為標(biāo)準(zhǔn)化演變的努力等,都將繼續(xù)提升Linux對(duì)于所有嵌入式應(yīng)用的價(jià)值。在這其中,Linux內(nèi)核的不斷改進(jìn)異常重要。

Linux內(nèi)核是應(yīng)用軟件采用的標(biāo)準(zhǔn)Linux API和處理器系統(tǒng)(應(yīng)用軟件運(yùn)行其上)底層硬件結(jié)構(gòu)之間的接口。該內(nèi)核是內(nèi)部元件和外部可加載模塊的復(fù)雜組合。在開(kāi)機(jī)啟動(dòng)期間,內(nèi)核必須及時(shí)發(fā)現(xiàn),并正確布置核心系統(tǒng)處理器、系統(tǒng)存儲(chǔ)器、硬盤(pán)、視頻卡、USB端口、網(wǎng)卡和音頻處理器,而且要在開(kāi)機(jī)啟動(dòng)期間提供足夠的顯示表明成功與否。

維持如此復(fù)雜的代碼收集很明顯是一個(gè)嚴(yán)峻的挑戰(zhàn)。內(nèi)核源代碼被劃分為標(biāo)準(zhǔn)“樹(shù)”結(jié)構(gòu),這樣子系統(tǒng)就能夠更好地彼此隔離,有助于實(shí)現(xiàn)幾個(gè)關(guān)鍵內(nèi)核維護(hù)工作的分布。這種分工可以最大限度地減少內(nèi)核某一部分發(fā)生重大變化對(duì)其他部分產(chǎn)生的影響。每個(gè)后續(xù)子系統(tǒng)的改變傳達(dá)給主要管理員,最終到達(dá)Linux內(nèi)核最上游的管理員。這些變化被稱為“修補(bǔ)(patch)”,在標(biāo)準(zhǔn)格式下創(chuàng)建和應(yīng)用。

供應(yīng)商和開(kāi)發(fā)人員將他們的知識(shí)反饋到開(kāi)源社群以改進(jìn)內(nèi)核。Linux開(kāi)放、分散的本質(zhì),再加上背后強(qiáng)大的社群支持,使基于Linux的OS成為培養(yǎng)創(chuàng)新的良好選擇。


F1:為下一個(gè)項(xiàng)目計(jì)劃的Linux操作系統(tǒng)。資料來(lái)源:VDC,2007 年

“免費(fèi)”使用,但并非“零”成本

除了決定使用商用還是免費(fèi)發(fā)行版Linux,開(kāi)發(fā)人員還必須認(rèn)識(shí)到其調(diào)試/開(kāi)發(fā)工具的能力和局限。

充分發(fā)揮嵌入式Linux免費(fèi)發(fā)行版的優(yōu)勢(shì),已經(jīng)成為消費(fèi)產(chǎn)品領(lǐng)域被廣泛接收的現(xiàn)實(shí)。在這些市場(chǎng)上,產(chǎn)品運(yùn)行率非常高,對(duì)代碼的改善更新非常頻繁,而且產(chǎn)品的銷(xiāo)售成本至關(guān)重要,所有這些都使得開(kāi)源模式極具吸引力。但是,能集成開(kāi)源/免費(fèi)軟件,還可為處理器內(nèi)核提供無(wú)縫調(diào)試環(huán)境的工具要求對(duì)內(nèi)核和SoC元件互動(dòng)有深刻的了解。

現(xiàn)在有若干種“免費(fèi)軟件”調(diào)試解決方案,設(shè)計(jì)人員需要全面了解其局限性。比如,針對(duì)Linux內(nèi)核最常用免費(fèi)軟件調(diào)試器是KGDB。KGDB的主要缺點(diǎn)是要求重新編譯內(nèi)核。這對(duì)那些已經(jīng)在市場(chǎng)上通用的產(chǎn)品應(yīng)用來(lái)說(shuō)產(chǎn)并不總是可行的。修補(bǔ)內(nèi)核還可能引入影響系統(tǒng)性能的代碼變化。

GDBServer是另一個(gè)面向應(yīng)用調(diào)試的頗受歡迎的免費(fèi)軟件調(diào)試器,但它主要問(wèn)題是缺乏對(duì)同時(shí)調(diào)試大量線程/進(jìn)程的支持。隨著調(diào)試的線程/進(jìn)程數(shù)不斷增加,GDBServer性能迅速惡化,導(dǎo)致反應(yīng)時(shí)間太慢,進(jìn)而使目標(biāo)系統(tǒng)出現(xiàn)故障。其他問(wèn)題還涉及到:不能在相同的目標(biāo)連接上調(diào)試驅(qū)動(dòng)程序和應(yīng)用;調(diào)試設(shè)備驅(qū)動(dòng)程序和調(diào)試共享庫(kù)。[!--empirenews.page--]

Linux內(nèi)核的維護(hù)

開(kāi)發(fā)人員在決定將選擇哪種OS時(shí),重要的是選擇一個(gè)完全支持其特定處理器的操作系統(tǒng),并能夠降低總成本和縮短上市時(shí)間。

從處理器供應(yīng)商的角度來(lái)看,積極參與與其內(nèi)核相關(guān)的Linux內(nèi)核的維護(hù)非常重要。

作為處理器 IP 公司,MIPS科技公司必須確保其新的處理器內(nèi)核正確集成到Linux源代碼樹(shù),而且所有的改變都通過(guò)對(duì)舊內(nèi)核和平臺(tái)的回歸測(cè)試進(jìn)行正確驗(yàn)證。

由于MIPS IP內(nèi)核是專有內(nèi)核,對(duì)于MIPS和Linux社區(qū)來(lái)說(shuō)最有益的,是確保MIPS內(nèi)核的所有性能和電源管理特性能夠在Linux內(nèi)核中完全實(shí)現(xiàn)。

對(duì)新內(nèi)核設(shè)計(jì)的支持不能破壞現(xiàn)有內(nèi)核支持結(jié)構(gòu)或降低其性能,而且還必須允許現(xiàn)有客戶快速轉(zhuǎn)移到新內(nèi)核技術(shù)。MIPS內(nèi)核的可配置性使得對(duì)Linux內(nèi)核代碼庫(kù)的維護(hù)更富挑戰(zhàn),因?yàn)樵S多內(nèi)核配置組合必須經(jīng)過(guò)測(cè)試,以確保新增加的功能在所有組合中操作正常。

內(nèi)核優(yōu)化1:多核支持

現(xiàn)在,為了實(shí)現(xiàn)最佳單位面積計(jì)算能力(MIPS/每平方毫米)和最佳單位功耗計(jì)算能力(MIPS/mW),許多處理器都利用了多核技術(shù),在幾個(gè)以較低時(shí)鐘頻率運(yùn)行的內(nèi)核間分配處理負(fù)載。這些應(yīng)用能夠以對(duì)稱多處理(SMP)的方式進(jìn)行分配,其中一項(xiàng)任務(wù)是內(nèi)核間的基本平分;或者采用非對(duì)稱多處理(AMP),在這里特定任務(wù)被分配給一個(gè)特定內(nèi)核。不論是哪種方式,Linux內(nèi)核中必須有適當(dāng)?shù)闹С衷试S實(shí)現(xiàn)這些編程模型,同時(shí)對(duì)應(yīng)用開(kāi)發(fā)者盡可能的透明。

MIPS科技的多線程34K內(nèi)核和多線程/多處理1004K內(nèi)核所要求的方式,與內(nèi)核內(nèi)的多核管理方法略微不同,因?yàn)?4K內(nèi)核能夠在單一內(nèi)核的物理實(shí)例中提供多個(gè)虛擬內(nèi)核或虛擬處理單元(VPE),而1004K內(nèi)核則可提供多核器件的一致執(zhí)行。

對(duì)于每個(gè)內(nèi)核,我們執(zhí)行的Linux內(nèi)核多核支持和優(yōu)化都必須能夠正確識(shí)別所使用的內(nèi)核,并妥善初始化和無(wú)縫實(shí)現(xiàn)特定的多核功能。必須明白,執(zhí)行基于34K器件的任務(wù)共享模型時(shí),一個(gè)物理內(nèi)核實(shí)際上是以多于一個(gè)虛擬內(nèi)核的形式出現(xiàn)的,這些內(nèi)核并不會(huì)自動(dòng)進(jìn)行一致性管理。這種多核環(huán)境在某些情況下比較適合AMP環(huán)境,如每個(gè)VPE 運(yùn)行一個(gè)獨(dú)立操作系統(tǒng)。1004K 內(nèi)核真正的一致性多核設(shè)計(jì)使傳統(tǒng)的SMP模式更具吸引力,在這里一個(gè)操作系統(tǒng)可以完全控制兩個(gè)內(nèi)核。

內(nèi)核優(yōu)化2:電源管理

在今天的綠色計(jì)算環(huán)境中,電源管理日漸重要,不僅體現(xiàn)在要求最大限度延長(zhǎng)電池壽命的便攜式設(shè)備方面,而且體現(xiàn)在需要盡量減少能源浪費(fèi)和熱量的AC 供電系統(tǒng)中。目前Linux內(nèi)核電源管理支持主要集中在通過(guò)ACPI的標(biāo)準(zhǔn) PC。但是ACPI 接口并不適合先進(jìn)的多核SoC,因?yàn)楹笳弑仨殞⒁恢滦噪娫垂芾矸桨笖U(kuò)展至多個(gè)內(nèi)核、內(nèi)部SoC外設(shè)以及最后的外部系統(tǒng)外設(shè)(如 RF 功率放大器)。

MIPS,我們執(zhí)行了一個(gè)先進(jìn)的電源管理IP塊,稱為組群電源控制器(CPC),在具體的1004K執(zhí)行中,它允許對(duì)每個(gè)內(nèi)核的單獨(dú)控制,使內(nèi)核可以進(jìn)入或離開(kāi)一致性操作,并在需要的情況下徹底關(guān)掉電源。這樣的電源管理模式能夠進(jìn)一步擴(kuò)展,使內(nèi)核電壓和頻率調(diào)制處于操作系統(tǒng)本身的控制之下。這個(gè)CPC塊的功能還必須擴(kuò)展至Linux內(nèi)核。我們現(xiàn)在正在構(gòu)建這個(gè)電源管理結(jié)構(gòu)的基礎(chǔ),以實(shí)現(xiàn)針對(duì) Linux內(nèi)核本身及在標(biāo)準(zhǔn)Linux應(yīng)用領(lǐng)域下運(yùn)行的其他應(yīng)用的全面API。


F2: 組群電源控制器允許在特定的多核實(shí)現(xiàn)中對(duì)每個(gè)內(nèi)核進(jìn)行單獨(dú)控制

Linux 開(kāi)發(fā)工具

當(dāng)考慮處理器對(duì)OS的支持時(shí),開(kāi)發(fā)工具很重要。

備受稱贊的內(nèi)核評(píng)測(cè)工具是Linux事件分析器,能夠剖析整個(gè)系統(tǒng)。通常這些工具可捕獲目標(biāo)內(nèi)發(fā)生的用戶選擇的 Linux 事件,然后根據(jù)時(shí)間通過(guò)圖形顯示這些事件。這些捕獲有時(shí)能夠收集高達(dá)20秒的 Linux系統(tǒng)活動(dòng)。

不管應(yīng)用如何,開(kāi)發(fā)者都應(yīng)該確保他們選擇的處理器架構(gòu)包含一個(gè)無(wú)縫的開(kāi)發(fā)環(huán)境,包括編譯器、調(diào)試器、性能和剖析工具。這種性質(zhì)的工具必須滿足上市時(shí)間要求,并從一個(gè)嵌入式系統(tǒng)設(shè)計(jì)中獲取最大的性能。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車(chē)的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車(chē)技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車(chē)工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車(chē)。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車(chē) 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉