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

正文內(nèi)容

科技學院本科畢業(yè)論文畢業(yè)設計學位論文范文模板參考資料-電能智能采集終端器設計-在線瀏覽

2025-02-05 17:28本頁面
  

【正文】 司的 QNX 等。這些嵌入式實時多任務操作系統(tǒng)的出現(xiàn),使得應用開發(fā)人員得以從小范圍的開發(fā)解放出來,同時也促使嵌入式有了更為廣闊的應用空間。這時候更多的公司看到了嵌入式系統(tǒng)的廣闊發(fā)展前景,開始大力發(fā)展自己的嵌入式操作系統(tǒng)。隨著嵌入式技術的發(fā)展前景日益廣闊,相信會有更多的嵌入式操作系統(tǒng)軟件出現(xiàn)。它一般由嵌入式微處理器、外圍硬件設備、嵌入式操作系統(tǒng)以及用戶的應用程序等四個部分組成,用于實現(xiàn)對其他設備的控制、監(jiān)視或管理等功能。因此可以這樣理解上述三個面向的含義,即嵌入式系統(tǒng)是與應用緊密結合的,它具有很強的專用性,必須結合實際系統(tǒng)需求進行合理的裁減利用。所以,介入嵌入式系統(tǒng)行業(yè),必須有一個正確的定位。 嵌入式系統(tǒng)必須根據(jù)應用需求對軟硬件進行裁剪,滿足應用系統(tǒng)的功能、可靠性、成本、體積等要求。目前的嵌入式系統(tǒng)的核心往往是一個只有幾 K到幾十 K微內(nèi)核,需要根據(jù)實際的使用進行功能擴展或者裁減,但是由于微內(nèi)核的存在,使得這種擴展能夠非常順利的進行?,F(xiàn)在人們講嵌入式系統(tǒng)時,某種程度上指近些年比較熱的具有操作系統(tǒng)的嵌入式系統(tǒng),本文在進行分析和展望時,也沿用這一觀點。 嵌入式系統(tǒng)中有許多非常重要的概念: 嵌入式處理器 嵌入式系統(tǒng)的核心,是控制、輔助系統(tǒng)運行的硬件單元。 實時操作系統(tǒng) 實時操作系統(tǒng) ( RTOSReal Time Operating System): 嵌入式系統(tǒng)目前最主要的組成部分。實時操作系統(tǒng)具有實時性,能從硬件方面支持實時控制系統(tǒng)工作的操作系統(tǒng)。 分時操作系統(tǒng) 對于分時操作系統(tǒng),軟件的執(zhí)行在時間上的要求,并不嚴格,時間上的錯誤,一般不會造成災難性的后果。 多任務操作系統(tǒng) 系統(tǒng)支持多任務管理和任務間的同步和通信,傳統(tǒng)的單片機系統(tǒng)和 DOS 系統(tǒng)等對多任務支持的功能很弱,而目前的 Windows 是典型的多任務操作系統(tǒng)。 實時操作系統(tǒng)中的重要概念 系統(tǒng)響應時間( System response time):系統(tǒng)發(fā)出處理要求到系統(tǒng)給出應答信號的時間。 中斷延遲( Interrupt latency):計算機接收到中斷信號到操作系統(tǒng)作出響應,并完成換道轉(zhuǎn)入中斷服務程序的時間。 運行:獲得 CPU 控制權。 掛起:任務發(fā)生阻塞,移出任務等待隊列,等待系統(tǒng)實時事件的發(fā)生而喚醒,從而轉(zhuǎn)為就緒或運行。 任何時刻系統(tǒng)中只能有一個任務在運行狀態(tài),各任務按級別通過時間片分別獲得對 CPU的訪問權。 1991 年 ARM 公司成立于英國 Cambridge,主要銷售晶片設計技術的授權。 ARM( Advanced RISC Machines)是微處理器行業(yè)的一家知名企業(yè),設計了大量高性能、廉價、耗能低的 RISC 處理器、相關技術及軟件。適用于多種領域,比如嵌入控制、消費 /教育類多媒體、 DSP和移動式應用等。 128 位寬度的存儲器接口和獨特的加速結構使 32 位代碼能夠在最大時鐘速率下運行。由于 LPC2114/2124/2212/2214 較小的 64 和 144 腳封裝、極低的功耗、多個 32 位定時器、4 路 10 位 ADC 或 8 路 10 位 ADC( 64 腳和 144 腳封裝)以及多達 9 個外部中斷使它們特別適用于工業(yè)控制、醫(yī)療系統(tǒng)、訪問控制和 POS 機。在 144 腳的封裝中,可使用的 GPIO 高達 76(使用了外部存儲器)~ 112 個(單片應用)。 特性 ? ? 16/32 位 64/144 腳 ARM7TDMIS 微控制器。 ? ? 128/256K 字節(jié)片內(nèi) Flash 程序存儲器(在工作溫度范圍內(nèi),片內(nèi) Flash 存儲器至少可擦除和寫 10,000 次)。 ? ? 外部 16 或 32 位總線( 144 腳封裝)。 Flash 編程時間: 1ms 可編程 512 字節(jié),扇區(qū)擦除或整片擦除只需 400ms。當前臺任務使用片內(nèi) RealMonitor 軟件調(diào)試時,中斷服務程序可繼續(xù)執(zhí)行。 ? ? 4/8 路( 64/144 腳封裝) 10 位 A/D 轉(zhuǎn)換器,轉(zhuǎn)換時間低至 。 ? ? 多個串行接口,包括 2 個 16C550 工業(yè)標準 UART、高速 I2C 接口( 400 kbit/s)和 2 個 SPI 接口。 ? ? 向量中斷控制器。 ? ? 多達 46 個( 64 腳封裝)或 112 個( 144 腳封裝)通用 I/O 口(可承受 5V 電壓), 12 個獨立外部中斷引腳( EIN 和 CAP 功能)。 ? 2 個低功耗模式:空閑和掉電。 ? ? 可通過個別使能 /禁止外部功能來優(yōu)化功耗。 LPC2214 將 ARM7TDMIS 配置為小端( littleendian)字節(jié)順序。每個 AHB 外設都分配了 16k 字節(jié)的地址空間。 AHB 到 VPB 的橋?qū)?VPB 總線與 AHB 總線相 連。每個 VPB 外設在VPB 地址空間內(nèi)都分配了 16k 字節(jié)地址空間。該模塊必須由軟件進行控制以符合外設功能與管腳在特定應用中的需求。 ARM 結構是基于精簡指令集計算機 (RISC)原理而設計的。這樣使用一個小的、廉價的處理器核就可實現(xiàn)很高的指令吞吐量和實時的中斷 響應。通常在執(zhí)行一條指令的同時對下一條指令進行譯碼,并將第三條指令從存儲器中取出。 在 THUMB 后面一個關鍵的概念是“超精簡指令集”。因為 THUMB 代碼和 ARM 代碼一樣,在相同的 32 位寄存器上進行操作。 片內(nèi) FLASH 程序存儲器 LPC2214 集成了 256K 的 FLASH 存儲器系統(tǒng)。對 FLASH 存儲器的編 程可通過幾種方法來實現(xiàn):通過內(nèi)置的串行 JTAG 接口,通過在系統(tǒng)編程( ISP)和 UART0,或通過在應用編程( IAP)。 片內(nèi)靜態(tài) RAM LPC2214 含有 16kB 的靜態(tài) RAM,可用作代碼和 /或數(shù)據(jù)的存儲。 SRAM 控制器包含一個回寫緩沖區(qū),它用于防止 CPU 在連續(xù)的寫操作時停止運行。該數(shù)據(jù)只有在軟件請求下一次寫操作時才寫入 SRAM(數(shù)據(jù)只有在軟件執(zhí)行另外一次寫操作時被寫入 SRAM)。任何在復位后檢查 SRAM 內(nèi)容的程序都必須注意這一點?;蛘?,也可通過在進入空閑或掉電模式前執(zhí)行虛寫( dummy write)操作來保證最后的數(shù)據(jù)在復位后被真正寫入到 SRAM。它被廣泛應用于微處理器、微控制器和數(shù)字信號處理器。 μ C/OS 和μ C/OSII 是專門為計算機的嵌入式應用設計的, 絕大部分代碼 是用 C語言編寫的。用戶只要有標準的 ANSI 的C交叉編譯器,有匯編器、連接器等軟件工具,就可以將μ C/OSII 嵌人到開發(fā)的產(chǎn)品中。μ C/OSII 已經(jīng)移植到了幾乎所有知名的 CPU 上。沒有提供輸入輸出管理,文件系統(tǒng),網(wǎng)絡等額外的服務。 uC/OSII 目標是實現(xiàn)一個基于優(yōu)先級調(diào)度的搶占式的實時內(nèi)核,并在這個內(nèi)核之上提供最基本的系統(tǒng)服務,如信號量,郵箱,消息隊列,內(nèi)存管理,中斷管理等。你可以將其用于教學和私下研究( peaceful research);但是如果你將其用于商業(yè) 用途,那么你必須通過Micrium 獲得商用許可。 63為最低級,系統(tǒng)保留了 4 個最高優(yōu)先級的任務和 4個最低優(yōu)先級的任務,所有用戶可以使用的任務數(shù)有 56 個。 系統(tǒng)初始化時會自動產(chǎn)生兩個任務:一個是空閑任務,它的優(yōu)先級最低,該任務僅給一個整形變量做累加運算;另一個是系統(tǒng)任務,它的優(yōu)先級為次低 ,該任務負責統(tǒng)計當前 cpu 的利用率。中斷發(fā)生的時間間隔是固定不變的,該中斷也成為一個時鐘節(jié)拍。 內(nèi)存管理 在 ANSI C 中是使用 malloc 和 free 兩個函數(shù)來動態(tài)分配和釋放內(nèi)存。 uC/OSII 中把連續(xù)的大塊內(nèi)存按分區(qū)管理。用戶需要動態(tài)分配內(nèi)存時,系統(tǒng)選擇一個適當?shù)姆謪^(qū),按塊來分配內(nèi)存。 任務間通信與同步 對一個多任務的操作系統(tǒng)來說,任務間的通信和同步是必不可少的。所有這些同步對象都有創(chuàng)建,等待,發(fā)送,查詢的接口用于實現(xiàn)進程間的通信和同步??蓜儕Z型的實時內(nèi)核在任何時候都運行就緒了的最高優(yōu)先級的任務。為了簡化系統(tǒng)設計, uC/OSII 規(guī)定所有任務的優(yōu)先級不同,因為任務的優(yōu)先級也同時唯一標志了該任務本身。 2) 高優(yōu)先級的任務因為時鐘節(jié)拍到來,在時鐘中斷的處理程序中,內(nèi)核發(fā)現(xiàn)高優(yōu)先級任務獲得了執(zhí)行條件 (如休眠的時鐘到時 ),則在中斷態(tài)直接切換到高優(yōu)先級任務執(zhí)行。 這兩種調(diào)度方式在 uC/OSII 的執(zhí)行過程中非常普遍,一般來說前者發(fā)生在系統(tǒng)服務中,后者發(fā)生在時鐘中斷的服務程序中。其最高優(yōu)先級任務的尋找是通過建立就緒任務表來實現(xiàn)的。任務調(diào)度模塊首先用變量 OSTCBHighRdy 記錄當前最高級就緒任務的 TCB 地址,然后調(diào)用 OS_TASK_SW()函數(shù)來進行任務切換。 1) 核心部分 () 是操作系統(tǒng)的處理核心,包括操作系統(tǒng)初始化、操作系統(tǒng)運行、中斷進出的前導、時鐘節(jié)拍、任務調(diào)度、事件處理等多部分。 2) 任務處理部分 () 任務處理部分中的內(nèi)容都是與任務的操作密切相關的。因為μ C/OSII 是以任務為基本單位調(diào)度的,所以這部分內(nèi)容也相當重要。任務延時 等操作是在這里完成的。 5) 與 CPU 的接口部分 是指μ C/OSII針對所使用的 CPU 的移植部分。這部分內(nèi)容由于牽涉到 SP 等系統(tǒng)指針,所以通常用匯編語言編寫。 C/OSII 移植到 LPC2214 編譯器的選擇 目前,針對 ARM 處理器核的 C 語言編譯器有很多,如 SDT、 ADS、 IAR、 TASKING和 GCC 等。 SDT 和 ADS 均為 ARM公司自己開發(fā), ADS 為 SDT 的升級版,以后 ARM 公司不再支持 SDT,所以不選擇 SDT。 任務模式的取舍 ARM7 處理器核具有用戶、系統(tǒng)、管理、中止、未定義、中斷和快中斷七種模式,其中除用戶模式外其它均為特權模式。由參考文獻 [11]可知, 管理、中止、未定義、中斷和快中斷與相應異常相聯(lián)系,任務使用這些模式不太不適合。為了盡量減少任務代碼錯誤對整個程序的影響,缺省的任務模式定為用戶模式,可選為系統(tǒng)模式,同時提供接口使 任務可以在這兩種模式間切換。為了最大限度地支持芯片的特性,任務應當可以使用任意一個指令集并可以自由切換,而且不同的任務應當可以使用不同的指令集,這次移植的代碼已經(jīng)實現(xiàn)了這一點。 因此,在移植μ C/OSII 到 ARM7 時,我們必須先把上面幾個方面的知識了解得比較透徹。關于第 1 點的參考資料最權威的是參考文獻 [11], 已經(jīng)自帶這個文檔的電子版。關于第 3 點需要參考 ADS 自帶的編譯器和連接器的手冊,安 裝 時都附帶了它們的電子版。這里著重說明一下第 4 點,因為這一點的影響是全局性的的,決定移植代碼的框架和功能。 μ C/OSII中要移植的部分見 表 。不需要 的必須滿足以下苛刻條件: 1. 可以直接使用 C 語言開關中斷; 2. 可以直接使用 C 語言編寫中斷服務程序; 3. 可以直接使用 C 語言操作堆棧指針; 4. 可以直接使用 C 語言保存 CPU 的所有寄存器。由 表 可以看出,移植μ C/OSII 需要在 包含幾個類型的定義和幾個常數(shù)的定 義;在 OS_CPU_C 和 中包含幾個函數(shù)的定義和時鐘節(jié)拍中斷服務程序的代碼。 而筆者的移植也包含 、 及 三個文件。實際上,還有一個文件很重要,它就是 ,它定義了一個匯編宏,它是 μ C/OSII for ARM7 通用的中斷服務程序的匯編 與 C 函數(shù)接口代碼。 表 μ C/OSII 需要移植的代碼 *某些情況可在 中實現(xiàn)。使用 的缺點是它可能會包含一些實際不相關的頭文件,這意味著每個文件的編譯時間可能會增加,但卻增強了代碼的可移植性。而 μC/OSII 的系統(tǒng)文件依然只是包含 ,即 μ C/OSII 的系統(tǒng)文件完全不必改移植內(nèi)容 類型 所屬文件 描述 BOOLEAN、 INT8U、 INT8S、INT16U、 INT16S、 INT32U、INT32S、 FP3 FP64 數(shù)據(jù)類型 與編譯器無關的數(shù)據(jù)類型 OS_STK 數(shù)據(jù)類型 堆棧的數(shù)據(jù)類型 OS_ENTER_CRITICAL()和OS_EXIT_CRITICAL() 宏 開關中斷的代碼 OS_STK_GROWTH 常量 定義堆棧的增長方向 OS_TASK_SW 函數(shù) 任務切換時執(zhí)行的代碼 OSTaskStkInit() 函數(shù) 任務堆棧初始化函數(shù) OSInitHookBegin()、OSInitHookEnd()、OSTaskCreateHook()、OSTaskDelHook()、OSTaskSwHook()、OSTaskStatHook()、OSTCBInitHook()、OSTimeTickHook()、OSTaskIdleHook() 函數(shù) μ C/OSII 在執(zhí)行某些操作時調(diào)用的用戶函數(shù),一般為空 OSStartHighRdy() 函數(shù) *SM 進入多任務環(huán)境時運行優(yōu)先級最高的任務 OSIntCtxSw() 函數(shù) *SM 中斷退出時的任務切換函數(shù) OSTickISR() 中斷服務程序 *SM 時鐘節(jié)拍中斷服務程序
點擊復制文檔內(nèi)容
公司管理相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1