Dieses Repository wurde für die Verwendung in gem5-Tutorials entwickelt. Es wurde unter der Annahme entwickelt, dass Benutzer Codespaces verwenden, um gem5 zu erlernen.
Das Repository enthält die folgenden Verzeichnisse:
Hinweis: „gem5“ und „gem5-resources“ sind Submodule, obwohl die Datei .devcontainer/devcontainer.json angibt, dass ein Befehl git module update --init --recursive
ausgeführt wird, wenn der Codespace Docker-Container erstellt wird.
Der von Codespaces verwendete Container wird aus .devcontainer/Dockerfile erstellt. Es enthält:
/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/
. Folgendes kann im Codespace-Container verwendet werden, um sofort eine grundlegende gem5-Simulation auszuführen:
gem5-arm gem5/configs/example/gem5_library/arm-hello.py
Dadurch wird ein „Hallo Welt!“-Befehl ausgeführt. Programm in einem simulierten ARM-System.
In diesem Projekt haben wir zwei Untermodule: „gem5“ und „gem5-resources“. Diese werden automatisch abgerufen, wenn der Codespace initialisiert wird. Zum Zeitpunkt des Schreibens ist das Verzeichnis „gem5“ in den Stable-Zweig bei v22.0.0.1 ausgecheckt. Das Repository „gem5-resources“ wird auf die Revision „871e715“ ausgecheckt, die Ressourcen mit bekannter Kompatibilität mit gem5 v22.0 enthalten sollte.
Um die Git-Submodule so zu aktualisieren, dass sie mit ihren Remote-Ursprüngen (die auf unserer Google-Quelle gehostet werden) synchronisiert sind, führen Sie den folgenden Befehl aus:
git submodule update --remote
Dieses Repository kann auf diese synchronisierten Submodule aktualisiert werden, indem Sie Folgendes ausführen (dies setzt voraus, dass Sie über die entsprechenden Berechtigungen verfügen):
git add gem5 gem5-resources
git commit -m " git submodules updated "
git push
Eine gute Strategie bei der Arbeit mit gem5 ist die Verwendung von Branches. Im Verzeichnis „gem5“ können Sie Zweige verwenden, um Ihre Entwicklung zu trennen. Ein typischer Arbeitsablauf wäre wie folgt.
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
Um eine Liste aller verfügbaren Zweige anzuzeigen, können Sie Folgendes ausführen:
git branch