d2d2aa7916 | ||
---|---|---|
bootloader/SBI | ||
debug | ||
doc | ||
img | ||
kernel | ||
linker | ||
mkfs | ||
tools | ||
xv6-user | ||
.gitignore | ||
LICENSE | ||
Makefile | ||
README | ||
README.md | ||
README_cn.md | ||
fs.sh |
README.md
XV6-RISCV On K210
Run xv6-riscv on k210 board
English 中文
(`-') (`-') <-.(`-')
(OO )_.-> _(OO ) __( OO)
(_| \_)--.,--.(_/,-.\ ,--. (`-') '-'. ,--. .----. .--. .----.
\ `.' / \ \ / (_/ / .' ( OO).-> | .' / \_,-. | /_ | / .. \
\ .') \ / / . / -. (,------. | /) .' .' | | | / \ .
.' \ _ \ /_)' .-. \ `------' | . ' .' /_ | | ' \ / '
/ .'. \ \-'\ / \ `-' / | |\ \ | | | | \ `' /
`--' '--' `-' `----' `--' '--' `------' `--' `---''
Dependencies
k210 board
orqemu-system-riscv64
- RISC-V Toolchain: riscv-gnu-toolchain
Installation
git clone https://github.com/HUST-OS/xv6-k210
Build
First you need to connect your k210 board to your PC.
And check the USB serial port
:
ls /dev/ | grep USB
In my situation it will be ttyUSB0
cd xv6-k210
make build
Run on k210 board
make run
Sometimes you should change the USB serial port
:
make run k210-serialport=`Your-USB-port`(default by ttyUSB0)
Ps: Most of the k210-port in Linux is ttyUSB0, if you use Windows or Mac OS, this doc may help you: maixpy-doc
Run on qemu-system-riscv64
First make sure you have the qemu-system-riscv64
on your system.
Then run the command:
make run platform=qemu
Ps: Press Ctrl + A then X to quit qemu. Besides, file system and uesr programs are available on qemu. More details here.
Quick Start to run Shell
on qemu
$ 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
After entering qemu
, type _cat init.c
, and it will read the contents of init.c
in fs.img
, output to the terminal.
The init.c
can be any text file. In addition, shell
supports some shortcut keys as below:
- Ctrl-H -- backspace
- Ctrl-U -- kill a line
- Ctrl-D -- end of file (EOF)
- Ctrl-P -- print process list
Progress
- Multicore boot
- Bare-metal printf
- Memory alloc
- Page Table
- Timer interrupt
- S mode extern interrupt
- Receive uarths message
- SD card driver
- Process management
- File system(qemu)
- File system(k210)
- User program(qemu)
- User program(k210)
TODO
File system on k210 platform.