工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Industrial Internet of Things >> 埋め込み

イベントフラググループの習得:Nucleus RTOS/SEのユーティリティサービスとデータ構造

イベントフラググループの習得:Nucleus RTOS/SEのユーティリティサービスとデータ構造
RTOS Revealedシリーズを表示

この記事ではイベントフラググループについての解説を続けます。

イベントフラググループユーティリティサービス

Nucleus RTOSは、イベントフラググループとのやり取りを効率化する3つの専用API呼び出しを提供します:グループ詳細情報の取得、グループ総数の取得、アプリケーション内のすべてのグループへのポインタ取得。最初の2機能はNucleus SEで完全サポートされています。

イベントフラググループ情報

このサービスコールは指定されたイベントフラググループの主要データを提供します。Nucleus SEではインターフェースが簡略化され、オブジェクト命名とサスペンド順序が省略され、タスクサスペンド情報は機能有効時のみ返されます。

Nucleus RTOSのイベントグループ情報API呼び出し

サービスコールプロトタイプ:

STATUS NU_Event_Group_Information(NU_EVENT_GROUP *group,
CHAR *name, UNSIGNED *event_flags, UNSIGNED *tasks_waiting,
NU_TASK **first_task);

パラメータ:

group – ユーザー提供のイベントフラググループ制御ブロックへのポインタ

name – グループ名用の8文字バッファ(null終端含む)

event_flags – 現在のフラグ値を受け取る変数へのポインタ

tasks_waiting – このグループでサスペンドしているタスク数を受け取る変数へのポインタ

first_task – 最初のサスペンドタスクへのポインタを受け取るNU_TASK変数へのポインタ

戻り値:

NU_SUCCESS – 呼び出し正常完了

NU_INVALID_GROUP – 提供されたグループポインタが無効

Nucleus SEのイベントグループ情報API呼び出し

このAPIはRTOS版と同等のコア機能を提供します。

サービスコールプロトタイプ:

STATUS NUSE_Event_Group_Information(NUSE_EVENT_GROUP group,
U8 *event_flags, U8 *tasks_waiting, NUSE_TASK *first_task);

パラメータ:

group – イベントフラググループのインデックス

event_flags – 現在のフラグ値を受け取るポインタ

tasks_waiting – サスペンドタスク数を受け取るポインタ(タスクサスペンド無効時は0)

first_task – 最初のサスペンドタスクのインデックスを受け取るポインタ(タスクサスペンド無効時は0)

戻り値:

NUSE_SUCCESS – 呼び出し正常完了

NUSE_INVALID_GROUP – グループインデックスが無効

Nucleus SEのイベントグループ情報実装

実装はシンプル:現在のフラグ値を読み取り、ブロッキングAPI有効時は待機タスク数と最初のタスクインデックスを計算、無効時は両方を0に設定。

*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 index; for (index=0; index

イベントフラググループ数の取得

Nucleus RTOSではグループ数は動的に変化可能;呼び出しは現在のカウントを返します。Nucleus SEではビルド時に固定。

Nucleus RTOSのイベントフラググループカウントAPI呼び出し

サービスコールプロトタイプ:

UNSIGNED NU_Established_Event_Groups(VOID);

戻り値:

アプリケーション内の現在の作成済みイベントフラググループ数

Nucleus SEのイベントフラググループカウントAPI呼び出し

サービスコールプロトタイプ:

U8 NUSE_Event_Group_Count(void);

戻り値:

アプリケーションで設定されたイベントフラググループ数

Nucleus SEのイベントフラググループカウント実装

関数は単にコンパイル時定数NUSE_EVENT_GROUP_NUMBERの値を返します。

埋め込み

  1. C++構造体とクラス:組み込み開発者のための実践ガイド
  2. Nucleus SEのメールボックス:設定と使用の実践ガイド
  3. Nucleus RTOSのセマフォ:ユーティリティサービスとデータ構造
  4. Nucleus SEのセマフォ:概要、設定、API要点
  5. Nucleus SEのイベントフラググループ:設定とAPI使用の入門ガイド
  6. Nucleus SEのキュー:導入とコアサービスコール
  7. Apacer、グローバル展開CV110-SD & CV110-MSD高性能フラッシュカードを発表
  8. OpenHW Group、オープンソースプロセッサーコアCORE-Vファミリを発表
  9. Swissbit、it-saでIoTデバイス向け最先端ハードウェアセキュリティを展示
  10. クラウド vs オンプレミスサーバー:最適なホスティングソリューションの選び方
  11. Microsoft Azureがブロックチェーン・トークン化とデータ管理サービスを発表