このリポジトリは、gem5 チュートリアルで使用するために設計されています。ユーザーが gem5 を学習するためにコードスペースを利用することを想定して構築されています。
リポジトリには次のディレクトリが含まれています。
注: .devcontainer/devcontainer.json ファイルでは、Codespace Docker コンテナーの作成時にgit module update --init --recursive
コマンドが実行されるように指定されていますが、「gem5」と「gem5-resources」はサブモジュールです。
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」という 2 つのサブモジュールがあります。これらは、コードスペースが初期化されるときに自動的に取得されます。この記事の執筆時点では、「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