亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

深入淺出處理器(中)_中斷

發布時間:2020-08-21 15:45:56 來源:網絡 閱讀:3451 作者:三九感冒靈 欄目:系統運維

專題1—深入淺出處理器

2.處理器(中)_中斷

2.1中斷的概念和意義:

中斷時一種處理器與外設進行通信的機制,用于通知處理器外部有“重要事件”發生,一般情況下中斷需要被處理器響應。

2.2中斷服務程序(ISR)

1.從外設中讀取中斷寄存器的值,以便了解中斷的類型
2.根據中斷類型具體設計處理邏輯
3.清除外設狀態寄存器中的中斷標志位
4.清理處理器中的中斷標識位
整個處理器過程如下所示:
深入淺出處理器(中)_中斷
軟件工程師眼中的中斷服務程序:
— 不能有返回值,不能有參數傳遞
— 必須短小而高效,避免浮點運算
錯誤示例:
__interrupt double compute_area(double radius)
{
double area = PI radius radius;
printf (“\n area = %f”, area);
return area;
}

2.3中斷的意義:

—中斷的意義在于應用程序不必關心中斷的發生與處理
—中斷服務程序不必關系應用程序的執行狀態
—中斷是“上層應用”與“底層代碼”的分割邊界。

深入淺出處理器(中)_中斷

2.4中斷的類型

—硬中斷:通過處理器中斷信號線產生的中斷
CPU和外部設備是分別獨立的硬件執行單元,CPU對全部設備進行管理和資源調度處理,CPU要想知道外部設備的運行狀態,要么CPU定時的去查看外部設備特定寄存器,要么讓外部設備在出現需要CPU干涉處理時“打斷”CPU,讓它來處理外部設備的請求,毫無疑問第二種方式更合理,可以讓CPU“專心”去工作,這里的“打斷”操作就叫做中斷請求,根據請求的緊急情況,中斷請求分一般中斷和快速中斷,快速中斷具有最高中斷優先級和最小的中斷延遲,通常用于處理高速數據傳輸及通道的中數據恢復處理,如DMA等,絕大部分外設使用一般中斷請求。
—軟中斷:通過非法指令或者特殊指令出發的中斷(或者稱為異常)
異常是應用程序自己調用時產生的,用于用戶程序申請訪問硬件資源時,例如:printf()打 印函數,要將用戶數據打印到顯示器上,用戶程序要想實現打印必須申請使用顯示器,而用戶程序又沒有外設硬件的使用權,只能通過使用軟件中斷指令切換到內核態,通過操作系統內核代碼來訪問外設硬件,內核態是工作在特權模式下,操作系統在特權模式下完成將用戶數據打印到顯示器上。這樣做的目的無非是為了保護操 作系統的安全和硬件資源的合理使用,該異常在管理模式下處理。

2.5中斷優先級

多個中斷同時出現時,處理器會優先響應高優先級的中斷,低優先級的中斷ISR執行時可以被高優先級的中斷打斷。
思考:CPU如何保證fiq比irq快?有2個原因:
第一,fiq模式有專用的r8~r12,因此在fiq的isr中可以直接使用r8-r12而不用保存,這就能節省時間;
第二,異常向量表中fiq是最后一個異常向量入口。因此fiq的isr不需要跳轉,可以直接寫在原地,這樣就比其他異常少跳轉一次,省了些時間。

2.6中斷的應用_程序斷點

A.斷點指的是調試工具用于暫停代碼執行的指令位置、
B.斷點的實現為處理器的中斷支持
軟件斷點:利用非法指令異常產生中斷實現(軟中斷)
硬件中斷:利用中斷寄存器的特定產生中斷實現
斷點程序的原理:
1.獲取源程序制定行對應的代碼地址
2.把代碼地址中的指令替換為中斷觸發指令
3.在中斷服務程序中將控制權交給調試程序
4.調試程序讀取源程序上下文信息
5.調試程序將代碼中的指令還原
6.源程序從斷點處繼續向下執行
上述過程和中斷的處理過程完全一致,圖解如下:
深入淺出處理器(中)_中斷

2.7中斷調試的工程應用

背景:嵌入式產品的實時性要求很高,各個task 有嚴格的時間要求,斷點調試不可用,只能依賴于打印調試(日志調試發),但是打印調試,打印的數據分布于產品各個角落,難以分析和定位,同時打印操作設計到IO操作,會影響產品效率
解決思路:結合日志調試發和斷點調試法的優點,使得實時系統調試時,能夠任意查看制定代碼行上下文信息;并且不增加打印語句,不暫停執行。
最終方案:
1.獲取原程序制定行對應的代碼地址
2.把代碼地址中的指令替換為中斷觸發指令
3.在中斷服務程序中抓取全局信息和棧信息
4.抓取的信息發送會調試程序解析并輸出
深入淺出處理器(中)_中斷
本文參考自狄泰課程,特此致謝。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

竹北市| 运城市| 如东县| 古蔺县| 类乌齐县| 大宁县| 四平市| 楚雄市| 唐河县| 涞水县| 剑川县| 辽中县| 浦北县| 久治县| 虹口区| 山东省| 博白县| 商洛市| 阳泉市| 武宁县| 卫辉市| 华安县| 桑植县| 莱芜市| 连云港市| 建湖县| 泽州县| 昌黎县| 年辖:市辖区| 水富县| 通山县| 张北县| 中山市| 潍坊市| 凤庆县| 永安市| 阿瓦提县| 南昌县| 开江县| 平乡县| 上犹县|