自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(4)
  • 收藏
  • 关注

原创 RISCV的异常和中断

Trap 发生 → 硬件自动:把当前 PC 存到mepc;填充mcause(类型 + 编码)、mtval(附加信息);修改mstatus(xIE 置 0,保存原状态 / 权限);PC 跳转到mtvec的 BASE 地址。软件处理(entry.S + trap.c):保存寄存器上下文;读取mepcmcause处理逻辑(比如跳过错误指令);Trap 返回(mret):硬件从mepc恢复 PC;从mstatus恢复中断状态、权限。reg_t ra;

2025-12-14 17:18:57 1304

原创 RISCV简单的上下文切换以及多任务

不存在 “保存两次 A 的上下文”,caller-saved 是 A 自己保自己的临时寄存器,callee-saved 是 B 帮 A 保保存寄存器,责任主体和范围都不同,是 “分工保存” 而非 “重复保存”。

2025-12-13 18:47:34 1163

原创 RISC-V简单内存管理

* 语法格式:SECTIONS输出段名 : { 输入段匹配规则 + 符号定义 } > 内存区域名...*/SECTIONS.text : {// 语法:PROVIDE(符号 = 表达式)*(.text .text.*) // 语法:*(输入段名 输入段名通配符)} >ram} >ram.data : {// 语法:. = ALIGN(对齐字节数)} >ram.bss :{*(COMMON) // 语法:*(COMMON) 匹配通用符号} >ram。

2025-12-09 17:38:58 1042

原创 qemu模拟器中RISC-V中的串口底层打印

汇编层:初始化 CPU 核,设置栈,区分主核 / 从核;C 层:调用外设初始化函数,操作 UART 寄存器;硬件层:通过 MMIO 读写 UART 寄存器,输出字符串。操作系统的底层就是 “和 CPU 寄存器、硬件寄存器打交道”—— 汇编代码操作 CPU 的核心寄存器(sp、mhartid、tp),C 代码通过内存映射操作外设寄存器,这是所有操作系统的起点。

2025-12-08 22:29:48 927

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除