freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

王雨晴-嵌入式系統(tǒng)論文(編輯修改稿)

2025-02-13 00:28 本頁面
 

【文章內(nèi)容簡介】 有了 Linux,就有了第二種可能性。因為 Linux已經(jīng)有能力 “ 加載 ” 和 “ 卸載 ” 程序,一個嵌入式系統(tǒng)就可以利用它來節(jié)省內(nèi)存。試想一 個典型的包括一個大概 8MB到 16MB的 Flash 14 Memory和 8MB 內(nèi)存的系統(tǒng)。 Flash Memory 可以作為一個文件系統(tǒng)。 Flash Memory 驅(qū)動程序用來連接 Flash Memory和文件系統(tǒng)。作為替代,可使用 Flash Disk。這 Flash部件用軟件仿真磁盤。其中一個例是 MSystems 的 DiskOnChip,可以達到 160MB。( Flash文件中,需要時可以裝入內(nèi)存。這種動態(tài)的、 “ 根據(jù)需要加 載 ” 的能力是支持其它一系列功能的重要特征: 它使初始化代碼在系統(tǒng)引導(dǎo)后被釋放。 Linux同樣有很多內(nèi)核外運行的公用程序。這些通常程序在初始化時運行一次,以后就不再運行。而且,這些公用程序可以用它們相互共有的方式,一個接一個按順序運行。這樣,相同內(nèi)存空間可以被反復(fù)使用以 “ 召入 ” 每一個程序,就象系統(tǒng)引導(dǎo)一樣。這的確可以節(jié)省內(nèi)存,特別是那些配置一次以后就不再更改的網(wǎng)絡(luò)堆棧 如果 Linux可加載模塊的功能包括在內(nèi)核里,驅(qū)動程序和應(yīng)用程序就都可以被加載。它可以檢查硬件環(huán)境并且為硬件裝上相應(yīng)的軟件。這就消除了用 一個程序占用許多 Flash Memory 來處理多種硬件的復(fù)雜性。 軟件的升級更模塊化。你可以在系統(tǒng)運行的時候在 Flash 上升級應(yīng)用程序和可加載驅(qū)動程序。 配置信息和運行時間參數(shù)可以作為數(shù)據(jù)文件儲存在 Flash 上。 嵌入式 Linux 達到怎樣的實時性? 嵌入式系統(tǒng)常常被錯誤地分為實時系統(tǒng),盡管多數(shù)系統(tǒng)一般并不要求實時功能。實時是一個相對的詞,純化論者常常嚴格地定義實時為對一事件以預(yù)定的方式在極短的時間如微秒作出響應(yīng)漸漸地,在如此短暫時間間隔內(nèi)的嚴格實時功能在專用 DSP芯片或 ASIC上實現(xiàn) 了。只有在設(shè)計低層硬件 FIFO、分散/聚集 DMA引擎和定制硬件時才會有這樣的要求。 許多設(shè)計人員因為對真實的要求設(shè)有清晰的理解而對實時的要求焦慮不安。對于大多數(shù)的系統(tǒng),在一至五微秒的近似實時響應(yīng)已經(jīng)足夠。同樣軟需求也是可以接受的。如 Windows 98 已經(jīng)崩潰的中斷必須在 4毫秒內(nèi)( 177。98 %)內(nèi)、或20 毫秒( 177。0 )內(nèi)進行處理。 這種軟要求是比較容易滿足的,包括環(huán)境轉(zhuǎn)換時間、中斷等待時間、任務(wù)優(yōu)先級和排序。環(huán)境轉(zhuǎn)換時間曾是操作系統(tǒng)的一個熱門話題??傊?,多數(shù) CPU這些要求處理得很好,而且 CPU的速度現(xiàn)在已經(jīng)快了很多,這個問題也就不重要了。 15 嚴格的實時要求通常由中斷例程或其他內(nèi)核環(huán)境驅(qū)動程序功能處理,以確保穩(wěn)定的表現(xiàn),等待時間,一旦請求出現(xiàn)要求服務(wù)的時間很大程度上取決于中斷的優(yōu)先及其他能暫時掩蓋中斷的軟件。 中斷必須進行處理和管理以確保時間要求能符合,如同許多其他的操作系統(tǒng)。在 IntelX86處理器中,這工作很容易由 Linux 實時擴展處理。這是提供了一個以后臺任務(wù)方式運行 Linux 的中斷處理調(diào)度。關(guān)鍵的中斷響應(yīng)不必通知 Linux。因此可以得到許多對于關(guān)鍵時鐘的控制。在實時控制級和時間限制寬 松的基本 Linux級之間提供接口,這提供了與其他嵌入式操作系統(tǒng)相似的實時框架。因此,實時關(guān)鍵代碼是隔開的、并 “ 設(shè)計 ” 成滿足要求的。代碼處理的結(jié)果是以更一般的方法也許只在應(yīng)用任務(wù)級。 第三章 實時操作系統(tǒng) 167。 1 什么是實時系統(tǒng) 實時的含義是指在規(guī)定的時限內(nèi)能夠傳遞正確的結(jié)果,遲到的結(jié)果就是錯誤。 實時系統(tǒng)可以被定義為“在它的控制下系統(tǒng)有能力確定進程的時間需求”。 實時系統(tǒng)必須是快的和可預(yù)測的??斓囊馑际撬幸粋€短的等待時間,也就是,它在短時間內(nèi)對外部的不同時間的事件做出響應(yīng)。等待時間越短,系統(tǒng)越能更好的對需要及 時處理的事件做出響應(yīng)??深A(yù)測的是指它有能力確定任務(wù)的結(jié)束時間。 典型的一個實時系統(tǒng)表現(xiàn)為管理和配合被控制系統(tǒng)活動的,可以看作計算機相互作用環(huán)境的計算機控制系統(tǒng)?;ハ嘧饔檬请p向的,通過各種各樣的傳感器(環(huán)境)計算機)和激勵器(計算機 )環(huán)境),被時間確定性限制所描述。 理想的情況是時間判斷和非時間判斷的活動共存于實時系統(tǒng)中。兩者都稱為任務(wù),其中需要及時條件的任務(wù)稱為實時任務(wù)。 典型的實時任務(wù)具有以下類型的需求和限制 *時間限制。主要是周期性的或非周期性的。一個非周期性的任務(wù)有一個截止時間,到時必須完成或開始 ,或者可能在開始和完成時間上都有一個限制。一個周期性任務(wù)在每周期必須重復(fù)一次。大多數(shù)傳感的處理是周期性的,但非周期性的需要可以從動態(tài)事件中產(chǎn)生。 *資源需求。一個實時任務(wù)可能要訪問特定的資源比如 I/O 設(shè)備 ,數(shù)據(jù)結(jié)構(gòu) ,文件和數(shù)據(jù)庫。 *通信需求。一個實時任務(wù)應(yīng)該可以同消息進行通信。 16 *并列性限制。任務(wù)應(yīng)該可以訪問共同的資源,如果符合資源的一致性。 實時系統(tǒng)又可分為“硬實時系統(tǒng)”和“軟實時系統(tǒng)。兩者的區(qū)別在于:前者如果在不滿足響應(yīng)時限、響應(yīng)不及時或反映過早的情況下都會導(dǎo)致災(zāi)難性的后果;而后者則在不滿足響應(yīng)時限時 ,系統(tǒng)性能退化,但并不會導(dǎo)致災(zāi)難性的后果。 167。 2 幾種實時 Linux 的比較 RTLinux NMT 是新墨西哥科技大學(xué) (New Mexico Technology) 的縮寫。這一套系統(tǒng)可以說是 所有 Realtime Linux 的鼻祖。它目前已經(jīng)發(fā)展到 版。這個系統(tǒng)是由 Victor Yodaiken 和它的學(xué)生 Michael Barabanov 所完成。這個系統(tǒng)的概念是 ” 架空 ” Linux kernel,使得它的 realtime 行程得以盡快的被執(zhí)行。下面的圖例說明了 NMT RTLinux 和其它類似產(chǎn)品的系統(tǒng)架構(gòu)。 你可以看到基本上 RTLinux 中的實時工作 (realtime task) 其實并不是 一個 Linux 的行程,而是一個 Linux 的可加載式核心模塊 ( loadable kernel module)。 之所以要如此做的原因在于 Linux 是一個很大的系統(tǒng),且在設(shè)計的時候并沒 有考慮 realtime 的需求。舉個例說,單一個 Linux 系統(tǒng)呼叫可能會花上超過 10ms 的時間。對有些像工業(yè)控制的應(yīng)用而言,它們對時間的要求通常在 1ms 的 等級上, Linux 根本無法滿足這種需求。所以 NMT RTLinux 采用一個比較簡單 的做法,它干脆不用直接 Linux 的任何功能,而把需要高度時間精確度的工作 寫成一個驅(qū)動程序的型式,然后直接用 PC 時序芯片 (timer chip) 所產(chǎn)生的中 斷呼叫這個驅(qū)動程序。如此一來,不管 Linux 系統(tǒng)呼叫的時間有多長都沒有關(guān)系 了。 從這個角度看, NMT RTLinux 其實是一個實時驅(qū)動程序的架構(gòu),算不上是真 正的 realtime Linux. 但由于它出現(xiàn)的早,且其架構(gòu)很符合自動控制的需求。 使用者非常的多,且多半是有關(guān)自動控制的應(yīng)用。 (1) 什么是 RTLinux? RTLinux(Real Time Linux)一個小的 POSIX 系統(tǒng) ,它運行 Linux就象它自己的最低級的線程一樣。它有點象在一個裸機上運行的單 POSIX進程。 Linux 作為 RTLinux核心的最低優(yōu)先級線程來運行,而且它總是被搶占的。 RTLinux時應(yīng)用程序包括實時線程,在 RT環(huán)境中運行的單個處理器和在 Linux用戶層運行的進程。 17 RTLinux的設(shè)計模型應(yīng)該滿足:有嚴格時間條件的應(yīng)該作為線 程或單處理器(中斷處理器)被編寫,不需要硬實時那些應(yīng)該進入 Linux。這使我們保持了 RT方面的小型化,確定性,盡可能象硬件容許的那樣快,但仍然可以為精確的服務(wù)和應(yīng)用程序?qū)?Linux進行操作。 ( 2) RTLinux運行平臺及硬件需求 可以運行在幾乎所有的 x86( SMP 和單處理機), plus PowerPC 和 Alpha上。只在 V3版本上支持 PowerPc 和 Alpha。 RTLinux仍然工作在 i486上。 MiniRTL 在一張軟盤上裝入了 RTLinux, Linux和一些應(yīng)用程序,只需 4M內(nèi)存。 ( 3) RTLinux同其他實時操作系統(tǒng)相比有什么不同? RTLinux相比早期的 RTOS設(shè)計優(yōu)點在于它容許程序員編寫同時包含一個瘦的,硬實時操作系統(tǒng)在硬件速度上的優(yōu)點和一個普通操作系統(tǒng)的所有特征的應(yīng)用程序。RTLinux 強調(diào)的是性能而不是特征。它基于提供所有軟實時能力和特征( GUI,軟實時網(wǎng)絡(luò),繪圖,磁盤訪問等)的根本的 Linux系統(tǒng),而 RTLinux 自己確定了所有硬實時任務(wù)的時間正確性。 在 RTLinux之前, RTOS需要程序員進行妥協(xié):或者使用一個沒有任何特征的簡單的 RTOS,或者使用一個帶有各種非實時 服務(wù)的 RTOS,并且接受在性能和可靠性上的一個重大的損失。 RTLinux的將 Linux 作為一個線程來運行的方法避免了這樣的選擇。硬實時軟件在實時核心中運行而使用運行在非實時線程上的程序,而且實時軟件從來不會被非實時軟件延遲或減緩。 RTLinux出現(xiàn)之后,一些其他的操作系統(tǒng)采用了這種方法: Ventur使其作為非實時線程在 WinNT上使用, RTAI( RTLinux的一個變體)在 Linux 中使用。 Ventur 的產(chǎn)品正在經(jīng)受高的價格,低可靠性,和 Windows NT下的復(fù)雜的編程環(huán)境。 RTAI 的開發(fā)者致 力于使他們的系統(tǒng)有更多的特征以使實時編程更加容易。 RTLinux的目標是使 Linux作為一個線程以保持 RT核心的簡單和可靠性。對在 Linux的基礎(chǔ)上制作第二個通用目標不感興趣。 ( 4) RTLinux工作的怎么樣? 在一個 generic x86 PC 上從一個中斷的聲明到實時處理器的開始最壞的情況是15 微秒,在 Alpha和 PowerPC平臺上更好一些。這些參數(shù)接近硬件容許的極限,然而所有 Linux的性能仍然可以很容易的受編程者的影響。 ( 5) RTAI是 RTLinux 的變體 ,它走了自己的道路 .GPL支持 了這樣的改變 .雖然一些不同實際上只是表面的 ,在兩個系統(tǒng)對于特征的態(tài)度上卻有本質(zhì)的不同。 18 RTLinux 的開發(fā)者已經(jīng)在操作系統(tǒng)開發(fā)上工作了很多年,相信 RTOS的實時方面應(yīng)該是越小越好,加入過多的特征只會導(dǎo)致系統(tǒng)不易于維護,緩慢和容易出錯。在加入新的特征或系統(tǒng)時很保守,主要的工作在于確定加入的功能仍然是可以選擇的:用戶不會需要多余的功能和為此付出多余的錢。 RTAI看上去有很多友好的特征。RTLinux 更傾向于說“照此下去,我們不能保證三年后會不會產(chǎn)生問題,所以最好舍棄它們”, RTAI可能會說“現(xiàn)在這看上去十分有用 ”,正象在互聯(lián)網(wǎng)上說的“你們的路很長”。 另一個重要的區(qū)別是, RTLinux運行在 x86, PowerPC和 Alpha 平臺上,支持的Linux 版本從 。早期的版本甚至支持 PalmPilot 處理器。 RTAI在 x86 上運行 RTAI RTAI 是 RealTime Application Interface 的縮寫。顧名思義知道它是一套可 以用來寫實時應(yīng)用程序的界面。大致而言, RTAI 和 NMT RTLinux 是相同的東西。 它同樣的架空了 Linux,而直接用可加載式核心模塊 ( loadable kernel module) 實作 realtime process。每一個實時行程實際上就是一個可加載式核心模塊。 RTAI 和 NMT RTLinux 最大的不同地方在于它非常小心的在 Linux 上定義了 一組 RTHAL (RealTime Hardware Abstraction Layer)。 RTHAL 將 RTAI 需要 在 Linux 中修改的部份定義成一組程序界面, RTAI 只使用這組界面和 Linux 溝通。這樣做的好處在于我們可以將 直接修改 Linux 核心的程序代碼減至最小, 這使得將 RTHAL 移植到新版 Linux 的工作量減至最低。 RTAI 采取這種途徑最大的原因在于 NMT RTLinux 在由 版移植至 版 的過程序遇到問題,使得基于 版核心的 NMT RTLinux 一直無法完成。所以 在 Dipartimento di Ingegneria Aerospaziale Politeico di Milano 的 Paolo Mantegazza 和他的同事們就決定自行做移植的工作,但由 NMT RTLinux 的困境他們體認到必須采取上述的途徑以解決將來可能再度面臨的兼容性問題。 于是 RTAI 便誕生了,它是一個比 NMT RTLinux 更好的 NMT RTLinux,雖 然后來 NMT RTLinux 也隨后完成移植的工作,但那已經(jīng)是 RTAI 誕生半年以 后的事了。 LXRT 由于 RTAI 無法直接使用 Linux 的系統(tǒng)呼叫,解決的方法是使用 RTFIFO 將 19 一個 RTAI realtime kernel module 和真正的 Linux 行程
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1