(1)此系列文章是跟着汪辰老师的RISC-V课程所记录的学习笔记。
(2)该课程相关代码gitee链接;
(3)PLCT实验室实习生长期招聘:招聘信息链接
(4)在学习汪辰老师的视频教程中,环境是需要自己配置的。老师是使用的VirtualBox虚拟机,而我是使用的VMware,因为懒得再去下载一个别的虚拟机了,所以本文章将会以Vmware虚拟机如何配置环境。
(5)注意:虚拟机不一样,只会导致安装Ubuntu略有不同,后续在Linux中操作是一致的。
(1)因为全网已经有很多非常详细的安装教程了,所以我就不在此赘述。个人是根据VMware虚拟机安装Ubuntu20.04详细图文教程这篇博客进行的环境安装,讲的非常详细。
(2)需要注意的一点是,这篇博客分配的磁盘大小为30GB,个人建议40GB以上。
(1)因为担心有些同学磁盘不小心分配小了,或者后续还需要进行增加磁盘大小。可以按照如下流程增加磁盘。
<1>选中安装好的Ubuntu 20.04—>编辑虚拟机
<2>按照如下步骤进行磁盘扩展。因为我的磁盘已经是40GB了,为了做实验,我就增大1GB。点击扩展之后,只需要等待扩展虚拟磁盘完成。
<3>点击两个确定即可。
<4>播放虚拟机
<5>进入虚拟机之后,打开命令行输入gparted进入磁盘管理
sudo gparted
<6>按照上述操作完成之后,重启
reboot
<7>重启之后,重新打开
gparted
。我们将会看到扩展内存成功了。
但是可能会有同学问,我们明明扩展到的最大内存是41GB呀,为什么这里是40.5GB呢?看上面,还有一个小的磁盘需要512GB,也就是0.5GB。至于为什么需要分配出来这0.5GB,我也不太清楚。
sudo gparted
(1)因为Linux和Windows的换行符是不一样的,所以建议所有操作在Linux中进行。而不是Windows中完成之后,传给Linux。深刻的教训!!!
(2)拉取课程仓库 —> 使用官方提供的 GNU工具链和 QEMU 模拟器
git clone https://gitee.com/unicornx/riscv-operating-system-mooc.git
sudo apt update
sudo apt install build-essential gcc make perl dkms git gcc-riscv64-unknown-elf gdb-multiarch qemu-system-misc
(1)执行完上述操作之后,进入拉取的
riscv-operating-system-mooc
目录
cd riscv-operating-system-mooc
(2)执行
make
等待出现finished successfully。
make
(3)进入git仓库的
riscv-operating-system-mooc/code/os/00-bootstrap
目录中
cd code/os/00-bootstrap
make run
(1)在汪辰老师的课程中,第四章的20分钟。他编译了一个hello.c。
(2)如果你也和视频一样输入如下指令,大概率会显示找不到stdio.h文件。
riscv64-unknown-elf-gcc -march=rv32ima -mabi=ilp32 hello.c
(3)你可以安装
gcc-riscv64-linux-gnu
,然后使用交叉编译工具链即可编译通过。
(4)但是在使用qemu
运行环境的时候,如果出现和我一样的提示,就可以执行复制命令。
sudo apt install gcc-riscv64-linux-gnu
riscv64-linux-gnu-gcc hello.c
# 如果运行qemu显示找不到目录,就执行如下语句
sudo cp /usr/riscv64-linux-gnu/lib/* /lib/
(1)qemu-riscv64: could not open ‘/lib/ld-linux-riscv64-lp64d.so.1‘;
(2)VMware虚拟机安装Ubuntu20.04详细图文教程;
(3)riscv-operating-system-mooc仓库的README_zh.md;
(4)QQ 学习群976125506的 课程环境搭配教程.docx文档。
(5)riscv-operating-system-mooc仓库的errata.pdf;