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

正文內(nèi)容

基于ucos-ⅱ的ic卡門禁系統(tǒng)設計和實現(xiàn)(編輯修改稿)

2024-12-13 08:37 本頁面
 

【文章內(nèi)容簡介】 內(nèi)核的功能,而這是 90 年代的嵌入式操作系統(tǒng)內(nèi)核, 如 VxWorks 和 VRTXsa 才有的技術口 1。 2. 3 uC/ OSIl 的任務 IlC/ OSII 內(nèi)核提供的基本服務是任務切換。內(nèi)核負責為每個任務分配 CPU 時問,并且負責各任務之間的通訊。 一個任務,就是一個簡單的程序,該程序可以獨享 CPU 控制權。在實時 應用的過程中,設計者把問題分割成多個任務,并動態(tài)的為每個任務賦予一定 的優(yōu)先級,使每個任務至少能解決一個問題陽 1。 從實現(xiàn)角度來看, uC/ OSII 是一組 C 函數(shù)庫,應用程序代碼與內(nèi)核函數(shù)庫 連接在一起,生成一個目標代碼。任務通常是一個無限的循環(huán)。它擁有自己的代 碼和堆??臻g 保存該任務的寄存器、返回地址和 I 臨時參數(shù) ,一般都是空函數(shù), 不會返回任何值。任務執(zhí)行一次后,設置延時參數(shù) OSTimeDLY。表明在經(jīng)過 OSTimeDLY 個時鐘周期后再次運行,然后任務進行切換,使其他任務運行。例如: void Task void 參數(shù)定義; for ;; 任務執(zhí)行代碼; 第二章嵌入式實時操作系統(tǒng)Ⅱ C/ OS― II OSTimeDLY ;//延時函數(shù):清除任務就緒標志,設置延時的時鐘周期。 OSSched ://調(diào)用 OSSched 進行任務調(diào)度。 2. 4 uC/ OSII 任務的狀態(tài)與轉(zhuǎn)換 通常情況下,每個任務都處在以下這五種狀態(tài)之一曲 1。 ●休眠態(tài) 休眠態(tài)表示該任務駐留在內(nèi)存中,但并不被多任務內(nèi)核所調(diào)度。 ●就緒態(tài) 就緒表示該任務已經(jīng)準備好,可以運行了,但由于該任務的優(yōu)先級比 正在運行的任務的優(yōu)先級低,所以暫時還不能運行。 ??運行態(tài) . 運行態(tài)的任務是指該任務掌握了 CPU 的控制權,正在運行中。. ?? 掛起態(tài) . . 掛起狀態(tài)也可以叫做等待事件態(tài) WAITING,指該任務在等待某一事件 的發(fā)生 ??被中斷狀態(tài) 發(fā)生中斷時, CPU 提供相應的中斷服務, 原來正在運行的任務就進入 了被中斷狀態(tài)。 圖 2― 1 表示 pc/ os― II 中一些函數(shù)提供的服務,這些函數(shù)使任務從一種狀 態(tài)變到另一種狀態(tài)。 圖 2― 1 任務狀態(tài)轉(zhuǎn)換 第二章嵌入式實時操作系統(tǒng) uC/ OSII uc/ os 提供了以下原型函數(shù),對任務進行管理。 建立任務: OSTaskCreate 刪除任務: OSTaskDel 請求刪除任務: OSTaskDelReq 掛 起任務: OSTaskSuspend 恢復任務: OSTaskResume 堆棧檢驗: OSTaskStkChk 獲得有關任務的信息: OSTaskOuery 2. 5 u Ier C/ OSII 的任務調(diào)度 Schedu 任務調(diào)度主要是協(xié)調(diào)任務對計算機系統(tǒng)內(nèi)資源 如內(nèi)存、 I/ 0 設備、 CPU 的 爭奪使用。任務調(diào)度又稱為 CPU 調(diào)度,其基本原理是按照某種原則為處于就緒 狀態(tài)的進程分配 CPU。由于嵌入式系統(tǒng)中內(nèi)存和 I/ O 設備一般都和 CPU 同時歸 屬于某任務,任務調(diào)度可分為”剝奪型調(diào)度”和”非剝奪型調(diào)度”兩種基本方式。 所謂”非剝奪型調(diào)度”是指:一旦某個進程被調(diào)度執(zhí)行,則該進程一直執(zhí)行 下去直至該進程結束,或由于某種原因自行放棄 CPU 進入等待狀態(tài),才將CPU 重新分配給其他任務。 。 所謂”剝奪型調(diào)度”是指:一 旦就緒狀態(tài)中出現(xiàn)優(yōu)先權更高的進程,或者運 行的任務已用滿了規(guī)定的時間片時,便立即剝奪當前任務的運行 將其放回就緒 狀態(tài) ,把 CPU 分配給其他任務口訓。 作為實時操作系統(tǒng), Ilc/ os― II 是采用的可剝奪型實時多任務內(nèi)核。可剝 奪型的實時內(nèi)核在任何時候都運行就緒了的最高優(yōu)先級的任務。如果是中斷服 務子程序使一個高優(yōu)先級的任務進入就緒態(tài),到中斷服務完成時,內(nèi)核讓此時 優(yōu)先級最高的任務運行 不一定是那個被中斷了的任務 ,如圖 22。任務級系 統(tǒng)響應時間得到了最優(yōu)化,且是可知的。 Low T 鎬 lc Priodty / 鬣溺 i makes the hig TaskT 量 TI 二 prIo 啊蜮刪 y“蘸溺 ―ISR 圖 22 可剝奪內(nèi)核 第二章嵌入式實時操作系統(tǒng) uC/ OS― II IJC/ OSII 調(diào)度工作的內(nèi)容可以分為兩部分:最高優(yōu)先級任務的尋找和任務 切換? 1。其最高優(yōu)先級任務的尋找是通過建立就緒任務表來實現(xiàn)的。內(nèi)核將系 統(tǒng)中處于就緒態(tài)的任務在就緒表 ReadyList 進行標注,通過就緒表中的兩個 個任務 有唯一的優(yōu)先級,因此任務的優(yōu)先級也是任務的唯一編號 ID ,可以作 為任務的唯一標識。 |lc/ os― II 中的每一個任務都有獨立的堆??諉枺⒂幸? control 個稱為任務控制塊 TCB task block 的數(shù)據(jù)結構,記錄任務執(zhí)行的環(huán) 境,包括任務的優(yōu)先級、任務的堆棧指針、任務的相關事件控制塊指針等,其 中第一個成員變量就是保存的任務堆棧指針。內(nèi)核可用控制塊優(yōu)先級表 用任務控制快 OS― TCB、就緒表 Ready List 中找 來進行任務調(diào)度的。任務調(diào)度程序 OSSched 首先由就緒表 Ready 到當前系統(tǒng)中處于就緒態(tài)的優(yōu)先級最高的任務,然后根據(jù)其優(yōu)先級由控制塊優(yōu) TASK 先級表 OSTCBPrioTbl 口取得相應任務控制塊的地址,由 OSSW 程序進 行運行環(huán)境的切換。將當前運行環(huán)境切 換成該任務的運行環(huán)境,則該任務由就 緒態(tài)轉(zhuǎn)為運行態(tài)。當這個任務運行完畢或因其它原因掛起時,仟務調(diào)度程序 OSSched 再次到就緒表 ReadyList 中尋找當前系統(tǒng)中處于就緒態(tài)中優(yōu)先級 最高的任務,轉(zhuǎn)而執(zhí)行該任務,如此完成任務調(diào)度。若在任務運行時發(fā)生中斷, 則轉(zhuǎn)向執(zhí)行中斷程序,執(zhí)行完畢后不是簡單的返回中斷調(diào)用處,而是由 OSIntExit 程序進行任務調(diào)度,執(zhí)行當前系統(tǒng)中優(yōu)先級最高的就緒態(tài)任務。 當系統(tǒng)中所有任務都執(zhí)行完畢時,任務調(diào)度程序 OSSched 就不斷執(zhí)行優(yōu)先級 、 最低的空閑任務 OSTaskIdle ,等待用戶程序的運行。 Task 任務調(diào)度器 the Scheduler 實現(xiàn)函數(shù): void OSSched void INT8U Y: 0S― ENTER_CRITICAL : I if OSLockNestingOSIntNesting : 0 脅調(diào)度鎖,或者處于中斷狀態(tài)禁止調(diào)度木/ y: OSUnMapTbl[OSRdyGrp]; /; l:獲取準備就緒組里最高優(yōu)先級的任務木/ if OSPrioHighRdy! OSPrioCur 第二章嵌入式實時操作系統(tǒng) uC/ OSII /木設置運行任務為最高優(yōu)先級任務木/ OSCtxSwCtr++: /木執(zhí)行運行環(huán)境切換木/ OS― TASK_SW : OS― EXIT― CRITICAL : 為縮短切換時問, OSSched 全部代碼都可以用匯編語言寫。 IJC/ OSII任 務調(diào)度所花的時間是常數(shù),與應用程序中建立的任務數(shù)量無關。 2. 6 uC/ OSII 的時鐘中斷 2. 6. 1 系統(tǒng)中斷 中斷是一種硬件機制,用于通知 CPU 有個異步事件發(fā)生了。中斷一旦被系 統(tǒng)識別, CPU 則保護現(xiàn)場 CONTEXT ,即部分 或全部 寄存器的值,跳轉(zhuǎn)到專門 的子程序,稱為中斷服務子程序 ISR 。中斷服務子程序?qū)κ录M行處理,處理 完成后執(zhí)行任務調(diào)度,開始運行優(yōu)先級最高的任務Ⅱ刳。 中斷使得 CPU 可以在事件發(fā)生時再予以處理,而不必讓微處理器連續(xù)不斷 地查詢 POLLING 是否有事件發(fā)生。通過兩條特殊宏指令:關中斷 DisableInterrupt 和開中斷 EnableInterrupt ,可以讓微處理器不響應 或響應中斷。在門禁系統(tǒng)的設計中,關中斷的時間和中斷服務的處理時間都設 計的盡可能的短,以避免引起中斷丟失。 2. 6. 2 系統(tǒng)時鐘節(jié)拍 時鐘節(jié)拍中斷是一個非常重要的、特定的周期性中斷 時鐘中斷 ,因為整 個操作系統(tǒng)的活動都受到它的激勵。這個中斷可以看作是系統(tǒng)心臟的脈動。操 作系統(tǒng)通過時鐘中斷來確定時 間間隔,實現(xiàn)時問的延時及確定任務超時。中斷 之間的時問問隔取決于不同的應用,一般在 10,200Ills 之間。時鐘的節(jié)拍式中 斷使得內(nèi)核可以將任務延時若干個整數(shù)時鐘節(jié)拍,以及當任務等待事件發(fā)生時 提供等待超時的依據(jù)168。 3I。時鐘節(jié)拍頻率越快,門禁系統(tǒng)的額外開銷就越大。因 此系統(tǒng)定義了 32 位無符號整數(shù) OSTime 來記錄系統(tǒng)啟動后時鐘滴答的數(shù)目。在 多任務系統(tǒng)啟動以后再開啟時鐘節(jié)拍器,也就是在調(diào)用 OSStart 之后。 u 實現(xiàn)的。時鐘節(jié)拍中斷服務子程序的偽代碼如下: I 第二章嵌入式實時操作系統(tǒng) uC/ OS― I void OSTickISR v
點擊復制文檔內(nèi)容
教學課件相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1