一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

Linux Kernel的中斷處理函數(shù)中是否會(huì)被其它程序(中斷/異常)打斷?

冬至子 ? 來(lái)源:ARM精選 ? 作者:baron ? 2023-06-07 17:27 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

先說(shuō)結(jié)論

  • 1、當(dāng)一個(gè)irq/fiq正在執(zhí)行時(shí) ,是否可能會(huì)其它的irq/fiq打斷呢?

    (1)如果開(kāi)啟了中斷優(yōu)先級(jí),則在irq/fiq進(jìn)入的時(shí)候,也會(huì)再次enalbe irq/fiq,即也就是支持了中斷嵌套。所以此時(shí)一個(gè)irq或fiq正在執(zhí)行的時(shí)候,它是有可能被另外一個(gè)高優(yōu)先級(jí)的irq/fiq num的中斷搶占的。

    (2) 但是很遺憾 ,在我們的Linux Kernel系統(tǒng)中,至今都沒(méi)有默認(rèn)開(kāi)啟中斷優(yōu)先級(jí),在一進(jìn)入irq/fiq的時(shí)候,也沒(méi)有再次enable irq/fiq. 所以這種情況下,一個(gè)正在執(zhí)行的irq/fiq是不可能被另外的irq/fiq打斷的。

  • 2、當(dāng)一個(gè)irq/fiq正在執(zhí)行時(shí) ,是否可能會(huì)其它異常打斷呢?

    當(dāng)然可以,您仔細(xì)閱讀代碼就會(huì)發(fā)現(xiàn),在一進(jìn)入irq/fiq handler的時(shí)候, PSTATE.D、 PSTATE.A都是被enabled,所以irq/fiq正在執(zhí)行的時(shí)候,是可能被 Watchpoint、 Breakpoint、 SoftwareStepexceptionsSerror打斷的

  • 3、當(dāng)一個(gè)irq/fiq正在執(zhí)行時(shí) ,還會(huì)被別的程序打斷嗎?

    當(dāng)然可以,同步異常嘛!

代碼/文檔導(dǎo)讀

(1) 如下代碼展示了,在一進(jìn)入irq/fiq的時(shí)候,就調(diào)用 enable_daPSTATE.DPSTATE.A unmasked了。所以irq/fiq中斷,是可以被 Watchpoint、 Breakpoint、 SoftwareStepexceptionsSerror打斷的

image.png

(2) irq和fiq屬于異步異常,具有同樣的優(yōu)先級(jí)。而同步異常的優(yōu)先級(jí)又高于異步異常的優(yōu)先級(jí),同意異常的優(yōu)先級(jí) 如下所示 (也就意味著以下同步異常都可以打斷正在執(zhí)行的irq/fiq):

image.png

image.png

image.png

image.png

(3)如果開(kāi)啟了中斷優(yōu)先級(jí),則在irq/fiq進(jìn)入的時(shí)候,也會(huì)再次enalbe irq/fiq

image.png

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

    關(guān)注

    4

    文章

    605

    瀏覽量

    28553
  • 串口中斷
    +關(guān)注

    關(guān)注

    0

    文章

    67

    瀏覽量

    14325
  • 中斷優(yōu)先級(jí)

    關(guān)注

    0

    文章

    22

    瀏覽量

    9573
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    Linux 2.6 中斷處理原理簡(jiǎn)介

    Linux 2.6 中斷處理原理簡(jiǎn)介 中斷描述符表(Interrupt Descriptor Table,IDT)是一個(gè)系統(tǒng)表,它與每一個(gè)中斷
    發(fā)表于 02-05 10:52 ?837次閱讀

    WindowsCE異常中斷服務(wù)程序

    WindowsCE異常中斷服務(wù)程序,中斷異常都是異步發(fā)生的事件,當(dāng)該事件發(fā)生,系統(tǒng)將停止目前正在執(zhí)行的代碼轉(zhuǎn)而執(zhí)行事件響應(yīng)的服務(wù)
    發(fā)表于 01-04 15:37 ?1824次閱讀

    linux驅(qū)動(dòng)之中斷處理過(guò)程C程序部分

    linux內(nèi)核將所有的中斷統(tǒng)一編號(hào),使用一個(gè)irq_desc[NR_IRQS]的結(jié)構(gòu)體數(shù)組來(lái)描述這些中斷:每個(gè)數(shù)組項(xiàng)對(duì)應(yīng)著一個(gè)中斷源(可能是一個(gè)中斷
    發(fā)表于 05-07 11:13 ?1193次閱讀

    了解Linux中斷處理原理

    最簡(jiǎn)單的中斷機(jī)制就是像芯片手冊(cè)上講的那樣,在中斷向量表填入跳轉(zhuǎn)到對(duì)應(yīng)處理函數(shù)的指令,然后在處理
    發(fā)表于 05-14 13:49 ?2467次閱讀
    了解<b class='flag-5'>Linux</b><b class='flag-5'>中斷</b><b class='flag-5'>處理</b>原理

    單片機(jī)的中斷程序如何運(yùn)行

    單片機(jī)的中斷就是類似的一個(gè)過(guò)程,發(fā)生中斷時(shí),就會(huì)打斷正在執(zhí)行的主程序,先處理中斷任務(wù),返回主
    的頭像 發(fā)表于 01-27 17:11 ?1.2w次閱讀
    單片機(jī)的<b class='flag-5'>中斷</b><b class='flag-5'>程序</b>如何運(yùn)行

    ARM異常中斷的原因及處理措施

    當(dāng)ARM異常中斷發(fā)生時(shí),系統(tǒng)執(zhí)行完當(dāng)前指令后,將跳轉(zhuǎn)到相應(yīng)的異常中斷處理程序處執(zhí)行。當(dāng)異常中斷處理
    的頭像 發(fā)表于 06-17 10:05 ?8665次閱讀

    為什么中斷處理函數(shù)不能直接調(diào)用不可重入函數(shù)

    中斷丟失和系統(tǒng)位置錯(cuò)誤,這里直接導(dǎo)致嵌入式 linux 系統(tǒng)應(yīng)用進(jìn)程的所有線程停掉,進(jìn)而導(dǎo)致看門狗進(jìn)程得不到喂狗,設(shè)備重啟。 那什么是不可重入函數(shù)呢? 為什么
    的頭像 發(fā)表于 02-17 09:33 ?6420次閱讀

    處理異常中斷解決

    異常是能夠引起程序流偏離正常流程的事件,當(dāng)異常發(fā)生時(shí),正在執(zhí)行的程序會(huì)被掛起,處理器轉(zhuǎn)而執(zhí)行一
    的頭像 發(fā)表于 10-12 17:14 ?5531次閱讀

    STM32中斷系統(tǒng)(NVIC和EXTI)

    EXTIEXTI (External interrupt) 就是指外部中斷,通過(guò) GPIO 檢測(cè)輸入脈沖,引起中斷事件,打斷原來(lái)的代碼執(zhí)行流程,進(jìn)入到中斷服務(wù)
    發(fā)表于 01-14 15:51 ?5次下載
    STM32<b class='flag-5'>中斷</b>系統(tǒng)(NVIC和EXTI)

    Linux是如何利用陷阱門處理中斷異常

    中斷異常處理程序執(zhí)行的代碼不是一個(gè)進(jìn)程。而是一個(gè)內(nèi)核控制路徑,比一個(gè)進(jìn)程的上下文要少,建立或終止需要的時(shí)間很少。
    發(fā)表于 08-17 11:31 ?758次閱讀

    中斷異常?傻傻分不清楚

    在一段時(shí)間里,我都認(rèn)為中斷異常沒(méi)有很明顯的區(qū)別,因?yàn)楸憩F(xiàn)出來(lái)都是當(dāng)前運(yùn)行程序打斷,然后執(zhí)行中斷
    的頭像 發(fā)表于 08-10 11:18 ?2804次閱讀
    <b class='flag-5'>中斷</b>和<b class='flag-5'>異常</b>?傻傻分不清楚

    ARM異常中斷是如何實(shí)現(xiàn)進(jìn)入中斷程序的?如何進(jìn)入呢?

    ARM異常中斷是如何實(shí)現(xiàn)進(jìn)入中斷程序的?如何進(jìn)入呢? 在計(jì)算機(jī)系統(tǒng),異常
    的頭像 發(fā)表于 10-19 16:36 ?1421次閱讀

    Linux中斷處理淺析

    去繼續(xù)運(yùn)行被暫時(shí)中斷程序Linux通常分為外部中斷(又叫硬件中斷)和內(nèi)部
    的頭像 發(fā)表于 11-09 16:46 ?1052次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>中斷</b><b class='flag-5'>處理</b>淺析

    什么是LInux 操作系統(tǒng)中斷

    進(jìn)程來(lái)持有CPU進(jìn)行需要的操作! 有了中斷之后,提升了操作系統(tǒng)的性能!可以異步并行處理很多任務(wù)! 軟中斷(80中斷) 由CPU產(chǎn)生的;CPU檢查到
    的頭像 發(fā)表于 11-10 11:29 ?957次閱讀
    什么是<b class='flag-5'>LInux</b> 操作系統(tǒng)<b class='flag-5'>中斷</b>

    stm32中斷怎么處理

    中斷是指在程序執(zhí)行過(guò)程,由硬件或軟件的觸發(fā)而打斷正常的程序執(zhí)行流程,暫時(shí)轉(zhuǎn)去執(zhí)行特定的處理
    的頭像 發(fā)表于 01-02 17:35 ?3370次閱讀