0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

ARM Linux各種驅(qū)動的中斷服務(wù)程序工作在ARM的IRQ模式嗎?

Linux閱碼場 ? 來源:未知 ? 作者:李倩 ? 2018-07-27 14:54 ? 次閱讀

大家都知道,ARM有IRQ, FIQ, USR,SVC,ABORT等各種模式。當(dāng)系統(tǒng)收到IRQ的時候,會進入ARM的IRQ模式。那么,ARM Linux各種驅(qū)動的中斷服務(wù)程序工作在ARM的IRQ模式嗎?

答案是否定的。

我們加一段匯編來讀CPSR:

然后我們隨便找一個ARM Linux的中斷服務(wù)程序去打印CPSR:

然后我們發(fā)現(xiàn)打印出來的值是:

cpsr:40000193

低8位的二進制是10010011

那么對應(yīng)ARM CPSR的查詢,可以看出CPU處于ARM的SVC模式(低5位是10011),而且I bit被設(shè)置(第7位是1),所以是禁止IRQ的。

模式表:

可見,ARM Linux最初進入IRQ模式后,比較快速地從IRQ模式切換到了SVC模式,但是這個時候,并沒有使能CPSR的I bit,所以仍然是禁止其他中斷嵌套進入的。

(完)

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • ARM
    ARM
    +關(guān)注

    關(guān)注

    134

    文章

    9006

    瀏覽量

    366035
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11161

    瀏覽量

    208468
  • 中斷服務(wù)
    +關(guān)注

    關(guān)注

    0

    文章

    9

    瀏覽量

    6817

原文標(biāo)題:ARM Linux的中斷服務(wù)程序工作在ARM的IRQ模式嗎?

文章出處:【微信號:LinuxDev,微信公眾號:Linux閱碼場】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    ARM中斷模式IRQ)和快速中斷模式(FIQ)區(qū)別比較

    IRQ高。 4、FIQ模式下,比IRQ模式多了幾個獨立的寄存器。 不要小看這幾個寄存器,ARM在編譯的時候,如果你FIQ
    發(fā)表于 10-13 10:43

    ARM中斷原理及中斷嵌套

    。 當(dāng)I位和F位為0時,irq pin上有中斷信號過來時,就會打斷arm的當(dāng)前工作,并且切換到IRQ模式
    發(fā)表于 10-13 21:16

    簡述ARM的2種工作狀態(tài)和7種工作模式

    模式下的其他6中模式,有SVC,F(xiàn)IQ,IRQ,ABT,UND,SYS 都可以修改CPSR寄存器、從而控制ARM工作
    發(fā)表于 08-20 12:30

    ARM的2種工作狀態(tài)和7種工作模式。[附帶文檔下載]

    模式下的其他6中模式,有SVC,F(xiàn)IQ,IRQ,ABT,UND,SYS 都可以修改CPSR寄存器、從而控制ARM工作
    發(fā)表于 08-20 09:14

    基于ARM架構(gòu)的linux中斷工作原理是什么

    最近在看一些關(guān)于arm linux中斷方面的資料,看了很多資料,總結(jié)一下自己對linux中斷的理解,寫到這里供大家參考,以下所有的描述都是
    發(fā)表于 05-30 09:23

    ARM處理器7種工作模式

    user模式下的其他6中模式,有SVC,F(xiàn)IQ,IRQ,ABT,UND,SYS 都可以修改CPSR寄存器、從而控制ARM工作
    發(fā)表于 12-15 10:15

    ARM向量中斷機制uClinux下的設(shè)計

    ARM體系結(jié)構(gòu)中,硬件產(chǎn)生的外部中斷( IRQ) 具有單一的程序入口。為了識別中籽源,進而運行對應(yīng)的
    發(fā)表于 06-27 15:45 ?64次下載
    <b class='flag-5'>ARM</b>向量<b class='flag-5'>中斷</b>機制<b class='flag-5'>在</b>uClinux下的設(shè)計

    ARM微處理器編程模型之處理器工作模式解析

    3.2 處理器工作模式 ARM處理器共有7種工作模式,如表3.1所示 表3.1 ARM處理器的
    發(fā)表于 10-18 15:57 ?2次下載

    ARM7和ARM-Cortex的區(qū)別,ARM為什么會有兩種啟動方式?

    IRQ,F(xiàn)IQ定義: 這就是個普通中斷,當(dāng)我們程序定義了該中斷,并且程序運行的時候產(chǎn)生了
    的頭像 發(fā)表于 10-27 11:20 ?9852次閱讀

    需要了解的LinuxIRQ中斷子系統(tǒng)

    Linux中斷子系統(tǒng)(generic irq)出現(xiàn)之前,內(nèi)核使用__do_IRQ處理所有的中斷
    發(fā)表于 05-10 10:56 ?1444次閱讀

    如何編寫基于ARM的裸機程序和基于Linux驅(qū)動程序

    嵌入式開發(fā)中,ADC應(yīng)用比較頻繁,本文主要講解ADC的基本原理以及如何編寫基于ARM的裸機程序和基于Linux驅(qū)動程序。
    的頭像 發(fā)表于 09-13 09:25 ?3244次閱讀
    如何編寫基于<b class='flag-5'>ARM</b>的裸機<b class='flag-5'>程序</b>和基于<b class='flag-5'>Linux</b>的<b class='flag-5'>驅(qū)動程序</b>

    ARM中斷原理以及中斷嵌套

    我們可以假設(shè)ARM核心有兩根中斷引腳(實際上是看不見的),一根叫 irq pin, 一根叫fiq pin。ARM的cpsr中,有一個I位和
    的頭像 發(fā)表于 04-07 10:29 ?3186次閱讀

    如何在特權(quán)模式下用arm匯編指令使能和禁止irq中斷?

    如何在特權(quán)模式下用arm匯編指令使能和禁止irq中斷 ARM 系統(tǒng)中,
    的頭像 發(fā)表于 10-19 16:42 ?1200次閱讀

    arm中斷是怎么實現(xiàn)的

    ARM中斷的實現(xiàn)是通過中斷控制器和異常模式實現(xiàn)的。ARM處理器通過中斷控制器來接收和處理外部的
    的頭像 發(fā)表于 01-05 15:18 ?729次閱讀

    ARM處理器的工作模式和特點

    ARM處理器具有多種工作模式,這些模式根據(jù)處理器執(zhí)行的任務(wù)和當(dāng)前的狀態(tài)進行劃分。常見的ARM處理器工作
    的頭像 發(fā)表于 09-10 11:22 ?550次閱讀