为什么一个CSR寄存器的介绍下面看不到每个 bit 的分别介绍啊!!!!!!
我把这些 CSR 的 bit 给列出来,如下:
我绝对不想再去 riscv-privilege 手册里找寄存器的 bit 说明了!
来源:https://ithelp.ithome.com.tw/articles/10268967
5. 更新 CSR Register (mstatus)
mstatus 紀載了大量的資料,根據 RISC-V 架構的規定:
當進入異常時,硬體會自動更新 mstatus 的某些域值。
- MIE
當 MIE 域的值為 1 時為 Enable,反之為 Disable。
簡單來說,就是決定處理器要不要受理中斷請求。
-
-
MPIE
MPIE 用來存放異常發生前 MIE 域的值。當異常結束後就可以利用 MPIE 還原 MIE 的值。 (MIE:中断启动状况)
-
-
MPP
紀錄異常發生前的工作模式,在 RISC-V 規格書中,有以下幾種模式:Level Encoding Name Abbreviation 0 00 User/Application U 1 01 Supervisor S 2 10 Reserved - 3 11 Machine M
6. 退出異常狀態
當異常處理完成後,需要從異常服務退出。在 RISC-V 架構中定義了一組用於退出異常的指令 (Trap-Return Instruction),包括:
- MRET
- SRET
- URET
分別對應了 Machine Mode, Supervisor Mode 以及 User Mode。
使用 MRET 指令退出異常後,硬體會做兩件事情:
-
從 mepc 指向的指令位址開始執行
-
更新 mstatus register
同樣以 Machine Mode 為例:- 將 MIE 更新為 MPIE 的值。
- 將 MPIE 域的值更新為 1。
需要注意的是: MIE 域僅是反映中斷是否接受處理,其控制權仍取決於 MIE register 中的 MEIE 域。
标签:RISCV,MIE,異常,mstatus,RISC,手册,Mode,bit,难度 From: https://www.cnblogs.com/yinhuachen/p/16883824.html