1. 项目简介
基于全志D1开发板开发一个类UNIX系统来学习操作系统开发相关知识,设计上会参考xv6和SylixOS,并且是从最底层开发,也即不使用uboot或者opensbi之类的引导程序,而是直接从m模式到s模式最后到用户层u模式。目前将最终的OS命名为SimpleOS,越简单越好,方便学习,同时在本网站博客上也会不定期更新开发进度。目前系统设计支持以下特性:
- 支持串口、定时器、中断控制器。
- 支持每个进程单独的地址空间。
- 支持系统调用。
- 支持简易文件系统。
- 支持简易Shell。
源码放在gitee上:https://gitee.com/databuser/simpleos。
2. 编译环境准备
2.1 交叉工具链安装
全志D1使用的是阿里平头哥玄铁c906内核,所以需要下载其对应的交叉工具链,地址为平头哥芯片开放社区(OCC) (t-head.cn)。这里我选择在windows平台开发,所以我下载的是windows平台的交叉工具链。
下载完成后解压到电脑上某个目录下,然后将bin目录路径添加到系统Path环境变量中。
另外还需要下载安装make工具,但是由于我的电脑已经安装过SylixOS IDE,其中自带make,所以make工具我是能直接使用的,其他人需要自行安装make。
安装好后可以通过“riscv64-unknown-elf-gcc.exe -v”命令来检查是否设置正确。
2.2 xfel工具安装
全志的芯片都烧录了BootROM,用于上电时最底层的初始化和寻找可引导程序。当芯片找不到可引导程序时进入fel模式,这时就可以通过usb接口和芯片来通信,比如下载程序到内存中执行等等。我们使用fel模式来下载OS镜像到内存中并运行,这就需要借助xfel工具,在安装xfel工具之前我们还需要首先安装usb驱动,下面一一介绍。
2.2.1 更换开发板fel模式的usb驱动
首先需要下载安装zadig软件,然后连接开发板的otg口到电脑上,运行zadig软件,在options下选择list all device,在列表中选中USB Device(VID_1f3a_PID_efe8),这是全志D1开发板。
在Driver一栏选择WinUSB,然后选择install driver,等待一会后驱动安装完成。
2.2.2 安装xfel工具
下载windows下的xfel工具:xfel-windows-v1.2.7 · xboot/xfel - Gitee.com。下载好后解压到电脑中,同样需要将xfel的目录路径添加到系统Path环境变量中。
设置好后可以通过“xfel -h”来检查设置是否正确。
评论