サンプルプロジェクトの実行

ここでは、AArch64用のタスク切り替えサンプルプロジェクトについて、実行までの流れを解説します。

注釈

ここで説明しているは、SOLIDの機能を試していただくサンプルとして実装されたものです。厳密なテストや、パフォーマンスのチューニングなどは行っておりませんので、動作保証の対象外となります。


ファイルの取得

シミュレータ環境で実行可能なサンプルプロジェクトを実行するには、ダウンロードサイトから以下のファイルを取得してください。

  • solid-os-b9fcb79-aarch64-qemu-20210730.zip (AArch64用)

また、ファイルを展開すると、下記のようなサンプルプロジェクトが apps ディレクトリ内に同梱されています。

タスク切り替えサンプル
  • qemu-virtmini-sample-asp3-demo-task-aarch64-S

  • qemu-virtmini-sample-fmp-2CPU-demo-task-aarch64-S

SOLID独自形式ローダブルサンプル
  • qemu-virtmini-sample-asp3-demo-loader-aarch64-S

DLL形式ローダブルサンプル
  • qemu-virtmini-sample-asp3-demo-dll-aarch64-S

ここでは、AArch64用の qemu-virtmini-sample-asp3-demo-task-aarch64-S を使用します。


ソリューションのビルド

ソリューションファイル qemu-virtmini-sample-asp3-demo-task-aarch64-S.ptsln を開き、ビルドしてください。

../../_images/qemu-sample-build.png

デバッグの開始

デバッグ実行を行うには PARTNER QEMU Debug Engine ボタンを押下します。自動的にQEMUシミュレータが動作し、デバッグ実行を開始します。 あらかじめブレークポイントを設定しておけば、そこで停止します。

../../_images/qemu-start-debugging.png

サンプルの動作について

  1. 初期タスク (root_task) が、子タスク (child_task) 32個を動的に生成し、開始します

  2. 子タスクは自分の処理が完了したら、イベントフラグを設定します

  3. 初期タスクは子タスクからのイベントフラグを待っており、全てのタスクが完了すると、全ての子タスクを削除します

  4. このあと、また子タスク32個の動的生成に戻り、この処理を繰り返します。


デバッグ実行の様子

../../_images/qemu-debugging1.png