衡阳派盒市场营销有限公司

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

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

3天內不再提示

U54內核不可屏蔽中斷信號

麥辣雞腿堡 ? 來源:嵌入式Linux充電站 ? 作者:Vincent ? 2023-10-08 10:05 ? 次閱讀

不可屏蔽中斷

rnmi(可恢復不可屏蔽中斷)中斷信號是 hart 的電平敏感輸入。不可屏蔽中斷比 hart上的任何其他中斷或異常具有更高的優先級,并且不能被軟件禁用。具體來說,它們不會通過清除mstatus.mie 寄存器來禁用。

Handler Addresses

NMI 有一個關聯的異常陷阱處理程序地址。該地址由外部輸入信號設置。

RNMI CSRs

這些 M 模式 CSR 啟用可恢復非屏蔽中斷 (RNMI)。

圖片

mnscratch CSR 擁有一個 64 位讀寫寄存器,它使 NMI 陷阱處理程序能夠保存和恢復被中斷的上下文。

mnepc CSR 是一個 64 位讀寫寄存器,在進入 NMI 陷阱處理程序時,它保存接受中斷的指令的 PC。mnepc 的最低位硬連線為零。

mncause CSR 包含 NMI 的原因,第 63 位設置為 1,并且 NMI 原因編碼在最低有效位中,如果不支持 NMI原因,則為零。mncause 的低位,定義為 exception_code,如下:

圖片

mnstatus CSR 包含一個兩位字段,在進入陷阱處理程序時,它包含以與 mstatus.mpp 相同的方式編碼的中斷上下文的特權模式

MNRET Instruction

此僅 M 模式指令使用 mnepc 和 mnstatus 中的值分別返回中斷上下文的程序計數器和特權模式。該指令還設置內部 rnmie狀態位。

編碼與 MRET 相同,除了第 30 位設置(即 funct7=0111000)。例如:

.word 0x70200073 // opcode for MNRET (return from RNMI)

RNMI Operation

檢測到RNMI中斷時,將中斷的PC寫入mnepc CSR,RNMI的類型寫入mncause CSR,中斷上下文的特權模式寫入mnstatusCSR。內部微體系結構狀態位 rnmie 被清除以指示處理器處于 RNMI 處理程序中并且不能接受新的 RNMI 中斷。清除時,內部 rnmie位還會禁用所有其他中斷。

這些中斷被稱為不可屏蔽的,因為軟件無法屏蔽中斷。但是,為了正確操作,必須推遲同一中斷的其他實例,直到處理程序完成,因此內部狀態位

RNMI 處理程序可以使用 MNRET 指令(在第 7.11.3 節中描述)恢復原始執行,該指令從 mnepc 恢復 PC,從 mnstatus恢復特權模式,并設置內部 rnmie 狀態位,重新啟用其他中斷。

如果hart在rnmie位清零時遇到異常,則將異常狀態寫入mepc和mcause,mstatus.mpp設置為M-mode,hart跳轉到RNMI異常處理程序地址。

RNMI 處理程序中的陷阱只有在處理程序正在服務發生在機器模式之外的中斷時發生時才能恢復。

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

    關注

    3

    文章

    1382

    瀏覽量

    40422
  • RISC
    +關注

    關注

    6

    文章

    465

    瀏覽量

    83870
  • sifive
    +關注

    關注

    0

    文章

    36

    瀏覽量

    9473
收藏 人收藏

    評論

    相關推薦

    Linux內核中斷屏蔽的實現

    中斷屏蔽,正如其名,屏蔽掉CPU的中斷響應功能,解決并發引起的競態問題。
    發表于 07-04 11:15 ?610次閱讀

    stm32上的中斷掛起和屏蔽與ARM內核中的掛起屏蔽是相同的嗎?

    請問前輩,stm32上的中斷掛起和屏蔽 與 ARM內核中的掛起屏蔽是相同的嗎,還是只是stm32自己預處理的一步。
    發表于 04-15 08:23

    轉:IAR編譯環境禁用NMI(不可屏蔽中斷

    分享自己的小經驗。問題起因: Kinetis芯片的不可屏蔽中斷引腳NMI_b在電路設計時被作為GPIO與外部設備連接了。調試程序時才發現:哪怕通過引腳復選功能切換位(Pin Mux Control)將該
    發表于 06-06 12:04

    Arm A-profile架構對不可屏蔽中斷 (NMI) 的支持

    ,則不會向 CPU 傳遞任何中斷。術語不可屏蔽中斷實際上涵蓋了一類中斷,即使“正常”中斷
    發表于 06-02 18:05

    ARM7內核中斷屏蔽方法

    本文介紹一種ARM7內核中斷屏蔽方法,并給出基于該方法的C語言源代碼和匯編語言源代碼。該段代碼已經在筆者參與研制的火災報警控制器中得到成功應用,可以完全替代x86體系下DO
    發表于 06-27 09:22 ?7939次閱讀
    ARM7<b class='flag-5'>內核</b>的<b class='flag-5'>中斷</b><b class='flag-5'>屏蔽</b>方法

    怎么設置中斷屏蔽

    對應每一個中斷請求觸發器就有一個屏蔽觸發器,將所有的屏蔽觸發器組合在一起,就成了一個屏蔽寄存器,屏蔽寄存器中的內容稱為
    發表于 11-17 14:53 ?2.6w次閱讀
    怎么設置<b class='flag-5'>中斷</b><b class='flag-5'>屏蔽</b>字

    深入了解ARMv9對不可屏蔽中斷的支持

    Arm A-profile 架構的有一個長期缺陷就是不支持不可屏蔽中斷 (NMI) 。
    發表于 08-08 11:40 ?944次閱讀
    深入了解ARMv9對<b class='flag-5'>不可</b><b class='flag-5'>屏蔽</b><b class='flag-5'>中斷</b>的支持

    PLIC平臺級中斷控制器介紹

    的。 U54內核的平臺級中斷控制器 (PLIC) 最多可支持 132 個具有 7 個優先級的外部中斷源。 Memory Map U54
    的頭像 發表于 10-07 17:53 ?1277次閱讀
    PLIC平臺級<b class='flag-5'>中斷</b>控制器介紹

    LIC內核中斷掛起位和中斷使能

    中斷掛起位 PLIC 內核中斷源掛起位的當前狀態可以從掛起數組中讀取,組織為 32 位的 5 個字。中斷 ID 的掛起位存儲在字的位中。 因此,U
    的頭像 發表于 10-07 17:57 ?872次閱讀
    LIC<b class='flag-5'>內核</b><b class='flag-5'>中斷</b>掛起位和<b class='flag-5'>中斷</b>使能

    U54內核PLIC中斷處理例子

    Interrupt Claim Process U54 內核 hart 可以通過讀取 claim_complete 寄存器(表 115)執行中斷請求,該寄存器返回最高優先級掛起中斷
    的頭像 發表于 10-07 18:01 ?1051次閱讀
    <b class='flag-5'>U54</b><b class='flag-5'>內核</b>PLIC<b class='flag-5'>中斷</b>處理例子

    U54內核上CLINT的內存映射

    ) {// handler code} 此屬性將保存和恢復處理程序中使用的寄存器,并在處理程序的末尾插入一條 mret 指令。 CLINT內存映射 下圖是U54 內核上 CLINT 的內存映射: 注意
    的頭像 發表于 10-08 09:34 ?557次閱讀
    <b class='flag-5'>U54</b><b class='flag-5'>內核</b>上CLINT的內存映射

    RISC-V SiFive U54內核中斷介紹

    中斷 U54內核支持M模式和S模式中斷。默認情況下,所有中斷都在M模式下處理。對于支持S模式的 hart,可以有選擇地將
    的頭像 發表于 10-08 09:39 ?657次閱讀
    RISC-V SiFive <b class='flag-5'>U54</b><b class='flag-5'>內核</b>的<b class='flag-5'>中斷</b>介紹

    U54內核中斷進入和退出

    陷阱trap 術語陷阱描述了軟件應用程序中的控制轉移,其中陷阱處理通常在更特權的環境中執行。例如,一個特定的 hart包含三種權限模式:機器、管理員和用戶。每種特權模式都有自己的軟件執行環境,包括專用的堆棧區域。此外,每種特權模式都包含用于陷阱處理的單獨控制和狀態寄存器(CSR)。在用戶模式下操作時,需要上下文切換來處理主管模式下的事件。軟件為上下文切換設置系統,然后執行 ECALL 指令,將控制同步切換到Environment call-from-Use
    的頭像 發表于 10-08 09:47 ?662次閱讀
    <b class='flag-5'>U54</b><b class='flag-5'>內核</b><b class='flag-5'>中斷</b>進入和退出

    U54內核中斷控制和狀態寄存器

    向量的基地址,以及設置 U54內核處理中斷的模式。對于 Direct 和 Vectored模式,中斷處理模式在 mtvec 寄存器的 MODE 字段中定義。mtvec 寄存器在表 86
    的頭像 發表于 10-08 09:54 ?1085次閱讀
    <b class='flag-5'>U54</b><b class='flag-5'>內核</b><b class='flag-5'>中斷</b>控制和狀態寄存器

    U54內核特權模式中斷介紹

    特權模式中斷 U54內核支持有選擇地將中斷和異常定向到S模式。 該功能由中斷和異常委托CSR處理:mideleg和medeleg。S模式
    的頭像 發表于 10-08 09:59 ?1040次閱讀
    <b class='flag-5'>U54</b><b class='flag-5'>內核</b>特權模式<b class='flag-5'>中斷</b>介紹
    百家乐赌博程序| 珠江太阳城广场| 百家乐官网投注双赢技巧| 现金百家乐下载| 墨尔本百家乐官网的玩法技巧和规则 | 百家乐官网扎金花斗地主| 钻石娱乐开户| 百家乐玩法介| 澳门百家乐21点| 百家乐官网走势图解| 交城县| 悠游棋牌游戏| 百家乐可以破解吗| 百家乐官网群dmwd| 真人百家乐官网赌法| 太阳城百家乐官网投注| 大嘴棋牌官方下载| 十三张百家乐的玩法技巧和规则 | 百家乐官网游戏类型| 六合彩曾道人| 太阳城花园| 百家乐双面数字筹码怎么出千| 赌神网百家乐官网的玩法技巧和规则| 百家乐官网投注方法新版| 开远市| 东方夏威夷娱乐| 大发888娱乐场下载 制度| 钱柜百家乐娱乐城| 现金百家乐赌法| 百家乐微笑心法搜索| 百家乐怎么看门路| 开店做生意的风水摆件| 百家乐官网破解方法技巧| 信誉好百家乐官网平台| 现金百家乐官网网上娱乐| 百家乐官网试玩平台| 百家乐官网下注时机| 百博亚洲| 香港六合彩网址大全| 娱乐城彩金| 威尼斯人娱乐下载平台|