MXLEN-1:0
VALUE
读写供 M 模式使用的完整 scratch 值;特权架构不为该值定义内部位字段。
这个字段控制什么
- - 供 M 模式使用的完整 scratch 值;特权架构不为该值定义内部位字段。
常见取值
这个字段更适合结合上下文字段解释,不用按固定枚举背诵。
机器模式 scratch 寄存器,是供 M 模式软件使用的 MXLEN 位读写 CSR。
供 M 模式使用的完整 scratch 值;特权架构不为该值定义内部位字段。
这个字段更适合结合上下文字段解释,不用按固定枚举背诵。
mscratch 是地址 0x340 的 MXLEN 位 M 模式读写 scratch CSR。它通常保存 hart-local 上下文指针;具体内容由 M 模式软件约定,而不是由硬件位字段定义。
M 模式初始化代码为每个 hart 写入约定的 scratch 值。
陷阱入口用 CSR 读写指令与通用寄存器交换或读取 mscratch。
陷阱处理和返回路径按同一 M 模式软件约定恢复或更新该值。
不能只看 CSR 名称判断。官方 CSR 地址表给出最低访问特权级;mscratch 位于 0x340,最低访问级为 M 模式。权限不足或访问未实现 CSR 时会触发非法指令异常。
不要把 mscratch 当成硬件定义的位字段寄存器。写入值的含义由 M 模式陷阱软件约定决定,错误覆盖可能破坏陷阱入口使用的上下文指针或临时值。