イベントフラググループ:ユーティリティサービスとデータ構造
RTOSRevealedシリーズを表示する
この記事では、イベントフラググループについて引き続き説明します。
イベントフラググループユーティリティサービス
Nucleus RTOSには、イベントフラググループに関連付けられたユーティリティ関数を提供する3つのAPI呼び出しがあります。グループに関する情報を返し、アプリケーション内のイベントフラググループの数を返し、アプリケーション内のすべてのグループへのポインタを返します。これらの最初の2つはNucleusSEに実装されています。
イベントフラググループ情報
このサービスコールは、イベントフラググループに関する情報の選択を取得します。 NucleusSEの実装はNucleusRTOSとは異なり、オブジェクトの命名とサスペンドの順序がサポートされておらず、タスクのサスペンドが有効になっていない可能性があるため、返される情報が少なくなります。
Nucleus RTOSAPIによるイベントグループ情報の呼び出し
サービスコールプロトタイプ:
STATUS NU_Event_Group_Information(NU_EVENT_GROUP * group、
CHAR * name、UNSIGNED * even t_flags、UNSIGNED * tasks_waiting、
NU_TASK ** first_task);
パラメータ:
グループ –ユーザー提供のイベントフラググループ制御ブロックへのポインタ
名前 –イベントフラググループの名前の8文字の宛先領域へのポインタ。これには、ヌルターミネータ用のスペースが含まれます
event_flags –指定されたイベントフラググループの現在の値を受け取る変数へのポインタ
tasks_waiting –このイベントフラググループで中断されたタスクの数を受け取る変数へのポインター
first_task –タイプ NU_TASK の変数へのポインター 最初に中断されたタスクへのポインタを受け取ります
返品:
NU_SUCCESS –通話は正常に完了しました
NU_INVALID_GROUP –イベントフラググループポインタが無効です
Nucleus SEAPIによるイベントグループ情報の呼び出し
このAPI呼び出しは、Nucleus RTOSAPIの主要な機能をサポートしています。
サービスコールプロトタイプ:
STATUS NUSE_Event_Group_Information(NUSE_EVENT_GROUP group、
U8 * event_flags、U8 * tasks_waiting、NUSE_TASK * first_task);
パラメータ:
グループ –情報が要求されているイベントフラググループのインデックス
event_flags –指定されたイベントフラググループの現在の値を受け取る変数へのポインタ
tasks_waiting –このイベントフラググループで一時停止されたタスクの数を受け取る変数へのポインター(タスクの一時停止が無効になっている場合は何も返されません)
first_task –タイプ NUSE_TASK の変数へのポインター これは最初に中断されたタスクのインデックスを受け取ります(タスクの中断が無効になっている場合は何も返されません)
返品:
NUSE_SUCCESS –通話は正常に完了しました
NUSE_INVALID_GROUP –イベントフラググループインデックスが無効です
NucleusSEによるイベントグループ情報の実装
このAPI呼び出しの実装は非常に簡単です:
* event_flags =NUSE_Event_Group_Data [group]; #if NUSE_BLOCKING_ENABLE * tasks_waiting =NUSE_Event_Group_Blocking_Count [group]; if(NUSE_Event_Group_Blocking_Count [group]!=0){U8インデックス; for(index =0; indexこの関数は、イベントフラググループの値を返します。次に、API呼び出しのブロックが有効になっている場合、待機中のタスクの数と最初のタスクのインデックスが返されます(それ以外の場合、これら2つのパラメーターは0に設定されます)。
イベントフラググループの数の取得
このサービス呼び出しは、アプリケーションで構成されたイベントフラググループの数を返します。 Nucleus RTOSではこれは時間とともに変化し、戻り値は現在のグループ数を表しますが、Nucleus SEでは、返される値はビルド時に設定され、変更できません。
Nucleus RTOSAPIによるイベントフラググループカウントの呼び出し
サービスコールプロトタイプ:
UNSIGNED NU_Established_Event_Groups(VOID);
パラメータ:
なし
返品:
アプリケーションで作成されたイベントフラググループの現在の数
Nucleus SEAPIによるイベントフラググループカウントの呼び出し
このAPI呼び出しは、Nucleus RTOSAPIの主要な機能をサポートしています。
サービスコールプロトタイプ:
U8 NUSE_Event_Group_Count(void);
パラメータ:
なし
返品:
アプリケーションで構成されたイベントフラググループの数
NucleusSEによるイベントフラググループカウントの実装
このAPI呼び出しの実装は、ほとんど簡単です。 #define の値です。 シンボル NUSE_EVENT_GROUP_NUMBER 返されます。
埋め込み
- クラウドとインハウスサービスの長所と短所
- MicrosoftAzureのブロックチェーントークンおよびデータ管理サービス
- C ++の構造とクラス
- メールボックス:紹介と基本的なサービス
- セマフォ:ユーティリティサービスとデータ構造
- セマフォ:紹介と基本的なサービス
- イベントフラググループ:紹介と基本サービス
- キュー:紹介と基本的なサービス
- Apacer:世界中で発売されたCV110-SDおよびCV110-MSDカード
- OpenHW Groupは、オープンソースコアのCORE-Vファミリを作成して発表しました
- Swissbit:データとデバイスを保護するためのハードウェアベースのセキュリティソリューション