🐳
uCore OS(on RISC-V64)实验指导书
  • Introduction
  • LAB0:ready~go!
    • 实验目的
    • 实验内容
    • 前导知识
      • 了解uCore
      • 了解RISC-V
      • 了解OS实验
      • 了解实验环境
      • 了解开发调试基本工具
      • 了解硬件模拟器
    • 配置环境
      • 安装虚拟环境
      • 安装开发工具
      • 安装硬件模拟器
      • 安装调试工具
  • LAB0.5:最小可执行内核
    • 实验目的
    • 实验内容
    • 练习
    • 内存布局
    • 链接脚本
    • 真正的入口点
    • 从SBI到stdio
    • 编译运行
    • 项目组成与执行流
  • LAB1:中断机制
    • 实验目的
    • 实验内容
    • 练习
    • RISC-V中断相关
    • 上下文处理
    • 中断处理程序
    • 时钟中断
    • 项目组成与执行流
  • LAB2:物理内存管理
    • 实验目的
    • 实验内容
    • 练习
    • 地址与页表
    • 物理内存探测
    • 以页为单位管理物理内存
    • 页面分配算法
    • 项目组成与执行流
  • LAB3:虚拟内存管理
    • 实验目的
    • 实验内容
    • 练习
    • 页面置换
    • PageFault
    • 使用多级页表
    • 页面置换机制
    • FIFO置换算法
    • 项目组成与执行流
  • LAB4:进程管理
    • 实验目的
    • 实验内容
    • 练习
    • 进程与线程
    • 相关结构体
    • 进程模块初始化
    • 进程切换
    • 项目组成与执行流
  • LAB5:用户程序
    • 实验目的
    • 实验内容
    • 练习
    • 用户进程
    • 用户程序
    • 创建并执行用户进程
    • 系统调用
    • 用户进程的退出和等待
    • 项目组成与执行流
  • LAB6:进程调度
    • 实验目的
    • 实验内容
    • 练习
    • 进程状态
    • 再次认识进程切换
    • 调度算法框架
    • 项目组成与执行流
  • LAB7:同步互斥
    • 实验目的
    • 实验内容
    • 练习
    • 同步互斥的基本概念
    • 信号量
    • 条件变量与管程
    • 项目组成与执行流
  • LAB8:文件系统
    • 实验目的
    • 实验内容
    • 练习
    • 文件系统介绍
    • 文件系统抽象层VFS
    • 硬盘文件系统SFS
    • 设备即文件
    • 从中断到终端
    • 项目组成与执行流
由 GitBook 提供支持
在本页
  • 简介
  • 常用命令

这有帮助吗?

  1. LAB0:ready~go!
  2. 前导知识

了解硬件模拟器

简介

我们有了操作系统的代码,那要在哪里去运行呢。我们当然可以像计算机组成原理一样去烧制一块RISC-v架构的开发板,然后去debug。虽然这样可以,但duck不必,使用模拟器会使我们的实验更加方便。模拟器就是在计算机上通过软件模拟一个RISC-v架构的硬件平台,从而能够运行RISC-v的目标代码。

模拟器有很多,但我们为了方便,选择的是QEMU模拟器,的优点在于,内置了一套OpenSBI固件的实现,可以简化我们的代码。

常用命令

help

查看 qemu 帮助,显示所有支持的命令。

q、quit、exit

退出 qemu。

stop

停止 qemu。

c、cont、continue

连续执行。

x /fmt addr xp /fmt addr

显示内存内容,其中 'x' 为虚地址,'xp' 为实地址。 参数 /fmt i 表示反汇编,缺省参数为前一次参数。

p、print

计算表达式值并显示,例如 $reg 表示寄存器结果。

memsave addr size file pmemsave addr size file

将内存保存到文件,memsave 为虚地址,pmemsave 为实地址。

breakpoint 相关:

设置、查看以及删除 breakpoint,pc执行到 breakpoint,qemu 停止。(暂时没有此功能)

watchpoint 相关:

设置、查看以及删除 watchpoint, 当 watchpoint 地址内容被修改,停止。(暂时没有此功能)

s、step

单步一条指令,能够跳过断点执行。

r、registers

显示全部寄存器内容。

info 相关操作

查询 qemu 支持的关于系统状态信息的操作。

其他具体的命令格式以及说明,参见 qemu help 命令帮助。

上一页了解开发调试基本工具下一页配置环境

最后更新于4年前

这有帮助吗?