关于 RISCV 手册实在太难度的处理
为什么一个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 域。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?