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

正文內(nèi)容

第八講2內(nèi)核結(jié)構(gòu)-資料下載頁(yè)

2025-08-01 13:24本頁(yè)面
  

【正文】 Ⅱ 總是建立一個(gè) 空閑任務(wù) ,這個(gè)任務(wù)在沒有其它任務(wù)進(jìn)入就緒態(tài)時(shí)投入運(yùn)行 。 空閑任務(wù) OSTaskIdle()什么也不做,只是在不停地給一個(gè) 32位的名叫 OSIdleCtr的計(jì)數(shù)器加 1, 統(tǒng)計(jì)任務(wù) (使用這個(gè)計(jì)數(shù)器以確定現(xiàn)行應(yīng)用軟件實(shí)際消耗的 CPU時(shí)間 。 《 嵌入式系統(tǒng)設(shè)計(jì) 》 2022/8/17 35 統(tǒng)計(jì)任務(wù) OSTaskStat() 提供運(yùn)行時(shí)間統(tǒng)計(jì)的任務(wù) OSTaskStat(),如果用戶將系統(tǒng)定義常數(shù) OS_TASK_STAT_EN設(shè)為 1,這個(gè)任務(wù)就會(huì)建立; OSTaskStat()告訴用戶應(yīng)用程序使用了多少 CPU時(shí)間,用百分比表示,這個(gè)值放在一個(gè)有符號(hào) 8位整數(shù)OSCPUsage中,精讀度是 1個(gè)百分點(diǎn) 。 如果用戶應(yīng)用程序打算使用統(tǒng)計(jì)任務(wù),用戶必須在初始化時(shí)建立一個(gè)唯一的任務(wù),在這個(gè)任務(wù)中調(diào)用OSStatInit()。 《 嵌入式系統(tǒng)設(shè)計(jì) 》 2022/8/17 36 中斷處理 OSIntEnter() /OSIntExit() OSIntEnter()通知 μC/OSⅡ 一個(gè)中斷處理函數(shù)正在執(zhí)行,這有助于 μC/OSⅡ 掌握中斷嵌套的情況; void OSIntEnter (void) { OS_ENTER_CRITICAL()。 OSIntNesting++。 OS_EXIT_CRITICAL()。 } OSIntExit ()通知 μC/OSⅡ 一個(gè)中斷服務(wù)已執(zhí)行完畢,這有助于 μC/OSⅡ 掌握中斷嵌套的情況; 通常 OSIntExit ()和 OSIntEnter ()聯(lián)合使用; 當(dāng)最后一層嵌套的中斷執(zhí)行完畢后,如果有更高優(yōu)先級(jí)的任務(wù)準(zhǔn)備就緒, μC/OSⅡ 會(huì)調(diào)用任務(wù)調(diào)度函數(shù),在這種情況下,中斷返回到更高優(yōu)先級(jí)的任務(wù)而不是被中斷了的任務(wù); 《 嵌入式系統(tǒng)設(shè)計(jì) 》 2022/8/17 37 時(shí)鐘節(jié)拍服務(wù)例程 OSTickISR μC/OS需要用戶提供周期性信號(hào)源,用于實(shí)現(xiàn)時(shí)間延時(shí)和確認(rèn)超時(shí); 節(jié)拍率應(yīng)在每秒 10次到 100次之間,或者說 10到 100Hz; 時(shí)鐘節(jié)拍率越高,系統(tǒng)的額外負(fù)荷就越重; 用戶 必須 在多任務(wù)系統(tǒng)啟動(dòng) 以后 再開啟時(shí)鐘節(jié)拍器 , 也就是在 調(diào)用 OSStart()之后 《 嵌入式系統(tǒng)設(shè)計(jì) 》 2022/8/17 38 《 嵌入式系統(tǒng)設(shè)計(jì) 》 2022/8/17 39 例: OSTickISR的示意代碼 時(shí)鐘節(jié)拍中斷服務(wù)子程序必須用匯編語(yǔ)言編寫,因?yàn)樵贑語(yǔ)言里不能直接處理 CPU的寄存器; 《 嵌入式系統(tǒng)設(shè)計(jì) 》 2022/8/17 40 獲取當(dāng)前 μC/OSⅡ 的版本號(hào) OSVersion() 應(yīng)用程序調(diào)用 OSVersion可以得到當(dāng)前 μC/OSⅡ 的版本號(hào)。 OSVersion()函數(shù)返回版本號(hào)值乘以 100。換言之, 200表示版本號(hào) 。 《 嵌入式系統(tǒng)設(shè)計(jì) 》 2022/8/17 41 μC/OSⅡ 初始化 OSInit() OSIint()初始化 μC/OSⅡ 所有的變量和數(shù)據(jù)結(jié)構(gòu); OSInit()建立空閑任務(wù) idle task,這個(gè)任務(wù)總是處于就緒態(tài)的; OSInit()還建立統(tǒng)計(jì)任務(wù) OSTaskStat()并且讓其進(jìn)入就緒態(tài) ; 以上兩個(gè)任務(wù)的任務(wù)控制塊( OS_TCBs)是用雙向鏈表鏈接在一起的。 OSTCBList指向這個(gè)鏈表的起始處 OSInit()還初始化了 4個(gè)空數(shù)據(jù)結(jié)構(gòu)緩沖區(qū),如后圖 8所示。每個(gè)緩沖區(qū)都是單向鏈表,允許 μC/OSⅡ 從緩沖區(qū)中迅速得到或釋放一個(gè)緩沖區(qū)中的元素。 《 嵌入式系統(tǒng)設(shè)計(jì) 》 2022/8/17 42 《 嵌入式系統(tǒng)設(shè)計(jì) 》 2022/8/17 43 《 嵌入式系統(tǒng)設(shè)計(jì) 》 2022/8/17 44 初始化 OSInit()使用示例: 《 嵌入式系統(tǒng)設(shè)計(jì) 》 2022/8/17 45 μC/OSⅡ 的啟動(dòng) OSStart() OSStart( )啟動(dòng) μC/OSII的多任務(wù)。然而,啟動(dòng) μC/OSⅡ 之前,用戶至少要建立一個(gè)應(yīng)用任務(wù) ; 注意 /警告 調(diào)用 OSStart( )之前必須先調(diào)用 OSInit ( )。在用戶程序中OSStart( )只能被調(diào)用一次。
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1