Este repositorio ha sido diseñado para su uso en tutoriales de gem5. Se creó asumiendo que los usuarios utilizarán Codespaces para aprender gem5.
El repositorio contiene los siguientes directorios:
Nota: 'gem5' y 'gem5-resources' son submódulos, aunque el archivo .devcontainer/devcontainer.json especifica que se ejecuta un comando git module update --init --recursive
cuando se crea el contenedor Codespace Docker.
El contenedor utilizado por Codespaces se construye a partir de .devcontainer/Dockerfile. Contiene:
/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/
. Lo siguiente se puede utilizar dentro del contenedor Codespace para ejecutar una simulación básica de gem5 de inmediato:
gem5-arm gem5/configs/example/gem5_library/arm-hello.py
Esto ejecutará un "¡Hola mundo!" programa dentro de un sistema ARM simulado.
En este proyecto tenemos dos submódulos: 'gem5' y 'gem5-resources'. Estos se obtienen automáticamente cuando se inicializan los espacios de código. Al momento de escribir este artículo, el directorio 'gem5' está registrado en la rama estable en v22.0.0.1. El repositorio 'gem5-resources' está registrado en la revisión '871e715', que debería contener recursos con compatibilidad conocida con gem5 v22.0.
Para actualizar los submódulos de git para que estén sincronizados con sus orígenes remotos (alojados en nuestro googlesource), ejecute el siguiente comando:
git submodule update --remote
Este repositorio se puede actualizar a estos submódulos sincronizados ejecutando lo siguiente (esto supone que tiene los permisos correctos para hacerlo):
git add gem5 gem5-resources
git commit -m " git submodules updated "
git push
Una buena estrategia al trabajar con gem5 es utilizar ramas. En el directorio 'gem5', puedes usar ramas para segregar tu desarrollo. Un flujo de trabajo típico sería el siguiente.
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
Para ver una lista de todas las sucursales disponibles puedes ejecutar:
git branch