Этот репозиторий был разработан для использования в учебных пособиях по Gem5. Он был создан с расчетом на то, что пользователи будут использовать Codespaces для изучения gem5.
Репозиторий содержит следующие каталоги:
Примечание. «gem5» и «gem5-resources» являются подмодулями, хотя в файле .devcontainer/devcontainer.json указано, что команда git module update --init --recursive
выполняется при создании Docker-контейнера Codespace.
Контейнер, используемый 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 для синхронизации с их удаленными источниками (которые размещены в нашем источнике Google), выполните следующую команду:
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