ルモーリン

たこルカ12人でΩ_てしっ

投稿:2013-08-26、更新:2018-01-19

液晶モジュールが3台になったので並行表示させたい
2018-01-19 【この動画を削除しました】
12個のタスクが液晶モジュールのドライバと連絡を取るのにシグナルを使いました。 このシグナル、Cライブラリによくある奴じゃありません。AmigaOSの奴です。 これ↓
AmigaOS - Wikipedia
1タスクが32種類のシグナル待ちができるようにしました。 全部でタスク数×32種類の待ちとなります。 簡単に図解するとこんな感じ。 シグナルの概要
簡単に図解するとこんな感じ。 タスクの構成
FreeRTOSではいきなり削除するけれど、タスクが確保したリソースの解放タイミングを調整できなかったので、 他のタスクから削除要求が来たら、当該タスクに削除要求シグナルを出してタスク自身で終了処理をした後に終了してもらうことにしました。 AmigaOSのコンソール用アプリケーションに対してCTRL+Cを入力するとシグナルを発行してアプリケーション自身が終了処理できます。 これをパクりました(笑)。
ペリフェラルのドライバもシグナルを使っていて、タスク生成/削除のタイミングとシグナルの作成/削除を同期させるのが超面倒。
FreeRTOSのタスク削除APIは「削除を予約、その後アイドルしたら削除」なので削除APIから戻ってきても削除されていないorz
まあ、どうせ話が通じないと思うので、あとはソース見てください(^^;
yrntrlmnmnt20130826.zip