Skip to content
This repository was archived by the owner on Jun 3, 2021. It is now read-only.

Latest commit

 

History

History
99 lines (85 loc) · 3.18 KB

README_cn.md

File metadata and controls

99 lines (85 loc) · 3.18 KB

XV6-RISCV On K210

English 中文
K210 开发板上运行 xv6-riscv 操作系统

 (`-')           (`-')                   <-.(`-')                            
 (OO )_.->      _(OO )                    __( OO)                            
 (_| \_)--.,--.(_/,-.\  ,--.    (`-')    '-'. ,--.  .----.   .--.   .----.   
 \  `.'  / \   \ / (_/ /  .'    ( OO).-> |  .'   / \_,-.  | /_  |  /  ..  \  
  \    .')  \   /   / .  / -.  (,------. |      /)    .' .'  |  | |  /  \  . 
  .'    \  _ \     /_)'  .-. \  `------' |  .   '   .'  /_   |  | '  \  /  ' 
 /  .'.  \ \-'\   /   \  `-' /           |  |\   \ |      |  |  |  \  `'  /  
`--'   '--'    `-'     `----'            `--' '--' `------'  `--'   `---''   

依赖

下载

git clone https://github.com/SKTT1Ryze/xv6-k210

编译

首先您需要连接 k210 开发板到电脑,然后检查 USB 端口:

ls /dev/ | grep USB

在我的机器上的情况是将会显示 ttyUSB0,这就是 USB 端口。
然后运行以下命令:

cd xv6-k210
make build

在 k210 开发板上运行

运行以下命令:

make run

某些情况下您需要修改 USB 端口,端口名称可以通过前面说的步骤得到,然后运行以下命令:

make run k210-serialport=`USB 端口`(默认是 ttyUSB0)

Ps: 在 Linux 上这个端口大部分情况是 ttyUSB0, 如果您使用 Windows 或者 MacOS,这个文档可以帮助到您:maixpy-doc

在 qemu-system-riscv64 模拟器上运行

首先确保 qemu-system-riscv64 已经下载到您的机器上并且加到了环境变量中。
然后运行以下命令:

make run platform=qemu

Ps: 按 Ctrl + A 然后 X 退出 qemu
目前 qemu 平台已经初步支持文件系统并且能运行文件系统上的用户态程序,具体请移步这里

快速在 qemu 平台上运行 shell

$ dd if=/dev/zero of=fs.img bs=512k count=2048
$ mkfs.vfat -F 32 fs.img
$ make build
$ (sudo)mount fs.img /mnt
$ (sudo)cp xv6-user/_init /mnt/init
$ (sudo)cp xv6-user/_sh /mnt
$ (sudo)cp xv6-user/_cat /mnt
$ (sudo)cp xv6-user/init.c /mnt
$ (sudo)umount /mnt
$ make run platform=qemu

进入 qemu 后输入命令 _cat init.c,将会读取 fs.img 中的 init.c 文件内容并输出到终端。
这里的 init.c 文件可以是任意文本文件。此外,shell支持下列快捷键:

  • Ctrl-H -- 退格
  • Ctrl-U -- 删除行
  • Ctrl-D -- 文件尾(EOF)
  • Ctrl-P -- 打印进程列表

进度

  • 多核启动
  • 裸机 printf
  • 内存分配
  • 页表
  • 时钟中断
  • S 态外部中断
  • 接收 UARTHS 串口数据
  • SD card 驱动
  • 进程管理
  • 文件系统(qemu)
  • 文件系统(k210)
  • 用户程序(qemu)
  • 用户程序(k210)

TODO

完善 k210 平台上的文件系统和用户态程序。