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

正文內容

嵌入式系統(tǒng)及應用(編輯修改稿)

2024-11-22 17:02 本頁面
 

【文章內容簡介】 用高優(yōu)先級中斷的服務程序。 ? 當高優(yōu)先級中斷的服務程序執(zhí)行完成后,再 恢復先前的中斷服務程序繼續(xù)執(zhí)行。 26 電子科技大學嵌入式軟件工程中心 程序 高優(yōu)先級中斷服務程序 B 中斷服務程序 A 中斷的嵌套處理 27 電子科技大學嵌入式軟件工程中心 實時內核的中斷管理 ? 中斷服務程序通常包括三個方面的內容: – 中斷前導: ?保存中斷現(xiàn)場,進入中斷處理。 – 用戶中斷服務程序: ?完成對中斷的具體處理。 – 中斷后續(xù): ?恢復中斷現(xiàn)場,退出中斷處理。 28 電子科技大學嵌入式軟件工程中心 實時內核的中斷管理 ? 中斷前導和中斷后續(xù)通常由內核的 中斷接管程序來實現(xiàn)。 – 硬件中斷發(fā)生后,中斷接管程序獲得控制權,先由中斷接管程序進行處理,然后才將控制權交給相應的用戶中斷服務程序。 – 用戶中斷服務程序執(zhí)行完成后,又回到中斷接管程序。 中斷向量號 0 物理中斷向量表 中斷向量號 1 中斷向量號 2 中斷向量號 3 …… 中斷向量號 n 中斷接管程序 中斷向量號 0 虛擬中斷向量表 中斷向量號 1 中斷向量號 2 中斷向量號 3 …… 中斷向量號 m 用戶中斷服務程序 0 用戶中斷服務程序 1 用戶中斷服務程序 2 用戶中斷服務程序 3 用戶中斷服務程序 m 用戶中斷服務程序 29 電子科技大學嵌入式軟件工程中心 實時內核的中斷管理 ? 中斷接管程序負責中斷處理的前導和后續(xù)部分的內容。 – 中斷處理前導 :保存必要的寄存器,并根據(jù)情況在中斷?;蚴侨蝿諚V性O置堆棧的起始位置,然后調用用戶中斷服務程序。 – 中斷處理后續(xù) :實現(xiàn)中斷返回前需要處理的工作,主要包括恢復寄存器和堆棧,并從中斷服務程序返回到被中斷的程序。 ? 用戶中斷服務程序被組織為一個表,稱為 虛擬中斷向量表 。 ? 如果需要在用戶中斷服務程序中使用關于 浮點運算 的操作,中斷前導和中斷后續(xù)中還需要分別對浮點上下文進行保存和恢復。 30 電子科技大學嵌入式軟件工程中心 實時內核的中斷管理 ? 在可搶占內核中,如果中斷處理導致系統(tǒng)中出現(xiàn)比被中斷任務具有更高優(yōu)先級的就緒任務: – 需要把 高優(yōu)先級 任務放入就緒隊列; – 把被中斷的任務從執(zhí)行狀態(tài)轉變?yōu)?就緒狀態(tài) ; – 完成用戶中斷服務程序后,在中斷接管程序的中斷后續(xù)處理中 激活重調度程序 ,使高優(yōu)先級任務能在中斷處理工作完成后得到調度執(zhí)行。 31 電子科技大學嵌入式軟件工程中心 實時內核的中斷管理 ? 在允許中斷嵌套的情況下,在執(zhí)行中斷服務程序的過程中,如果出現(xiàn)高優(yōu)先級的中斷: – 當前中斷服務程序的執(zhí)行將被打斷,以執(zhí)行高優(yōu)先級中斷 的中斷服務程序; – 當高優(yōu)先級中斷的處理完成后,被打斷的中斷服務程序才又得到繼續(xù)執(zhí)行; – 發(fā)生中斷嵌套時,如果需要進行任務調度,任務的調度將延遲到最外層中斷處理結束時才能發(fā)生。 32 電子科技大學嵌入式軟件工程中心 實時內核的中斷管理 ? 中斷服務程序使用被中斷任務的任務棧空間。 – 在允許中斷嵌套處理的情況下,如果中斷嵌套層次過多,中斷服務程序所占用的任務的棧空間可能比較大,將導致任務棧溢出。 ? 使用專門的中斷棧來滿足中斷服務程序的需要,降低任務??臻g使用的不確定性。 – 在系統(tǒng)中開辟一個單獨的中斷棧,為所有中斷服務程序所共享。 – 中斷棧必須擁有足夠的空間,即使在最壞中斷嵌套的情況下,中斷棧也不能溢出。 ? 如果實時內核沒有提供單獨的 中斷棧 ,就需要為任務棧留出足夠的空間,不但要考慮通常的 函數(shù)嵌套調用 ,還需要滿足 中斷嵌套 的需要。 – 使用單獨的中斷棧還能有效降低整個系統(tǒng)對??臻g的需求,否則需要為每個任務棧都預留處理中斷的??臻g。 33 電子科技大學嵌入式軟件工程中心 YourISR: 保存全部 CPU寄存器 。 (1) 調 用 OSIntEnter() 或 OSIntNesting變 量加 1 。 (2) /*OSIntNesting跟蹤中 斷 嵌套 層數(shù) */ if (OSIntNesting = = 1) { (3) OSTCBCurOSTCBStkPtr = SP。 (4) } /*如果是第一 層 中 斷 , 則將 堆 棧 指 針 保存到任 務 的 OS_TCB中 */ 清 中 斷 源 。 (5) 重新 開 中 斷 (6) 執(zhí) 行用 戶 代 碼 做中 斷 服 務 。 (7) 調 用 OSIntExit()。 (8) 恢 復 所有寄存器 。 (9) 執(zhí) 行中 斷 返回指令 。 (10) uC/OS的 Interru
點擊復制文檔內容
教學課件相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1