在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

你對中斷究竟有多了解?

Dp1040 ? 來源:技術讓夢想更偉大 ? 2023-06-16 16:41 ? 次閱讀

如果要你講一下中斷,你會怎么去描述一個中斷的觸發流程呢?

最基礎的可能就是:保護現場 - 中斷處理 - 恢復現場...

那保護現場做了什么事情?中斷處理需要注意什么事情?恢復現場又做了什么事情?

相對應的,關于中斷,還有很多這樣的問題:

觸發中斷的因素有哪些?

各中斷源如何向CPU提出中斷請求?

CPU如何區分是哪個中斷觸發的請求?

當多個中斷源同時提出中斷請求時,中斷系統如何確定優先響應哪個中斷請求?

CPU在什么條件、什么時候、以什么方式來響應中斷?

CPU響應中斷后,如何保護現場?

CPU響應中斷后,如何停止源程序的執行而轉入中斷服務程序的入口地址?

CPU響應中斷結束后,如何恢復現場?如何返回到源程序的間斷處?

在中斷處理的過程中又出現了新的中斷請求,CPU該如何處理?

設計中斷系統時,需要考慮哪些主要問題?

本文希望就以上的問題,對中斷觸發和響應流程進行一個詳細的描述。力求可以通過一篇文章將中斷講明白!

首先,我先簡單的描述一個中斷的觸發流程:

我們通過某些操作(例如按下按鍵),產生了電信號(電平觸發 / 邊沿觸發);

這些電平信號,通過硬件上的中斷引腳,被傳遞到了中斷控制器

如果該中斷沒有被關閉/屏蔽,中斷控制器會向CPU發送中斷請求;

CPU收到中斷請求后,判斷是否響應該中斷;

(保護現場)如果一切條件滿足,響應中斷,將當前正在運行的程序上下文保存到寄存器/堆棧中;

(中斷處理)CPU尋找中斷服務程序的入口地址,跳轉到中斷服務程序運行;

(恢復現場)中斷處理結束后,CPU會將之前保存在堆棧中的斷點和寄存器重新恢復;

CPU繼續運行之前被打斷的程序。

在上述例子中,相關的問題如下:

產生中斷的方式有哪些?

答:主動觸發、軟件觸發、硬件觸發。

主動觸發(程序中通過函數接口,通知CPU進行中斷處理)

內部中斷(數據溢出、非法地址訪問、未識別的操作碼...)

外部中斷(輸入/輸出設備、硬件設備故障...)

CPU如何區分是哪個中斷源觸發的請求?

答:中斷引腳+中斷號。

每一個能夠發出中斷請求的硬件設備控制器都有一條名為“IRQ”的輸出線。

所有的IRQ輸出線都與一個名為可編程中斷控制器的硬件電路輸入引腳相連。

中斷控制器會監視IRQ線上的信號。

如果IRQ線上出現信號,中斷控制器會將其轉化成對應的中斷號,通知CPU處理。

CPU根據中斷號,在中斷向量表中找到對應的中斷處理程序

外部設備進行I/O操作時,會隨機產生中斷請求信號。這個信號中會有特定的標志,使計算機能夠判斷是哪個設備提出中斷請求,這個信號就叫做中斷號。

中斷號一般是由中斷控制器提供的,中斷控制器支持一系列的中斷源,并提供對應的中斷號。中斷引腳也是由中斷控制器上引出來的。

即中斷控制器將中斷引腳和中斷號關聯起來,CPU又將中斷號和中斷處理程序關聯起來,

最終實現了通過中斷引腳上的信號,觸發CPU去執行中斷處理程序。

當多個中斷源同時提出中斷請求時,中斷系統(中斷控制器)如何確定優先響應哪個中斷請求?

答:中斷優先級+中斷屏蔽

為使系統能及時響應并處理發生的所有中斷,系統根據引起中斷事件的重要性和緊迫程度,硬件將中斷源分為若干個級別,稱作中斷優先級。

在實際系統中,常常遇到多個中斷源同時請求中斷的情況,這時CPU必須確定首先為哪一個中斷源服務,以及服務的次序。

解決的方法是中斷優先排隊,即根據中斷源請求的輕重緩急,排好中斷處理的優先次序即優先級( Priority ),又稱優先權,先響應優先級最高的中斷請求。

另外,當CPU正在處理某一中斷時,要能響應另一個優先級更高的中斷請求,而屏蔽掉同級或較低級的中斷請求,形成中斷嵌套。

CPU在什么時候、什么條件、以什么方式來響應中斷?

答:可以從產生中斷、接收中斷、執行中斷角度去描述。

中斷控制器對應的中斷引腳上收到信號(產生中斷),中斷未被屏蔽、中斷優先級最高(接收中斷),CPU當前處于可以切換上下文的狀態(執行中斷)。

CPU響應中斷條件:

有中斷源發出的中斷請求;

中斷總允許位EA=1,即CPU開中斷;

申請中斷的中斷源的中斷允許位為1,即中斷沒有被屏蔽;

無同級或更高級中斷正在被服務;

當前的指令周期已經結束。

(保護現場)CPU響應中斷后,在開始執行中斷服務程序之前,需要做哪些操作?如何保護現場?如何保存原程序斷點?

答:簡單來說就是,寄存器、堆棧、壓棧。

保護現場就是當出現中斷時,把CPU的狀態,也就是當前程序地址保存在寄存器中,隨后轉向執行其他任務,當任務完成,從寄存器中取出地址繼續執行。保護現場其實就是保存中斷前一時刻的狀態不被破壞。

CPU保護現場做如下動作:

將標志寄存器內容壓入堆棧,以保護中斷時的狀態;

將IF和TF標志清0,目的是防止在中斷響應的同時又來別的中斷,而將TF清0是為了防止CPU以單步方式執行中斷處理子程序。這時要特別提醒,因為CPU在中斷響應時自動關閉了IF標志,因此用戶如要進行中斷嵌套時,必須在自己的中斷處理子程序中用開中斷指令來重新設置IF;

保護斷點,斷點指的是在響應中斷時,主程序當前指令下面的一條指令的地址。因此保護斷點的動作就是將當前的IP和CS的內容入棧,保護斷點是為了以后正確地返回主程序;

Ps:保護現場應該包括保護程序斷點和保護CPU內部各寄存器內容的現場倆個方面

Ps:主程序和中斷服務子程序都要使用CPU內部寄存器等資源,為使中斷處理程序不破壞主程序中寄存器的內容,應先將斷點處各寄存器的內容壓入堆棧保護起來,再進入的中斷。

(執行中斷)CPU響應中斷后,如何轉入中斷服務程序運行?

答:中斷向量表。

CPU響應中斷做如下動作:

根據中斷號(由中斷控制器傳遞),在中斷向量表中找出相應的中斷服務程序的入口地址,跳轉至中斷服務子程序執行。

Ps:驅動在申請注冊中斷時,會將中斷服務程序和中斷號進行綁定。

Ps:中斷號是由中斷控制器提供的,中斷控制器將對應的中斷號和中斷引腳進行綁定。

(恢復現象)CPU響應中斷結束后,在開始執行中斷服務程序之后,需要做哪些操作?如何恢復現場?如何返回到原程序的斷點處?

答:簡單來說就是,寄存器、堆棧、出棧。

恢復現場就是指將各寄存器和指針恢復到中斷前的狀態。

當中斷處理完畢后,CPU將原程序保存在堆棧中的各個寄存器的內容彈出,即恢復原程序斷點處寄存器的原值。

CPU保護現場做如下動作:

恢復斷點,斷點指的是在響應中斷時,原程序當前指令下面的一條指令的地址。因此恢復斷點的動作就是將先前的指針和寄存器的內容出棧,即恢復原程序斷點處寄存器的原值;

將IF和TF標志置1,允許接收新的中斷;

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • cpu
    cpu
    +關注

    關注

    68

    文章

    10863

    瀏覽量

    211781
  • 中斷
    +關注

    關注

    5

    文章

    898

    瀏覽量

    41502
  • 中斷系統
    +關注

    關注

    1

    文章

    96

    瀏覽量

    61021
  • 程序
    +關注

    關注

    117

    文章

    3787

    瀏覽量

    81049

原文標題:你對中斷究竟有多了解?試著把中斷的觸發流程整理了一遍...

文章出處:【微信號:玩點嵌入式,微信公眾號:玩點嵌入式】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    都說IC設計高薪行業,薪水究竟有多高?大家來曬曬

    IC設計高薪行業,薪水究竟有多?大家來曬曬
    發表于 12-19 16:16

    分布式RAM和Block RAM之間究竟有什么區別?

    您好!分布式RAM和Block RAM之間究竟有什么區別?兩者都只是芯片內存,對吧?但我不知道兩者之間的區別。和..下一個問題.. isaboutMUX ..根據7系列概述,7系列FPGA支持全范圍
    發表于 07-19 06:37

    物聯網生物識別技術究竟有何意義?

    說到物聯網生物識別技術大家感覺脫離我們的日常生活,本文帶大家近距離了解物聯網生物識別技術究竟有何意義?各位工程師讀完此文心里就清楚多了
    發表于 10-21 09:57

    液晶PC與液晶電視究竟有什么區別?

    為什么要選擇液晶?液晶PC與液晶電視究竟有什么區別?如何選擇液晶PC與液晶電視?
    發表于 06-07 06:13

    請問一下RFID與NFC究竟有什么關系?

    RFID與NFC究竟有什么關系?
    發表于 06-15 07:06

    面向列的HBase存儲結構究竟有什么樣的不同之處呢?

    HBase是什么?HBase的存儲結構究竟是怎樣的呢?面向列的HBase存儲結構究竟有什么樣的不同之處呢?
    發表于 06-16 06:52

    請問一下芯片制造究竟有多難?

    請問一下芯片制造究竟有多難?
    發表于 06-18 06:53

    PCI-E4.0究竟有什么優勢?

    PCI-E4.0究竟有什么優勢?PCI-E究竟指的是什么呢?
    發表于 06-18 06:54

    LPDDR5和LPDDR4X兩者究竟有多大區別?

    有人說嵌入式閃存芯片LPDDR5和LPDDR4X差不多?真的如此嗎?兩者究竟有多大區別?
    發表于 06-18 06:15

    內存時序究竟有多重要呢?究竟該如何去選擇內存條呢?

    內存時序究竟有多重要呢?究竟該如何去選擇內存條呢?DDR內存時序是高一些好還是低一些好?
    發表于 06-18 08:20

    OpenPLC開源工業控制器究竟有何用處

    OpenPLC開源工業控制器有哪些優點?OpenPLC開源工業控制器有哪些功能?OpenPLC開源工業控制器究竟有何用處?
    發表于 09-02 07:42

    計算機硬件計量單位究竟有什么含義

    在我們購買和日常使用計算機的過程中,不可避免地會遇到一些硬件計量單位,也許這些單位都可以朗朗上口,可是,它們究竟有什么含義?相關聯的單位之間的換算關系是怎樣的?對硬件的性能有什么影響?恐怕了解
    發表于 09-08 07:31

    戶外電源究竟有什么功能與細節呢

    電源的詳細功能以及具體細節,這會讓的戶外移動電源使用增添許多麻煩。那么戶外電源究竟有什么功能與細節呢?相信看完以下內容會讓戶外愛好者對戶外電源的便利之處理解更上一層樓。一、多種輸出、輸入方式戶外移動電源一般都會存在多種輸出、輸入方式。在輸出方面,一般會提供DC、AC、U
    發表于 12-30 07:52

    嵌入式與單片機它們之間究竟有什么區別

    什么是嵌入式?什么是單片機?嵌入式與單片機它們之間究竟有什么區別?
    發表于 01-19 06:27

    共模電感選型依據究竟有哪些

    電子發燒友網站提供《共模電感選型依據究竟有哪些.docx》資料免費下載
    發表于 05-06 10:26 ?1次下載
    主站蜘蛛池模板: 黄色大全片| 亚洲综合激情另类专区| 精品看片| 热久久久| 亚洲欧美精品成人久久91| 午夜伦理在线观看| 色丁香婷婷| 久久国产精品视频| www.4虎影院| 色综合天天| 开心丁香婷婷深爱五月| 国产热re99久久6国产精品| 欧美一区二区精品| 天堂网www天堂在线资源链接| 爱操综合| 特黄毛片| 一级免费黄色片| 国产精品成人一区二区| 中文字幕123| 特黄一级黄色片| 一级一级一片免费高清| 国产精品亚洲精品日韩动图| 亚洲性天堂| 成年大片免费视频播放手机不卡| 天天搞夜夜操| 国产亚洲欧美一区| 全日本爽视频在线| 色综合久久98天天综合| 一级做α爰片久久毛片| 女张腿男人桶羞羞漫画| 在线天堂中文在线资源网| 一区二区福利| 久久香蕉国产精品一区二区三 | 97久久伊人精品影院| 91大神视频网站| 免费观看一级成人毛片| 国产永久免费爽视频在线| 四虎国产欧美成人影院| 天天操夜夜操美女| 亚洲卡1卡2卡新区网站| 久久都是精品|