Este repositório foi projetado para uso em tutoriais gem5. Ele foi construído com a suposição de que os usuários utilizarão Codespaces para aprender gem5.
O repositório contém os seguintes diretórios:
Nota: 'gem5' e 'gem5-resources' são submódulos, embora o arquivo .devcontainer/devcontainer.json especifique que um comando git module update --init --recursive
é executado quando o contêiner Codespace Docker é criado.
O contêiner usado pelo Codespaces é construído a partir de .devcontainer/Dockerfile. Ele contém:
/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/
. O seguinte pode ser usado no contêiner Codespace para executar uma simulação gem5 básica imediatamente:
gem5-arm gem5/configs/example/gem5_library/arm-hello.py
Isso executará um "Olá, mundo!" programa dentro de um sistema ARM simulado.
Neste projeto temos dois submódulos: 'gem5' e 'gem5-resources'. Eles são obtidos automaticamente quando os codespaces são inicializados. No momento em que este artigo foi escrito, o diretório 'gem5' estava em check-out na ramificação estável em v22.0.0.1. O repositório 'gem5-resources' foi verificado para a revisão '871e715', que deve conter recursos com compatibilidade conhecida com gem5 v22.0.
Para atualizar os submódulos git para que estejam sincronizados com suas origens remotas (hospedadas em nosso googlesource), execute o seguinte comando:
git submodule update --remote
Este repositório pode ser atualizado para esses submódulos sincronizados executando o seguinte (isso pressupõe que você tenha as permissões corretas para fazer isso):
git add gem5 gem5-resources
git commit -m " git submodules updated "
git push
Uma boa estratégia ao trabalhar com gem5 é usar ramificações. No diretório ‘gem5’, você pode usar ramificações para segregar seu desenvolvimento. Um fluxo de trabalho típico seria o seguinte.
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 uma lista de todas as ramificações disponíveis que você pode executar:
git branch