该存储库设计用于 gem5 教程。它是在假设用户将利用 Codespaces 来学习 gem5 的情况下构建的。
该存储库包含以下目录:
注意: “gem5”和“gem5-resources”是子模块,尽管 .devcontainer/devcontainer.json 文件指定在创建 Codespace Docker 容器时执行git module update --init --recursive
命令。
Codespaces 使用的容器是从 .devcontainer/Dockerfile 构建的。它包含:
/usr/local/bin/gem5-x86
/usr/local/bin/gem5-arm
/usr/local/bin/gem5-riscv
/opt/cross-compiler/riscv64-linux/
。/opt/cross-compiler/aarch64-linux/
。 可以在 Codespace 容器中使用以下内容来立即运行基本的 gem5 模拟:
gem5-arm gem5/configs/example/gem5_library/arm-hello.py
这将执行“Hello world!”模拟 ARM 系统内的程序。
在这个项目中,我们有两个子模块:“gem5”和“gem5-resources”。这些是在初始化代码空间时自动获得的。在撰写本文时,“gem5”目录已签出到 v22.0.0.1 的稳定分支。 “gem5-resources”存储库已检出修订版“871e715”,其中应包含已知与 gem5 v22.0 兼容的资源。
要将 git 子模块更新为与其远程源(托管在我们的 googlesource 上)同步,请执行以下命令:
git submodule update --remote
可以通过运行以下命令将此存储库更新为这些同步子模块(假设您具有执行此操作的正确权限):
git add gem5 gem5-resources
git commit -m " git submodules updated "
git push
使用 gem5 时一个好的策略是使用分支。在“gem5”目录中,您可以使用分支来隔离您的开发。典型的工作流程如下。
git checkout stable
git branch example-1 # Creating a new branch named 'example-1'.
git checkout example- `
echo " Create a test commit " > test.txt
git add test.txt
git commit -m " misc: Adding a test commit "
git checkout stable
git checkout example-1
要查看所有可用分支的列表,您可以执行:
git branch