此存儲庫設計用於 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