学习目标

  • 理解特权级概念
  • 掌握系统调用机制

12.1 特权级

RISC-V 定义了 3 个特权级:

M-mode (Machine)      - 最高权限
S-mode (Supervisor)   - 操作系统
U-mode (User)         - 用户程序

12.2 系统调用

用户程序通过 ecall 指令请求操作系统服务。

# write 系统调用
li a7, 64       # syscall number
li a0, 1        # fd (stdout)
la a1, msg      # buffer
li a2, 13       # length
ecall

12.3 CSR 寄存器

控制和状态寄存器:

csrr t0, mstatus    # 读取
csrw mstatus, t0    # 写入

实践练习

实现简单的系统调用。

下一步

综合项目:实现 Mini Libc

更新时间: