Update readme.
在 K210 开发板上运行 xv6-riscv 操作系统English | 中文
K210
xv6-riscv
(`-') (`-') <-.(`-') (OO )_.-> _(OO ) __( OO) (_| \_)--.,--.(_/,-.\ ,--. (`-') '-'. ,--. .----. .--. .----. \ `.' / \ \ / (_/ / .' ( OO).-> | .' / \_,-. | /_ | / .. \ \ .') \ / / . / -. (,------. | /) .' .' | | | / \ . .' \ _ \ /_)' .-. \ `------' | . ' .' /_ | | ' \ / ' / .'. \ \-'\ / \ `-' / | |\ \ | | | | \ `' / `--' '--' `-' `----' `--' '--' `------' `--' `---''
k210
qemu-system-riscv64
git clone https://github.com/HUST-OS/xv6-k210
首先您需要连接 k210 开发板到电脑,然后检查 USB 端口:
ls /dev/ | grep USB
在我的机器上的情况是将会显示 ttyUSB0,这就是 USB 端口。然后运行以下命令,以编译内核和用户程序:
ttyUSB0
cd xv6-k210 make build
Xv6-k210 采用 FAT32 文件系统,而不是其原本的文件系统。您需要一张 FAT32 格式的 SD 卡才能运行。并且 SD 卡上不能有分区表。为了能启动 shell 和其他用户程序,您需要将它们拷贝至 SD 卡中。 首先,需要将 SD 卡连至主机(需要读卡器)并进行挂载。
shell
ls /dev/ # 确认您的 SD 卡设备名 mount <SD 卡设备名> <挂载点> make sdcard dst="挂载点" umount <挂载点>
然后,将 SD 卡接入 k210 并运行:
make run
某些情况下您需要修改 USB 端口,端口名称可以通过前面说的步骤得到,然后运行以下命令:
USB 端口
make run k210-serialport=`USB 端口`(默认是 ttyUSB0)
Ps: 在 Linux 上这个端口大部分情况是 ttyUSB0, 如果您使用 Windows 或者 MacOS,这个文档可以帮助到您:maixpy-doc
Linux
Windows
MacOS
首先,确保 qemu-system-riscv64 已经下载到您的机器上并且加到了环境变量中;其次,需要一个 FAT32 磁盘镜像文件;
make fs
这会生成一个镜像文件 fs.img ,编译一些用户程序(如 shell)并拷贝至镜像中。只要 fs.img 存在并且不需要修改,您不必每次运行前都执行这个命令。
fs.img
最后,开始运行:
make run platform=qemu
Ps: 按 Ctrl + A 然后 X 退出 qemu。
Ctrl + A
X
qemu
Shell 命令其实也是用户程序。这些程序应当放置在 SD 卡或 fs.img 文件镜像的 “/bin” 目录下。目前已经支持几个常用命令,如 cd,ls,cat 等。
cd
ls
cat
此外,shell 支持下列快捷键:
xv6-user/
myprog.c
user.h
open
gets
printf
Makefile
$U/_myprog\
UPROGS=\ $U/_init\ $U/_sh\ $U/_cat\ ... $U/_myprog\ # 请不要忽略开头的 '_'
make userprogs
_myprog
UARTHS
解决用户态由于未知原因导致 panic 的 bug
©Copyright 2023 CCF 开源发展委员会 Powered by Trustie& IntelliDE 京ICP备13000930号
XV6-RISCV On K210
在
K210
开发板上运行xv6-riscv
操作系统English | 中文
依赖
k210
开发板或者qemu-system-riscv64
下载
在 k210 开发板上运行
首先您需要连接
k210
开发板到电脑,然后检查 USB 端口:在我的机器上的情况是将会显示
ttyUSB0
,这就是 USB 端口。然后运行以下命令,以编译内核和用户程序:
Xv6-k210 采用 FAT32 文件系统,而不是其原本的文件系统。您需要一张 FAT32 格式的 SD 卡才能运行。并且 SD 卡上不能有分区表。
为了能启动
shell
和其他用户程序,您需要将它们拷贝至 SD 卡中。 首先,需要将 SD 卡连至主机(需要读卡器)并进行挂载。然后,将 SD 卡接入
k210
并运行:某些情况下您需要修改
USB 端口
,端口名称可以通过前面说的步骤得到,然后运行以下命令:Ps: 在
Linux
上这个端口大部分情况是ttyUSB0
, 如果您使用Windows
或者MacOS
,这个文档可以帮助到您:maixpy-doc在 qemu-system-riscv64 模拟器上运行
首先,确保
qemu-system-riscv64
已经下载到您的机器上并且加到了环境变量中;其次,需要一个 FAT32 磁盘镜像文件;
这会生成一个镜像文件
fs.img
,编译一些用户程序(如shell
)并拷贝至镜像中。只要fs.img
存在并且不需要修改,您不必每次运行前都执行这个命令。最后,开始运行:
Ps: 按
Ctrl + A
然后X
退出qemu
。关于 Shell
Shell 命令其实也是用户程序。这些程序应当放置在 SD 卡或
fs.img
文件镜像的 “/bin” 目录下。目前已经支持几个常用命令,如
cd
,ls
,cat
等。此外,
shell
支持下列快捷键:添加用户程序
xv6-user/
目录下新建一个 C 文件,如myprog.c
,然后写入您的代码;user.h
头文件,以使用其中提供的函数,如open
、gets
和printf
等;Makefile
中添加一行 “$U/_myprog\
”,具体如下:xv6-user/
中看到_myprog
文件。最后,您需要将它拷贝到SD卡(参考此处) 或磁盘镜像(参考此处)中。进度
UARTHS
串口数据TODO
解决用户态由于未知原因导致 panic 的 bug