Docker - YatCPU 的 Dev container 环境配置
YatCPU (Yet another toy CPU,逸芯) 是一款开源、开发中的教学用 RISC-V 处理器,基于 Chisel 硬件设计语言实现,并用于中山大学 (Sun Yat-sen University) 计算机学院冯班组成原理实验课程的教学。但笔者在配置对应的开发环境时遇到很多阻碍,经过一段时间的摸索和自行尝试过后,笔者决定对原文档中的 Docker 环境配置部分做一些补充,YatCPU原环境配置文档链接在此
YatCPU 的 Dev Container 环境配置
使用 Docker + Dev Container 配置开发环境比较简单,而且也经过了测试,所以,我们推荐在 Windows 上直接使用 Dev Container 来设置开发环境。
按照安装指南配置好 Dev Container 环境,环境中含有 Scala 开发环境以及 Verilator 仿真器,但不包含 Vivado。如果你不需要烧板,那么使用 Dev Container 环境就可以完成所有实验以及软件测试了。
配置开发容器
软件安装
安装 VSCode,直接在官网下载
安装 Dev Containers 插件
在 VSCode 的扩展处搜索 Dev Containers,下载安装
编写配置文件
在工程文件夹中修改
yatcpu/.devcontainer/devcontainer.json
的内容,如果没有此文件请创建此文件,并修改为以下内容1
2
3
4
5
6{
"name": "YatCPU",
"build": {
"dockerfile": "Dockerfile"
}
}在工程文件夹中修改
yatcpu/.devcontainer/Dockerfile
的内容,如果没有此文件请创建此文件,并修改为以下内容1
FROM howardlau1999/yatcpu
使用 Dev Containers 打开项目
我们可以按 VSCode 左下角的蓝色按钮来运行 Dev Containers:
在上方的运行选项中选择在容器中重新打开,这个命令会让 Dev container 自动根据
devcontainer.json
里的配置信息来创建 Docker 环境如果你是第一次在容器中打开,你可能需要十几分钟的时间等待容器配置完毕,如果在配置过程中发生异常,请检查你的网络情况后再次运行
运行测试
上述步骤完成后,我们就可以像在 Dev container 为我们配置好的开发环境中运行、调试代码了。
新建终端输入
sbt test
,期望你有如下输出1
2[info] All tests passed.
[success] Total time: 181 s (03:01), completed Nov 14, 2023, 3:24:02 PM后续当你需要再次启动开发环境时,按相同的步骤运行 Dev Containers 即可,此时 Dev Containers 会自动使用之前已经配置好的环境,不需要再次花费十几分钟等待环境配置