女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

3天內不再提示

嵌入式開發中中斷與輪詢的內涵與區別

strongerHuang ? 來源:技術讓夢想更偉大 ? 作者:李肖遙 ? 2021-04-30 11:51 ? 次閱讀

摸水了一周,準備在家里好好敲敲代碼,趕趕稿子,正當我專心輸出的時候,被老婆打斷了。

娃拉臭了,趕緊過來!語氣中帶著一絲絲我害怕的味道。

怎么辦?沒辦法只有過去換尿布咯,三兩下,搞定!

之后,我繼續開始肝,但是心想,要是娃再哭鬧了,老婆是不是會罵人了?想著不行,我得去看看,于是我每隔幾分鐘就去瞅瞅,媳婦看到我這么用心,笑開了花!

是的,從中我也悟出了中斷與輪詢的味道,今天我們來看看這兩者的內涵與區別。

5b28ae62-a961-11eb-9728-12bb97331649.png

中斷在嵌入式開發過程中,使用到處理器的時候,中斷是我們必不可少的元素。

中斷的基本概念

中斷是一種硬件機制,在CPU在正常運行程序的過程中,中斷可以隨時發生。

由預選安排或各種隨機的內外部事件,一般稱為中斷源,發出中斷請求,使CPU中斷正在運行的程序,并通過將控制權傳遞給服務設備的中斷處理程序來響應,這個過程稱為程序中斷。

5b38f556-a961-11eb-9728-12bb97331649.png

中斷的本質

一般認為中斷是外部設備向處理器發起的請求事件,這還不夠徹底,中斷可以說是是處理器對外開放的實時受控接口

比如計算機系統中,如果沒有中斷,計算機所有的程序都是定論的,我們事先就可以知道其運行的全部過程,無法交互,相當于一個加速器。

有中斷后,外部服務程序可能打斷當前任務。

CPU“正在執行的程序”與“隨時可能發生的服務”,二者形成了異步關系,由人實時控制的中斷輸入,是無法預測的。

中斷可以看作是一種“硬件輪詢”。即本質上,CPU會通過讀取外部信號來判斷CPU的下一步狀態。

中斷處理方式

設備管理中,高速的處理器和低速的輸入輸出設備相對來說,會降低整體效率,為了減少程序直接控制方式中CPU的等待時間,提高系統的并行工作程度,采用中斷處理方式是很有必要的。

在I/O設備中斷方式下,CPU與I/O設備之間數據的傳輸步驟如下:

在某個進程需要數據時,發出指令啟動輸入輸出設備,準備要處理的數據;

在進程發出指令啟動設備之后,該進程放棄處理器,等待相關I/O操作完成。此時,進程調度程序會調度其他就緒進程使用處理器。

當I/O操作完成時,輸入輸出設備控制器通過中斷請求線向處理器發出中斷信號,處理器收到中斷信號之后,轉向預先設計好的中斷處理程序,對數據傳送工作進行相應的處理。

得到了數據的進程,轉入就緒狀態。在隨后的某個時刻,進程調度程序會選中該進程繼續工作。

5b4c7162-a961-11eb-9728-12bb97331649.png

CPU是怎么知道中斷發生的

舉個例子,比如說鍵盤,按下鍵盤Enter鍵時,cpu是怎么樣知道我按下了Enter鍵而不是Shift鍵呢?

首先說明cpu不會知道你按下的哪個鍵,cpu只會按著機器指令的執行順序,一條一條的執行機器指令。

cpu只知道按設計好的邏輯執行指令,不管這個指令是干嘛的。

知道你按下哪個鍵的是操作系統,操作系統是根據中斷控制器以及相應的寄存器的狀態判斷是不是中斷。

所以當你按下一個鍵,這個鍵的地址馬上被寫入RAM中,同時發出中斷信號,CPU獲取中斷信號,就會去執行中斷程序。

發生中斷時CPU怎么知道程序的地址?

中斷產生時,程序需要跳轉到某個地址去運行該段的程序,那么CPU是不是要讀整個內存然后去找中斷向量表呢?

不是的,不需要去讀取整個內存,而是通過映射的關系。

例如在x86架構中,中斷向量表的位置保存在IDTR寄存器里,CPU通過這個寄存器就能找到中斷向量表,然后根據中斷號就可以找到具體的中斷入口了。

CPU檢測到中斷信號時,怎么知道是發給哪個進程的?

這個問題是我在知乎上看到的,也是極大激發我的興趣,對我們理解中斷也有極大的好處。

首先我們需要知道:中斷并不直接把數據送給用戶進程的,中斷通知的是驅動程序,而不關心當前正在執行的是哪個進程。

而進程操作都是一樣的:保存現場,進入內核,執行需要的操作,返回中斷前的現場,繼續進程執行。

5b6b7fe4-a961-11eb-9728-12bb97331649.png

一個系統的的中斷系統通常是類似這樣的組成,包括設備的中斷、中斷控制器、CPU的中斷

設備的中斷

指設備要產生一個事件來通知CPU,事件的產生的方法有很多。對設備“關中斷”,指的是讓這個設備停止發出中斷信號,如果中斷控制器已經獲得這個中斷信號,那么這個中斷信號還是會報到CPU上的。

中斷控制器

指對多個設備的中斷進行采樣,排隊,分發的機制。對中斷控制器說:關中斷,是讓中斷控制器不要給CPU(或者上級)發送中斷信號了,設備報不報信號上來,這些信號是否被排隊,那是另一個問題。

CPU的中斷

指CPU核上有一條中斷線,當這條線加上合適的電平或者信號,CPU核就會從當前的執行上下文中,直接跳轉到中斷處理程序中執行。在CPU的角度上關中斷,就是不要執行“跳轉到中斷處理程序”這個動作。

中斷方式的優缺點

優點

I/O設備中斷方式使處理器的利用率顯著提高;

支持多道程序和I/O設備的并行操作,提高了效率。

缺點

各種各樣的輸入輸出設備通過中斷處理方式進行并行操作,使中斷次數增加,會造成CPU無法響應中斷;

如果在緩沖區裝滿數據之后發生中斷。那么在數據傳送過程中,發生中斷的機會較多,將耗去大量的CPU處理時間。

輪詢什么是輪詢

輪詢是一種CPU決策如何提供周邊設備服務的方式。

在輪詢過程中,由CPU定時發出詢問,依序詢問每一個周邊設備是否需要其服務。

每個設備都有一個指示命令就緒的位,指示該設備的狀態。

當此狀態就緒即給予服務,服務結束后再問下一個周邊,接著不斷周而復始。

輪詢方式

I/O設備的程序輪詢是計算機系統對I/O設備的一種管理方式。它定時對各種設備輪流詢問一遍有無處理要求。

輪流詢問之后,有要求的,則加以處理。

在處理I/O設備的要求之后,處理機返回繼續工作。

5bde1e00-a961-11eb-9728-12bb97331649.png

輪詢的優缺點

優點

在一些應用中可以增強了程序的實時性。。。

缺點

能處理的輸入輸出設備的數量也是有一定限度的。

程序輪詢占用CPU的處理時間,效率較低。

中斷和輪詢之間的區別中斷時,設備會通知CPU引起注意;而在輪詢中,CPU會穩定地檢查設備是否需要注意。

中斷不是協議,而是一種硬件機制;輪詢反之。

在中斷中,該設備由中斷處理程序提供服務;輪詢時,該設備由CPU維修

中斷可以隨時發生;輪詢時,CPU會以固定的間隔穩定地對設備進行投票。

在中斷中,中斷請求線用作指示設備需要維修的指示;在輪詢時,命令就緒位用作指示,表明設備需要維修。

在中斷中,一旦任何設備將其中斷,處理器就會受到干擾;在輪詢中,處理器通過重復檢查每個設備的命令就緒位來浪費無數的處理器周期。

編輯:jq

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

    關注

    68

    文章

    19824

    瀏覽量

    233720
  • cpu
    cpu
    +關注

    關注

    68

    文章

    11048

    瀏覽量

    216121
  • 數據
    +關注

    關注

    8

    文章

    7246

    瀏覽量

    91148
  • 嵌入式開發
    +關注

    關注

    18

    文章

    1072

    瀏覽量

    48595

原文標題:嵌入式開發中,選中斷還是輪詢方式?

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

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    嵌入式開發入門指南:從零開始學習嵌入式

    隨著物聯網、智能硬件的發展,嵌入式開發成為熱門技能之一。以下將為初學者提供一份詳細的嵌入式開發入門指南,涵蓋學習路徑、必備工具、推薦資源等內容。 1. 嵌入式系統的定義與應用嵌入式系統
    發表于 05-15 09:29

    嵌入式開發:高門檻的系統性工程與 996 的行業困局

    嵌入式開發的門檻,往往被培訓機構和表象所掩蓋。許多人誤以為 “用 C 語言寫個跑在 ARM 上的程序” 就是嵌入式,實則連皮毛都未觸及。真正的嵌入式開發是硬件與軟件深度融合的系統性工程,需跨越三重壁壘
    的頭像 發表于 04-09 11:06 ?269次閱讀
    <b class='flag-5'>嵌入式開發</b>:高門檻的系統性工程與 996 的行業困局

    2025年嵌入式開發趨勢:新技術如何影響你的工作?

    嵌入式開發的世界正在快速變化,新技術的崛起正悄然改變硬件設計、軟件架構以及開發方式。無論你是剛入門的新手,還是經驗豐富的工程師,理解這些趨勢不僅能幫助你應對技術變革,還能在職業發展占據主動
    的頭像 發表于 03-14 17:36 ?1296次閱讀
    2025年<b class='flag-5'>嵌入式開發</b>趨勢:新技術如何影響你的工作?

    BlackBerry QNX推出通用嵌入式開發平臺

    BlackBerry有限公司(紐交所代碼:BB;多倫多證券交易所代碼:BB)旗下部門QNX今日宣布推出QNX 通用嵌入式開發平臺(General Embedded Development
    的頭像 發表于 03-11 16:04 ?559次閱讀

    AI來襲!嵌入式開發者該如何應對轉型?

    AI正在改變世界!從自動駕駛到智能家居,從工業自動化到語音助手,各行各業都在朝著智能化方向邁進。對于嵌入式開發者來說,AI的到來既是一次前所未有的挑戰,也是一個充滿機遇的時代。過去,我們專注于硬件
    的頭像 發表于 03-04 14:41 ?703次閱讀
    AI來襲!<b class='flag-5'>嵌入式開發</b>者該如何應對轉型?

    代碼+案例+生態:武漢芯源半導體CW32嵌入式開發實戰正式出版

    尊敬的各位電子工程師、嵌入式開發愛好者們:大家好!今天,我們懷著無比激動與自豪的心情,向大家宣布一個重大喜訊——武漢芯源半導體的單片機CW32正式出書啦!《基于ARMCortex-M0+的CW32
    的頭像 發表于 03-03 15:15 ?574次閱讀
    代碼+案例+生態:武漢芯源半導體CW32<b class='flag-5'>嵌入式開發</b>實戰正式出版

    如何成為嵌入式開發工程師?

    如何成為嵌入式開發工程師? 成為嵌入式開發工程師通常需要掌握一系列技能和知識,并且在實踐不斷積累經驗。以下是一些基本步驟和建議: 1. 基礎教育:- 獲取電子工程、計算機科學或相關領域的學位
    發表于 02-19 10:39

    哪些專業適合學習嵌入式開發?

    哪些專業適合學習嵌入式開發? 在傳統行業不斷被取代的當下,對于大學生、從業者而言,選擇一個熱門主流的職業方向,是未來發展的關鍵因素之一。 嵌入式作為當下高薪崗位之一,轉行、轉專業的人群已經占據求職
    發表于 01-03 13:44

    嵌入式開發必備-RK3562演示Linux常用系統查詢命令(上)觸覺智能出品

    實用干貨!嵌入式開發學習必備-RK3562演示Linux常用系統查詢命令(上)關注觸覺智能持續為大家帶來更多嵌入式開發內容
    的頭像 發表于 12-31 10:51 ?117次閱讀
    <b class='flag-5'>嵌入式開發</b>必備-RK3562演示Linux常用系統查詢命令(上)觸覺智能出品

    如何使用 RISC-V 進行嵌入式開發

    RISC-V是一種開源的指令集架構(ISA),它允許任何人設計、制造和銷售基于RISC-V的處理器,這為嵌入式開發提供了極大的靈活性和創新空間。以下是使用RISC-V進行嵌入式開發的基本步驟: 一
    的頭像 發表于 12-11 17:32 ?1744次閱讀

    基于Xilinx ZYNQ7000 FPGA嵌入式開發實戰指南

    電子發燒友網站提供《基于Xilinx ZYNQ7000 FPGA嵌入式開發實戰指南.pdf》資料免費下載
    發表于 12-10 15:31 ?34次下載

    零基礎嵌入式開發學習路線

    嵌入式開發”沒有接觸過的同學可能會不明覺厲,但是只要你了解了,感興趣并且有一個正確的學習路線的話,零基礎也能入門。給大家介紹一個簡單易懂的學習路線,讓你能夠從零開始學習嵌入式開發。 第一步:掌握
    發表于 10-25 15:55

    嵌入式開發常見問題排查

    嵌入式開發問題排查很多人認為嵌入式開發很難,主要是因為在這個過程中常常會遇到各式各樣的問題。這些問題的復雜性和多樣性使得許多人感到困惑和無所適從。然而,如果將這些問題逐一拆解,實際上大部分都可以
    的頭像 發表于 09-22 08:04 ?729次閱讀
    <b class='flag-5'>嵌入式開發</b>常見問題排查

    聚焦嵌入式開發的合規性工具、項目管理工具、版本迭代工具應用

    ,就嵌入式開發與管理領域的最新趨勢、工具選擇以及DevSecOps實踐應用等方面展開了深入探討。 本期對話龍智資深DevSecOps顧問徐晨暉, 分享嵌入式開發的合規性工具、項目管理和版本管理的工具選擇,以及DevSecOps
    的頭像 發表于 07-29 15:15 ?998次閱讀

    嵌入式開發前景怎么樣?

    嵌入式開發前景非常廣闊,這主要得益于物聯網、人工智能、大數據等技術的快速發展,以及嵌入式系統在各個領域的廣泛應用。以下是對嵌入式開發前景的詳細分析
    的頭像 發表于 07-10 09:00 ?4182次閱讀
    <b class='flag-5'>嵌入式開發</b>前景怎么樣?