关于 RISCV 手册实在太难读的处理

为什么一个CSR寄存器的介绍下面看不到每个 bit 的分别介绍啊!!!!!!

我把这些 CSR 的 bit 给列出来,如下:

我绝对不想再去 riscv-privilege 手册里找寄存器的 bit 说明了!

来源:https://ithelp.ithome.com.tw/articles/10268967

5. 更新 CSR Register (mstatus)

mstatus 紀載了大量的資料,根據 RISC-V 架構的規定:
當進入異常時,硬體會自動更新 mstatus 的某些域值。

format of mstatus

  • MIE
    當 MIE 域的值為 1 時為 Enable,反之為 Disable。

簡單來說,就是決定處理器要不要受理中斷請求。

    • MPIE
      MPIE 用來存放異常發生前 MIE 域的值。當異常結束後就可以利用 MPIE 還原 MIE 的值。  (MIE:中断启动状况)

  • MPP
    紀錄異常發生前的工作模式,在 RISC-V 規格書中,有以下幾種模式:

    LevelEncodingNameAbbreviation
    000User/ApplicationU
    101SupervisorS
    210Reserved-
    311MachineM
6. 退出異常狀態

當異常處理完成後,需要從異常服務退出。在 RISC-V 架構中定義了一組用於退出異常的指令 (Trap-Return Instruction),包括:

  1. MRET
  2. SRET
  3. URET

分別對應了 Machine Mode, Supervisor Mode 以及 User Mode。
使用 MRET 指令退出異常後,硬體會做兩件事情:

    1. 從 mepc 指向的指令位址開始執行

    2. 更新 mstatus register
      同樣以 Machine Mode 為例:

      • 將 MIE 更新為 MPIE 的值。
      • 將 MPIE 域的值更新為 1。

      需要注意的是: MIE 域僅是反映中斷是否接受處理,其控制權仍取決於 MIE register 中的 MEIE 域。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值