Skip to content
/ SysCore Public

A hand-made OS core for National College Students Computer System Ability Competition

License

Notifications You must be signed in to change notification settings

i-Pear/SysCore

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SysCore

一、环境准备

# 将工具链bin目录释放至环境变量
export PATH=$PATH:/usr/your_toolchain_path

二、开发板运行

# 编译出k210.bin
make all
# 烧录到开发板
make up
# 通过串口查看
make see
# 也可以直接make run,会完成从编译到烧录到串口查看的全过程
make run

make_run_demo

格式化SD卡的命令

!!!格式化前请检查SD卡是不是/dev/sda,否则可能格式化本机硬盘
sudo dd if=/dev/zero of=/dev/sda bs=1M count=20
sudo mkfs.vfat -F 32 /dev/sda
if [ ! -d "/mnt/sd" ]; then mkdir -p /mnt/sd; fi
sudo mount -t vfat /dev/sda /mnt/sd
sudo cp -r test_suites/* /mnt/sd
sudo umount /mnt/sd

三、QEMU模拟器运行

1. 安装QEMU

下载qemu-6.0.0源码

将target/riscv/cpu_helper.c中的以下代码注释掉,目的是使得任何的PTE_U都可以访问目标地址

else if ((pte & PTE_U) && ((mode != PRV_U) &&
(!sum || access_type == MMU_INST_FETCH))) {
/* User PTE flags when not U mode and mstatus.SUM is not set,
   or the access type is an instruction fetch */
return TRANSLATE_FAIL;
} else if (!(pte & PTE_U) && (mode != PRV_S)) {
/* Supervisor PTE flags when not S mode */
return TRANSLATE_FAIL;
}

编译qemu

./configure --target-list=riscv64-softmmu,riscv64-linux-user
make -j$(nproc)

将build/riscv64-softmmu释放到环境变量

export PATH=$PATH:qemu-6.0.0/build/riscv64-softmmu

检查qemu版本

qemu-system-riscv64 --version

2. 准备SD卡内存镜像

首先,新建assets文件夹并放入SD卡所需文件,执行命令:

dd if=/dev/zero of=fs.img bs=1M count=20
mkfs.vfat -F 32 fs.img
sudo mount fs.img /mnt/sd
sudo cp -r ./assets/* /mnt/sd
sync
sudo umount /mnt/sd
xxd -i fs.img img.h

得到img.h文件,将其放入kernel/driver文件夹,编译driver:

make qemu-driver

3. 启动QEMU

运行qemu并使用1234端口进行debug

make dqemu
make debug # 再开一个shell运行gdb

也可以直接全速运行:

make qemu

4. 加载符号

可以同时加载内核和用户态程序两个符号,享受双倍断点

file build/kernel.o
add-symbol-file your_userspace_running_exectuable

四、OS各模块详细文档

比赛相关文档

五、一些有用的网站

六、鸣谢

rCore-Tutorial: https://rcore-os.github.io/rCore-Tutorial-Book-v3/index.html

xv6-k210: https://github.com/HUST-OS/xv6-k210

fatfs: http://elm-chan.org/fsw/ff/00index_e.html

rustsbi: https://github.com/luojia65/rustsbi

About

A hand-made OS core for National College Students Computer System Ability Competition

Resources

License

Stars

Watchers

Forks

Packages

No packages published