2024-06-08
最后编辑于:2024-09-15
| 级别 | 编码 | 名称 | | :-: | :-: | :-----------------: | | 0 | 00 | U, User/Application | | 1 | 01 | S, Supervisor | | 2 | 10 | H, Hypervisor | | 3 | 11 | M, Machine |
| CSR | 功能 |
| :-----: | :-------------------------------: |
| sstatus | 给出Trap发生之前CPU处于哪个特权级等信息 |
| sepc | 当Trap是一个异常时,记录Trap发生前执行的最后一条指令的地址 |
| scause | 描述Trap的原因 |
| stval | 给出Trap附加信息
|
| stvec | 控制Trap处理代码的入口地址 |
https://five-embeddev.com/riscv-priv-isa-manual/Priv-v1.12/supervisor.html
XLEN
XLEN
代表处理器的基本操作数长度和寄存器宽度
| Arch | XLEN bit |
| ----- | -------- |
| RV32 | 32 |
| RV64 | 64 |
| RV128 | 128 |
SXLEN
是特权模式下的XLEN
WARL
Writ Any Read Legal 表示寄存器可以接受任何值的写入,但读取时返回的值必须是一个合法值
实际行为: 当对寄存器写入一个不合法值时,寄存器可能抛弃不合法的位,或调整为一个合法值,使得读取时能保证得到一个合法值