国产亚洲精品AA片在线观看,丰满熟妇HD,亚洲成色www成人网站妖精,丁香五月天婷婷五月天男人天堂

新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 實(shí)時(shí)操作系統(tǒng)到Linux系統(tǒng)的應(yīng)用移植

實(shí)時(shí)操作系統(tǒng)到Linux系統(tǒng)的應(yīng)用移植

作者: 時(shí)間:2016-10-08 來(lái)源:網(wǎng)絡(luò) 收藏

POSIX

POSIX流行在基于UNIX的開(kāi)源系統(tǒng)中、政府和軍事舞臺(tái)。然而POSIX對(duì)于傳統(tǒng)的嵌入式實(shí)時(shí)系統(tǒng)幾乎沒(méi)有影響。POSIX標(biāo)準(zhǔn)家族起源于美國(guó)國(guó)家標(biāo)準(zhǔn)與技術(shù)研究所,現(xiàn)在有被歸入IEEE、IEEE1003和其他標(biāo)準(zhǔn)的預(yù)兆。在過(guò)去的十年中,POSIX經(jīng)歷了多次的修訂,最近的一次是在2000年。

兼容性和一致性是兩個(gè)關(guān)于POSIX的重要觀點(diǎn)。兼容性意味著一個(gè)特定的操作系統(tǒng)平臺(tái)貫徹標(biāo)準(zhǔn)的一些子集,這種貫徹是備有文件證明的。甚至那些執(zhí)行微小子集的平臺(tái)能夠兼容于POSIX標(biāo)準(zhǔn)。POSIX的一致性,相反的,代表了更加嚴(yán)格的標(biāo)準(zhǔn),意味著一個(gè)操作系統(tǒng)服從于過(guò)去的已證明測(cè)試。

SVR4,BSD和其他UNIX的API

事實(shí)上SVR4和UNIX的BSD版本是流行的系統(tǒng)標(biāo)準(zhǔn),這些標(biāo)準(zhǔn)對(duì)于Linux的影響是巨大的。Linux貫徹了那些UNIX API的大的子集(舉個(gè)例子,對(duì)于共享內(nèi)存、隊(duì)列、信號(hào)量、BSD套接口和TCP/IP堆的Linux的ipc系統(tǒng)調(diào)用)。

熟悉SVR4、BSD,或者像AIX,HP-UX等其他通用的UNIX的開(kāi)發(fā)人員對(duì)于Linux他們也能夠很快的掌握。

c語(yǔ)言庫(kù)

在嵌入式設(shè)計(jì)、RTOS或其他方面,很多API僅僅是標(biāo)準(zhǔn)c庫(kù),這些庫(kù)或者是直接執(zhí)行函數(shù)或者是作為系統(tǒng)調(diào)用的包裝。Linux有熟悉的libc/glibc,盡管尺寸很大,但易于理解。

glibc的運(yùn)行時(shí)間是對(duì)嵌入式應(yīng)用程序內(nèi)存尺寸的挑戰(zhàn)。很多Linux的供應(yīng)商為對(duì)于尺寸敏感的應(yīng)用程序提供了經(jīng)過(guò)裁減了的庫(kù)。

RTOS接口層

RTOS的核心是對(duì)于進(jìn)程間通訊調(diào)用的使用,這種調(diào)用提供了在任務(wù)中同步和通訊的機(jī)制。

表1提供了在典型的RTOS進(jìn)程間通訊調(diào)用和同等的Linux調(diào)用之間的映射總結(jié)。

盡管在RTOS的調(diào)用和同等的Linux調(diào)用之間的映射是直接的,但是移植的工作量會(huì)被增加,如果使用仿真庫(kù),這種仿真庫(kù)為其他RTOS移植過(guò)來(lái)的Linux應(yīng)用程序提供了同樣的調(diào)用接口。

對(duì)于Xenomai開(kāi)源項(xiàng)目,這樣的一個(gè)仿真技術(shù)是適用的。而這里,不同的仿真層提供給POSIX、VxWorks、VRTX和Itron這些被廣泛使用的RTOS。注意,像很多開(kāi)源項(xiàng)目,Xenomai和它的外殼是正在進(jìn)行的工作,他們可能還沒(méi)有完成或者還要進(jìn)行修改。不過(guò),它代表了一個(gè)在移植過(guò)程中潛在的高價(jià)值的出發(fā)點(diǎn)。

舉個(gè)例子,POSIX模塊主要是用來(lái)提供PSE51兼容的API.為了幫助移植其他PSE51兼容

API的應(yīng)用程序,它包含了一些對(duì)于POSIX規(guī)范的擴(kuò)展。

POSIX外殼已經(jīng)包含了以下這些基本的特色:

線程

互斥量

信號(hào)量

條件變量

實(shí)時(shí)信號(hào)的支持

放棄和放棄處理

特殊線程數(shù)據(jù)

消息隊(duì)列

定時(shí)器支持

共享內(nèi)存

POSIX外殼創(chuàng)建實(shí)時(shí)線程,他們或是運(yùn)行在Linux內(nèi)核模塊或者在用戶空間的周期應(yīng)用程序中。

實(shí)時(shí)內(nèi)核的API允許內(nèi)核和用戶空間的編程。開(kāi)發(fā)人員通常更喜歡在用戶空間編程,因?yàn)樗麄冎g的延遲小,特別是在硬件上,MMU的切換開(kāi)銷很小。目前為止在用戶空間編程比直接從內(nèi)核空間運(yùn)行應(yīng)用程序更為容易。在用戶空間編程帶來(lái)了內(nèi)存保護(hù)和在這個(gè)環(huán)境中調(diào)試實(shí)時(shí)應(yīng)用程序的GNU調(diào)試器的支持。

實(shí)時(shí)性能

也許對(duì)于嵌入式應(yīng)用程序來(lái)說(shuō)最重要的是滿足實(shí)時(shí)的要求。對(duì)于設(shè)計(jì)RTOS使得它們及時(shí)響應(yīng)來(lái)滿足實(shí)時(shí)的要求,并且測(cè)量RTOS的系統(tǒng)調(diào)用,已經(jīng)做了相當(dāng)大的努力加以實(shí)現(xiàn),因此開(kāi)發(fā)人員能夠確定系統(tǒng)的性能滿足于實(shí)時(shí)的要求。RTOS的調(diào)用在一定意義上是循環(huán)的,應(yīng)用程序和由RTOS提供的中斷是同步的。因此進(jìn)行一個(gè)同步調(diào)用花費(fèi)RTOS的時(shí)間是中斷處理時(shí)間的一部分。

在2002年以前,Linux的實(shí)時(shí)性比較差,而它的吞吐量特別是在網(wǎng)絡(luò)方面比較好。然而那是吞吐量而不是實(shí)時(shí)性。原因是基本的Linux內(nèi)核和unix應(yīng)用框架。這些系統(tǒng)被設(shè)計(jì)成在應(yīng)用程序開(kāi)銷的時(shí)候,內(nèi)核執(zhí)行它所需要的。其原因就是如果開(kāi)發(fā)人員知道內(nèi)核不會(huì)被一個(gè)異常中斷搶占,內(nèi)核的代碼就更容易編寫。

雖然這種方法被廣泛使用于unix和早期的Linux中,但是近來(lái)有一個(gè)下降的趨勢(shì)。它使得運(yùn)行在多處理器體系的系統(tǒng)變得效率很低。同一時(shí)刻,非搶占式Linux使得Linux達(dá)到實(shí)時(shí)的標(biāo)準(zhǔn)變得困難,因?yàn)榧词挂粋€(gè)中斷發(fā)生并且中斷事件被調(diào)度運(yùn)行,內(nèi)核還會(huì)完成當(dāng)前的任務(wù)。為了解決在多處理器系統(tǒng)的運(yùn)行效率問(wèn)題,Linux內(nèi)核的開(kāi)發(fā)人員開(kāi)始侵入Linux內(nèi)核的內(nèi)部區(qū)域讓它非搶占區(qū)域變得更小,以至于更多的內(nèi)核區(qū)域在多處理器系統(tǒng)上能夠并行的執(zhí)行并且完成的更好。

那些對(duì)于改善Linux實(shí)時(shí)性有興趣的人使用搶占的Linux內(nèi)核來(lái)加速本地的實(shí)時(shí)響應(yīng)。延遲減小到幾百微秒到1毫秒之間。更多的性能提高包括縮短非搶占區(qū)域來(lái)減小那些區(qū)域帶來(lái)的任何延遲。

自2002年以來(lái),Linux已經(jīng)支持實(shí)時(shí)應(yīng)用程序。從那時(shí)起,Linux開(kāi)發(fā)人員開(kāi)始加強(qiáng)它的實(shí)時(shí)性能,標(biāo)準(zhǔn)Linux的實(shí)時(shí)性能在不斷的提高?,F(xiàn)在Linux的實(shí)時(shí)性能相當(dāng)于大多數(shù)特有的實(shí)時(shí)內(nèi)核。最近出現(xiàn)了對(duì)于Linux實(shí)時(shí)能力的重要推進(jìn),消耗CPU時(shí)間的同步機(jī)制的自旋鎖被繼承優(yōu)先級(jí)互斥這種更可靠的同步機(jī)制替代了?;コ鈾C(jī)制保證了cpu時(shí)間總是盡可能的分配給優(yōu)先級(jí)最高的應(yīng)用程序,從而更縮短了從中斷到實(shí)時(shí)應(yīng)用程序的過(guò)程。

最后一個(gè)主要的實(shí)時(shí)Linux的改進(jìn)是將中斷處理作為一個(gè)應(yīng)用程序的標(biāo)準(zhǔn)來(lái)執(zhí)行。以前Linux的設(shè)計(jì)賦予中斷處理比任何其他應(yīng)用程序更高的優(yōu)先級(jí)。通過(guò)把中斷處理作為一個(gè)普通的應(yīng)用程序處理,一旦優(yōu)先級(jí)更高的應(yīng)用程序可以搶占比它優(yōu)先級(jí)低的中斷處理程序。

現(xiàn)在這些改變已經(jīng)完成,性能和穩(wěn)定性的改進(jìn)使得Linux上的應(yīng)用和以前基于傳統(tǒng)的實(shí)時(shí)操作系統(tǒng)擁有一樣的快速和穩(wěn)定。

邁步向前

現(xiàn)在開(kāi)發(fā)者正在放棄第一代實(shí)時(shí)操作系統(tǒng),選擇更穩(wěn)定的一個(gè)開(kāi)放式的嵌入式平臺(tái)比如像Linux。移植這些傳統(tǒng)的系統(tǒng)代表著挑戰(zhàn)同時(shí)又提供了非常豐厚的投資回報(bào)。真正的風(fēng)險(xiǎn)不是放棄熟悉的環(huán)境,工具和API,而是當(dāng)嵌入式系統(tǒng)開(kāi)發(fā)不斷前進(jìn)時(shí)候,它卻停滯不前。

遵循這篇文章概括的步驟和RTOS的移植技術(shù), 開(kāi)發(fā)人員可以通過(guò)最少的時(shí)間和精力成功地移植以前的RTOS的代碼到一個(gè)現(xiàn)代化的Linux平臺(tái)上來(lái)。


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞:

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉