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

ここでは、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