中斷慢慢積累

2021-10-12 10:20:55 字數 2149 閱讀 5918

version

sdescription

date

byv1

cfirst version

2020-12-19

ayzp

c―― create,

a—— add,

m—— modify,

d—— delete。

中斷這個知識點很常見,在微控制器、作業系統裡都有。應該都比較熟悉了。

除了是在這方面,生活中我們也有很多中斷事件,比如正在寫csdn的你,突然想到乙個很棒的點子,這個點子真的很棒你決定去記錄它,這個時候儲存下你現在寫的csdn部落格,轉去用紙筆記錄你那個很棒的點子,然後等記錄完之後開啟之前儲存的csdn部落格位置,繼續寫,其實這就完成了乙個中斷過程。

從這個例子,我們可以知道中斷過程為:

請求中斷→中斷響應→保護現場→中斷服務→恢復現場→中斷返回。

所謂中斷,就是指cpu在正常執行程式的時候,由於內部/外部事件的觸發、或由程式預先設定,而引起cpu暫時中止當前正在執行的程式,儲存被執行程式相關資訊到棧中,轉而去執行為內部/外部事件、或由程式預先設定的事件的中斷服務子程式,待執行完中斷服務子程式後,cpu再獲取被儲存在棧中被中斷的程式的資訊,繼續執行被中斷的程式,這一過程叫做中斷。

中斷向量表:把系統中所有的中斷型別碼及其對應的中斷向量按一定的規律存放在乙個區域內,這個儲存區域就叫做中斷向量表;

中斷源:軟中斷/內中斷、外中斷/硬體中斷、異常等。

請求中斷→中斷響應→保護現場→中斷服務→恢復現場→中斷返回。

請求中斷:當某一中斷源需要cpu為其進行中斷服務時,就輸出中斷請求訊號,使中斷控制系統的中斷請求觸發器置位,向cpu請求中斷。系統要求中斷請求訊號一直保持到cpu對其進行中斷響應為止;

中斷響應:cpu對系統內部中斷源提出的中斷請求必須響應,而且自動取得中斷服務子程式的入口位址,執行中斷服務子程式。**對於外部中斷,cpu在執行當前指令的最後乙個時鐘週期去查詢intr引腳,若查詢到中斷請求訊號有效,同時在系統開中斷(即if=1)的情況下,cpu向發出中斷請求的外設回送乙個低電平有效的中斷應答訊號,作為對中斷請求intr的應答,系統自動進入中斷響應週期;

保護現場:主程式和中斷服務子程式都要使用cpu內部暫存器等資源,為使中斷處理程式不破壞主程式中暫存器的內容,應先將斷點處各暫存器的內容(主要是當前ip(將要執行的下一條位址)和cs值(**段位址))壓入堆疊保護起來,再進入的中斷處理。現場保護是由使用者使用push指令來實現的;中斷服務:中斷服務是執行中斷的主體部分,不同的中斷請求,有各自不同的中斷服務內容,需要根據中斷源所要完成的功能,事先編寫相應的中斷服務子程式存入記憶體,等待中斷請求響應後呼叫執行;

恢復現場:當中斷處理完畢後,使用者通過pop指令將儲存在堆疊中的各個暫存器的內容彈出,即恢復主程式斷點處暫存器的原值。

中斷返回:在中斷服務子程式的最後要安排一條中斷返回指令iret(interrupt return),執行該指令,系統自動將堆疊內儲存的 ip(將要執行的下一條位址)和cs值(**段位址)彈出,從而恢復主程式斷點處的位址值,同時還自動恢復標誌暫存器fr或efr的內容,使cpu轉到被中斷的程式中繼續執行。**

而中斷巢狀是指中斷系統正在執行乙個中斷服務時,有另乙個優先順序更高的中斷提出中斷請求,這時會暫時終止當前正在執行的級別較低的中斷源的服務程式,去處理級別更高的中斷源,待處理完畢,再返回到被中斷了的中斷服務程式繼續執行,這個過程就是中斷巢狀。

保護現場

中斷服務

恢復現場

中斷返回

cpu在正常執行時,由於內部/外部事件觸發,而引起cpu暫時中止當前正在執行的程式,儲存被執行程式相關資訊到棧,轉而去執行內部/外部事件,執行完後恢復現場,繼續執行被中斷的程式

異常與中斷不同,它在產生時必須考慮與處理器時鐘同步。

實際上,異常也叫同步中斷。由處理器本身產生。

在處理器執行到由於程式設計失誤而導致的錯誤執行(如被0除)的時候,或者是在執行期間出現特殊情況(如缺頁),必須靠核心來處理的時候,處理器就會產生乙個異常。

js函式慢慢積累

這裡積累著工作中js用的函式,慢慢的積累,以後總能幫到自己。1 js對於浮點數的小數字數的控制 tofixed fractiondigits fractiondigits 為小數字數 2 轉大寫 touppercase 3 js中的字元型轉換成數值型 parseint parsefloat 4 js...

VI命令 慢慢積累,哈哈,更新中

pwd 當前目錄 ls 顯示檔案和目錄列表 tree 顯示目錄和檔案樹 cd 切換目錄 mkdir 建立目錄 rmdir 刪除空目錄 檔案操作指令 touch 生成新的空的檔案或更改現有檔案的時間戳 cp 複製檔案或目錄 命令格式 cp 引數 源 目標 cp some dir file1 someo...

VI命令 慢慢積累,哈哈,更新中

pwd 當前目錄 ls 顯示檔案和目錄列表 tree 顯示目錄和檔案樹 cd 切換目錄 mkdir 建立目錄 rmdir 刪除空目錄 檔案操作指令 touch 生成新的空的檔案或更改現有檔案的時間戳 cp 複製檔案或目錄 命令格式 cp 引數 源 目標 cp some dir file1 someo...