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

正文內(nèi)容

基于單片機(jī)的嵌入式實(shí)時(shí)os平臺(tái)的研究與實(shí)現(xiàn)畢業(yè)論文-文庫(kù)吧在線文庫(kù)

  

【正文】 得到 CPU的使用權(quán)時(shí),任務(wù)控制塊能確保任務(wù)從斷點(diǎn)處繼續(xù)執(zhí)行下去。 任務(wù)狀態(tài) 下圖是 μ C/OSⅡ任務(wù)狀態(tài)轉(zhuǎn)換圖,在任 一給定的時(shí)間,任務(wù)狀態(tài)一定是在以下 5 種狀態(tài)之一 : 圖 任務(wù)狀態(tài) ①睡眠態(tài) 9 指任務(wù)駐留在程序空間,還沒(méi)有交給 μ C/OSⅡ來(lái)管理。關(guān)中斷使得 μ C/OSⅡ能夠避免同時(shí)有其他任務(wù)或中斷服務(wù)進(jìn)入臨界段代碼。 ⑤多任務(wù) μ C/OSⅡ可以管理 64 個(gè)任務(wù),留給用戶的應(yīng)用程序最多可有56 個(gè)任務(wù),賦予每個(gè)任務(wù) 不同的優(yōu)先級(jí)。 ② 以 STC89C52 為嵌入式處理器 ,以 Keil C51 為編譯環(huán)境 ,完成 μ C/OSⅡ嵌入式實(shí)時(shí)操作系統(tǒng)的移植。這樣的開(kāi)發(fā)平臺(tái) ,勢(shì)必對(duì)嵌入式系統(tǒng)在工業(yè)控制領(lǐng)域內(nèi)的應(yīng)用起到促進(jìn)作用。這使得 4 用戶可以根據(jù)不同的實(shí)時(shí)應(yīng)用要求及硬件環(huán)境選擇不同的組件 ,也使得實(shí)時(shí)操作 系統(tǒng)開(kāi)發(fā)商在開(kāi)發(fā)的過(guò)程中減少重復(fù)性工作。這個(gè)時(shí)間應(yīng)用較簡(jiǎn)單 ,實(shí) 時(shí)性也要求不高 ,應(yīng)用程序、實(shí)時(shí)監(jiān)控程序和硬件運(yùn)行平臺(tái)往往是緊密聯(lián)系在一起的。而操作系統(tǒng)的出現(xiàn) ,使得硬件與軟件在一定程度上分離開(kāi)來(lái),這為嵌入式軟件開(kāi)發(fā)人員節(jié)省了大量的時(shí)間。 關(guān)鍵詞: 嵌入式實(shí)時(shí)操作系統(tǒng) 。而 RTOS(RealTime Operating System)使得在嵌入式操作系統(tǒng)上編程比在傳統(tǒng)意義上編程有著更大的優(yōu)勢(shì),隨著不斷的發(fā)展在更多的場(chǎng)合能夠發(fā)揮其優(yōu)勢(shì)和作用。hardware of puter, munication, and so on. It has been used in aviation, spaceflight, instrument, industrialcontrol and so is a important method of science and technology innovation. Embedded operationsystem has its advantage of programme mode than tradition39。而對(duì)于嵌入式開(kāi)發(fā)人員來(lái)說(shuō),他們也能夠?qū)W⒂趹?yīng)用系統(tǒng)的開(kāi)發(fā),不再進(jìn)行控制 CPU的繁雜工作和控制硬件的工作。隨著各個(gè)行業(yè)的應(yīng)用發(fā)展 ,早期簡(jiǎn)單的 RTOS 已經(jīng)越來(lái)越顯出功能單一等各方面的不足。目前占據(jù)市場(chǎng)的主要有論文所研究的μ C/OSⅡ以及VxWorks、μ CLinux等。該操作系統(tǒng)是用 C語(yǔ)言和匯編語(yǔ)言編寫的 ,其中大部分代碼都是用 C語(yǔ)言編寫的 ,只有極少部分與處理器密切相關(guān)的代碼是用匯編語(yǔ)言編寫 ,所以用戶只需做很少的工作可以很方便的移植到各類 8 位、 16 位、 32 位嵌入式處理器上。 μ C/OSⅡ是專為嵌入式應(yīng)用設(shè)計(jì)的,可移植在 8 位、 16 6 位、 32 位單片機(jī)或 DSP中。 ⑧中斷管理 中斷可以使正在執(zhí)行的任務(wù)暫時(shí)掛起。 8 OS_ENTER_CRITICAL()和 OS_EXIT_CRITICAL()總是成對(duì)使用的,把臨界段代碼包起來(lái)。 ④等待狀態(tài) 等待除 CPU 以外的其它資源或條件(如信號(hào)量),不能運(yùn)行。 if OS_TASK_CREATE_EXT_EN0 void *OSTCBExtPtr。amp。amp。 INT8U OSTCBBitX。任務(wù)調(diào)度器的主要工作有兩項(xiàng):一是在任務(wù)就緒表中查找具有最高優(yōu)先級(jí)別的就緒任務(wù);二是實(shí)現(xiàn)任務(wù)的切換。用戶必須在多任務(wù)系統(tǒng)啟動(dòng)以后再啟動(dòng)時(shí)鐘節(jié)拍源 計(jì)時(shí)也就是在調(diào)用 OSStart()之后。每個(gè)緩沖區(qū)都是單向鏈表,允許 μ C/OSⅡ從緩沖區(qū)中迅速得到或釋放一個(gè)緩沖區(qū)中的元素。它在指令系統(tǒng)、硬件結(jié)構(gòu)和片內(nèi)資源上與標(biāo)準(zhǔn)的 8051 單片機(jī)完全兼容。 與應(yīng)用相關(guān)代碼 與應(yīng)用相關(guān)的代碼主要是兩個(gè)文件 :、 。 與處理器相關(guān)代碼 這是移植中最關(guān)鍵的部分,內(nèi)核將應(yīng)用系統(tǒng)和底層硬件有機(jī)的結(jié)合成一個(gè)實(shí)時(shí)系統(tǒng),要使同一個(gè)內(nèi)核能適用于不同的硬件體系,就需要在內(nèi)核和硬件之間有一個(gè)中間層,這就是與處理器相關(guān)的代碼。 OSTaskStkInit()是在用戶建立任務(wù)時(shí)被函數(shù)OSTaskCreate()和 OSTaskCreateExt()調(diào)用,是系統(tǒng)內(nèi)部自己調(diào)用的,用來(lái)對(duì)用戶任務(wù)的堆棧進(jìn)行初始化,并使用建立好的進(jìn)入就緒態(tài)任務(wù)的堆棧 與系統(tǒng)發(fā)生中斷并且將環(huán)境變量保存完畢時(shí)的棧結(jié)構(gòu)一致。 與移植相關(guān)代碼的修改 的修改 修改后的 : /******* 文件名: ********/ ifndef __OS_CPU_H define __OS_CPU_H ifdef OS_CPU_GLOBALS define OS_CPU_EXT else define OS_CPU_EXT extern endif /******* 數(shù)據(jù)類型 *********/ /******* (編譯器相關(guān) ) **********/ typedef unsigned char BOOLEAN。 typedef double FP64。同時(shí),將任務(wù)堆棧的寬度定義為 8 位。其代碼如下: OS_STK *OSTaskStkInit (void (*task)(void *pd) reentrant, void *ppdata, OS_STK *ptos, INT16U opt) reentrant { OS_STK *stk。 //任務(wù)地址高 8位 *stk++ = 0x0A。 //R1 *stk++ = (INT16U)ppdata 8。 0xFF。 ② 任務(wù)切換函數(shù) OSCtxSw()。尤其 C編譯工具在產(chǎn)生代碼的準(zhǔn)確性和效率方面達(dá)到了較高的水平,而且刻意附加靈活的控制選項(xiàng),在開(kāi)發(fā)大型項(xiàng)目時(shí)非常理想。) 24 { P1=0x7F。) { P1=0xDF。 OSTaskCreate(Task3,(void*)0,amp。再過(guò)去 1秒, Task3恢復(fù) ,點(diǎn)亮 Q3,延時(shí) 1秒。 μ C/OSⅡ提供的僅僅是一個(gè)任務(wù)調(diào)度內(nèi)核,要想實(shí)現(xiàn)一個(gè)相對(duì)完整、使用的嵌入式操作系統(tǒng),還需要相當(dāng)多的擴(kuò)展性工作。 ③操作系統(tǒng)的 API函數(shù)。 實(shí)時(shí)溫度控制系統(tǒng)的設(shè)計(jì) 整體設(shè)計(jì) 在論文的最后,設(shè)計(jì)一個(gè)簡(jiǎn)單的實(shí)時(shí)溫度控制系統(tǒng)。此實(shí)時(shí)溫度控制系統(tǒng)的硬件模塊設(shè)計(jì)如圖 所示: 29 圖 硬件模塊設(shè)計(jì) 共有 5個(gè)模塊,分別對(duì)應(yīng)各自的硬件設(shè)備。當(dāng)讀取完新的設(shè)定溫度后,該任務(wù)又將自己掛起。 總結(jié) 本文以 STC89C52為嵌入式實(shí)時(shí)系統(tǒng)微處理器,以 μ C/OSⅡ?yàn)榍度胧綄?shí)時(shí)操作系統(tǒng)內(nèi)核,從理論上和技術(shù)方法上開(kāi)展了 一系列研究,成功實(shí)現(xiàn)了一個(gè)嵌入式實(shí)時(shí)操作系統(tǒng)平臺(tái)的搭建。在這里,作者希望大家能花更多的時(shí)間去深入研究嵌入式實(shí)時(shí)操作系統(tǒng)的各個(gè)相關(guān)課題。所謂的高可靠性保障包括為開(kāi)放的實(shí)時(shí)系統(tǒng)提供質(zhì)量服務(wù)( QoS),盡可能的為多媒體應(yīng)用以及為復(fù)雜的分布式實(shí)時(shí)系統(tǒng)提供保障。比如,關(guān)于實(shí)時(shí)同步和內(nèi)存管理的研究得出了很多令人激動(dòng)的成果。另一方面,集成內(nèi)核同時(shí)也減少了自編內(nèi)核的需求性。然后,當(dāng)應(yīng)用變得越來(lái)越復(fù)雜,小型快速專有內(nèi)核就越來(lái)越難以依靠這種利用將所有時(shí)間,計(jì)算時(shí)間,資源,優(yōu)先權(quán)和數(shù)值要求劃分為一個(gè)簡(jiǎn)單的優(yōu)先級(jí)給每個(gè)任務(wù)的優(yōu)先級(jí)調(diào)度方式去解決。 gTXRm 6X4NGpP$vSTTamp。gTXRm 6X4NGpP$vSTTamp。 gTXRm 6X4NGpP$vSTTamp。 gTXRm6X4NGpP$vSTTamp。 UE9aQGn8xp$Ramp。 gTXRm6X4NGpP$vSTTamp。 gTXRm 6X4NGpP$vSTTamp。 UE9aQGn8xp$Ramp。ksv*3t nGK8!z89Am YWpazadNuKNamp。 ksv*3t nGK8! z89Am UE9aQGn8xp$Ramp。 ksv*3t nGK8! z89Am YWpazadNuKNamp。 ksv*3t nGK8!z89Am YWv*3tnGK8! z89Am YWpazadNuKNamp。 ksv*3t nGK8!z89Am YWpazadNuKNamp。 ksv* 3t nGK8! z89Am YWv*3tnGK8! z89Am YWpazadNuKNamp。 ksv*3t nGK8! z89Am YWpazadNuKNamp。 ksv*3t nGK8! z89Am YWv*3t nGK8!z89Am YWpazadNuKNamp。 gTXRm 6X4NGpP$vSTTamp。 gTXRm 6X4NGpP$vSTTamp。 ksv*3t nGK8! z89Am YWpazadNuKNamp。gTXRm 6X4NGpP$vSTTamp。ksv*3t nGK8!z89Am YWpazadNuKNamp。 ksv*3t nGK8! z89Am YWpazadNuGK8! z89Am YWpazadNuKNamp。 ksv*3t nGK8! z89Am YWpazadNuKNamp。 ksv*3t nGK8! z89Am YWpazadNuKNamp。 ksv*3t nGK8!z89Am YWpazadNuKNamp。 ksv*3t nGK8! z89Am YWpazadNuKNamp。 gTXRm 6X4NGpP$vSTTamp。 gTXRm 6X4NGpP$vSTTamp。 ksv*3t nGK8!z89Am YWpazadNuKNamp。gTXRm 6X4NGpP$vSTTamp。 gTXRm6X4NGpP$vSTTamp。 gTXRm 6X4NGpP$vSTTamp。gTXRm 6X4NGpP$vSTTamp。 QA9wkxFyeQ^! djsXuyUP2kNXpRWXm Aamp。不過(guò),許多實(shí)時(shí)系統(tǒng)的設(shè)計(jì)者使用這些功能作為基礎(chǔ)來(lái)建立實(shí)時(shí)系統(tǒng)。 小型快速專有內(nèi)核 小型快速專有內(nèi)核分為兩種類型:自編和商業(yè)辦公用。許多行業(yè)標(biāo)準(zhǔn)也受到了實(shí)時(shí)操作系統(tǒng)研究的影響,包括 POSIX的實(shí)時(shí)擴(kuò)展, Java的實(shí)時(shí)規(guī)范, OSEK(自適應(yīng)于實(shí)時(shí)操作系統(tǒng)的標(biāo)準(zhǔn) ), Ada83 和 Ada95。 最后,我要感謝我的同學(xué),你們?cè)谏詈蛯W(xué)習(xí)中給我的幫助我將一生難忘,因?yàn)槟銈?,我的大學(xué)生活才變得豐富多彩。通過(guò)有效的服務(wù),如信號(hào)量、郵箱、隊(duì)列、處理延時(shí)和超時(shí)等,使得資源得到更好的利用。因?yàn)槭菍?shí)時(shí)溫度采集,所以在 OSTimeDly()中的數(shù)值應(yīng)該較小,若系統(tǒng)的時(shí)鐘節(jié)拍為 10 次 /秒,那么可以設(shè)定OSTimeDly()中的數(shù)值為 5 個(gè)時(shí)鐘節(jié)拍的大小,即每 秒讀取一次溫度數(shù)據(jù)。 ③用戶任務(wù)程序。 ④進(jìn)行實(shí)際溫度和設(shè)定溫度的比較。用戶的應(yīng)用程序建立在系統(tǒng)的任務(wù)基礎(chǔ)之上。外圍的硬件系統(tǒng)是保證整個(gè) RTOS 系統(tǒng)實(shí)現(xiàn)指定任務(wù)和指定功能的最底層 部件。證明了 μ C/OSⅡ內(nèi)核的正確運(yùn)行,移植的成功。可以清晰的觀察到亮燈的順序?yàn)椋?Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q3.... 分析:系統(tǒng)啟動(dòng)后,內(nèi)核完成必要的初始化之后,開(kāi)始任務(wù)調(diào)度,此時(shí) Task1是 4 個(gè)就緒態(tài)任務(wù)中優(yōu)先級(jí)最高的,得到 CPU開(kāi)始執(zhí)行,點(diǎn)亮 Q1,延時(shí) 4 秒,轉(zhuǎn)入休眠;接著轉(zhuǎn)入 Task2,點(diǎn)亮 Q2,延時(shí) 2秒;最后 Task3 得到運(yùn)行,點(diǎn)亮 Q3,延時(shí) 1 秒。 OSTaskCreate(Task1,(void*)0,amp。) { P1=0xBF。 移植測(cè)試程序 為了證明 μ C/OSⅡ能在 STC89C52上成功的移植,可以編寫一個(gè)測(cè)試程序來(lái)證明。OSIntCtxSw()的代碼大部分都與 OSCtxSw()相同,僅僅在以下兩點(diǎn)有所區(qū)別 :由于中斷已經(jīng)發(fā)生,此處不需要再保存寄存器; OSIntCtxSw()需要調(diào)整堆棧指針,去掉堆棧中一些不需要的內(nèi)容,以使堆棧中止包含任務(wù)的運(yùn)行環(huán)境。因此,只需要寫 3 個(gè)匯編語(yǔ)言函數(shù)。 //R5 21 *stk++ = 0x06。 //DPL *stk++ = 0x00。 //用戶堆棧最低有效地址 *stk++ = 15。這表明堆棧 從下(低地址)往上(高地址)遞增。 19 void InitHardware(void) reentrant。 typedef signed int INT16S。OSStartHighRdy()函數(shù)在多任務(wù)系統(tǒng)啟動(dòng)函數(shù) OSStart()中調(diào)用。因?yàn)椴煌奶幚砥饔胁煌淖珠L(zhǎng),所以 μ C/OSⅡ的移植包括了一系列的類型定義以確保其可移植性。 16 ② 文件是一個(gè)主頭文件,它出現(xiàn)在每個(gè) .C 文件的第一行。 ⑧ 3個(gè) 16 位定時(shí)器 /計(jì)數(shù)器,其中定時(shí)器 0 還刻意當(dāng)成 2個(gè) 8位 定時(shí)器; ⑨ 外部中斷 4 路,下降沿中斷或低電平出發(fā)中斷。 3 μ C
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1