8.7 自制操作系统: risc-v Machine寄存器mscratch/mepc/mcause/mtval
mscratch
全称: Machine Scratch Register,不晓得这里scratch该如何翻译,姑且就翻译成机器模式临时存储寄存器。
mscratch寄存器是专用于机器模式的mxlen位读/写寄存器。通常,它用于保存指向机器模式hart-本地上下文空间的指针,并在进入m模式trap处理程序时与用户寄存器进行交换。
mepc
全称:机器模式异常程序计数器( Machine Exception Program Counter)
mepc是一个MAXLEN-bit 的读写寄存器,格式如下:
mepc[0] 总是为0的。在仅仅支持IALIGN=32的时候,mepc[1:0] 总是为0.
如果实现允许 IALIGN 为 16 或 32(例如,通过更改 CSR misa),则每当 IALIGN=32 时,位 mepc[1] 在读取时被屏蔽,使其看起来为 0。这种屏蔽也发生在 MRET 指令的隐式读取。 虽然被屏蔽,但当 IALIGN=32 时,mepc[1] 仍然可写.
mepc 是一个 WARL 寄存器
8.7 自制操作系统: risc-v Machine寄存器mscratch/mepc/mcause/mtval最先出现在Python成神之路。
共有 0 条评论