跳转至

编译运行方法

获取 uCore 实验代码

从 uCore 仓库中拉取代码,进入到 labcodes_answer/lab8 文件夹中,使用 make 命令编译(需要 riscv-unknown-elf- 工具链,必须在 linux 环境中进行):

$ git clone https://github.com/wangrunji0408/ucore_os_lab.git -b riscv32-cod
$ cd ucore_os_lab/labcodes_answer/lab8
$ make    

正确编译完成后,应该能在文件夹下找到如下内容:

  • bin/rbl.img : rbl 镜像
  • bin/ucore.img : ucore 镜像
  • bin/kernel : 编译出来的 kernel,可用于反汇编
  • rbl : 预编译好的 rbl,可用于反汇编

在模拟器内运行 uCore

执行 make qemu 即可在 qemu 中运行 ucore,观察预期现象了。

我们可以执行 ls 命令查看文件系统中的文件:

可以看到里面有许多可执行文件,这就是 ucore 中的测例程序。我们在检查时会在你的 CPU 上运行这些用户程序。

在云平台,你的 CPU 上运行 ucore

ucore.img 写入物理地址 0x80400000 起始的内存中(一般为 ExtRAM)

rbl.img 写入物理地址 0x80000000 起始的内存中(一般为 BaseRAM)

按下 reset,同时进入云平台串口的终端模式:(注意,这里使用的是去年通过 ucore 实验的同学的比特流,因此选择的是共享总线串口,波特率为 9600,同学们在实验时要根据自己的设计进行配置)

输出应该与 qemu 中运行的输出一致:

同时可以进行输入,运行 ls 结果如下:

由于 riscv 版本的 uCore 是前两年才移植过来的,没有经过大规模测试,因此有些命令无法正确运行(例如 matrix),uCore 本身也有一些 Bug。同学们不用在意这些问题。

最终验收时,在 ThinPAD 上的运行结果和 QEMU 中的行为一致即可。


最后更新: 2022年11月29日
作者:Jiajie Chen (7.69%), cuibst (92.31%)