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

パーティションメモリ:ユーティリティサービスとデータ構造


RTOSRevealedシリーズを表示する

この記事では、RTOSパーティションメモリについて引き続き説明します。

パーティションプールユーティリティサービス

Nucleus RTOSには、パーティションプールに関連付けられたユーティリティ関数を提供する3つのAPI呼び出しがあります。パーティションプールに関する情報を返し、アプリケーション内のパーティションプールの数を返し、アプリケーション内のすべてのパーティションプールへのポインターを返します。これらの最初の2つはNucleusSEに実装されています。

パーティションプール情報の取得

このサービス呼び出しは、パーティションプールに関する情報の選択を取得します。 NucleusSEの実装はNucleusRTOSとは異なり、オブジェクトの命名とサスペンドの順序がサポートされておらず、タスクのサスペンドが有効になっていない可能性があるため、返される情報が少なくなります。

Nucleus RTOSAPIによるパーティションプール情報の呼び出し

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

STATUS NU_Partition_Pool_Information(NU_PARTITION_POOL * pool、CHAR * name、VOID ** start_address、UNSIGNED * pool_size、UNSIGNED * partition_size、UNSIGNED * available、UNSIGNED * alllocated、OPTION * suspend_type、UNSIGNED * tasks_waiting、NU_TASK ** first_task); / strong>

パラメータ:

プール –情報が要求されているパーティションプールへのポインタ

名前 –パーティションプールの名前の8文字の宛先領域へのポインタ。これには、ヌルターミネータ用のスペースが含まれます。

start_address –変数へのポインター。これは、パーティション・プール・データ域の開始へのポインターを受け取ります

pool_size –パーティションプールのサイズ(バイト単位)を受け取る変数へのポインター

partition_size –このプール内のパーティションのサイズを受け取る変数へのポインター

利用可能 –このプールで現在使用可能なパーティションの数を受け取る変数へのポインター

割り当て済み –このプールで現在使用されているパーティションの数を受け取る変数へのポインター

suspend_type –タスクサスペンドタイプを保持するための変数へのポインター。有効なタスクサスペンドタイプは NU_FIFO および NU_PRIORITY

tasks_waiting –このパーティションプールで一時停止されているタスクの数を受け取る変数へのポインター

first_task –最初に中断されたタスクのポインターが配置されるタスクポインターへのポインター

返品:

NU_SUCCESS –通話は正常に完了しました

NU_INVALID_POOL –パーティションプールポインタが無効です

Nucleus SEAPIによるパーティションプール情報の呼び出し

このAPI呼び出しは、Nucleus RTOSAPIの主要な機能をサポートしています。

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

STATUS NUSE_Partition_Pool_Information(NUSE_PARTITION_POOL pool、ADDR * start_address、U32 * pool_size、U16 * partition_size、U8 * available、U8 * alllocated、U8 * tasks_waiting、NUSE_TASK * first_task)

パラメータ:

プール –情報が要求されているパーティションプールのインデックス

start_address –変数へのポインター。これは、パーティション・プール・データ域の開始へのポインターを受け取ります

pool_size –パーティションプールのサイズ(バイト単位)を受け取る変数へのポインター

partition_size –このプール内のパーティションのサイズを受け取る変数へのポインター

利用可能 –このプールで現在使用可能なパーティションの数を受け取る変数へのポインター

割り当て済み –このプールで現在使用されているパーティションの数を受け取る変数へのポインター

tasks_waiting –このパーティションプールで一時停止されているタスクの数を受け取る変数へのポインター(タスクの一時停止が無効になっている場合は何も返されません)

first_task –タイプ NUSE_TASK の変数へのポインター これは最初に中断されたタスクのインデックスを受け取ります(タスクの中断が無効になっている場合は何も返されません)

返品:

NUSE_SUCCESS –通話は正常に完了しました

NUSE_INVALID_POOL –パーティションプールインデックスが無効です

NUSE_INVALID_POINTER –1つ以上のポインターパラメーターが無効です

NucleusSEによるパーティションプール情報の実装

このAPI呼び出しの実装は非常に簡単です:

この関数は、パーティションプールのステータスを返します。次に、API呼び出しのブロックが有効になっている場合、待機中のタスクの数と最初のタスクのインデックスが返されます(それ以外の場合、これら2つのパラメーターは0に設定されます)。

パーティションプールの数の取得

このサービス呼び出しは、アプリケーションで構成されているパーティションプールの数を返します。 Nucleus RTOSではこれは時間とともに変化し、戻り値は現在のプール数を表しますが、Nucleus SEでは、返される値はビルド時に設定され、変更できません。

Nucleus RTOSAPIによるパーティションプールの数の呼び出し

このAPI呼び出しは、Nucleus RTOSAPIの主要な機能をサポートしています。

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

UNSIGNED NU_Established_Partition_Pools(VOID);

パラメータ:

なし

返品:

アプリケーションで作成されたパーティションプールの数

Nucleus SEAPIによるパーティションプールの数の呼び出し

このAPI呼び出しは、Nucleus RTOSAPIの主要な機能をサポートしています。

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

U8 NUSE_Partition_Pool_Count(void);

パラメータ:

なし

返品:

アプリケーションで構成されているパーティションプールの数

実装

このAPI呼び出しの実装は、ほとんど簡単です。 #define の値です。 シンボル NUSE_PARTITION_POOL_NUMBER 返されます。


埋め込み

  1. クラウドとインハウスサービスの長所と短所
  2. MicrosoftAzureのブロックチェーントークンおよびデータ管理サービス
  3. デジタルメモリの用語と概念
  4. マイクロプロセッサ
  5. C ++の構造とクラス
  6. メールボックス:紹介と基本的なサービス
  7. セマフォ:ユーティリティサービスとデータ構造
  8. セマフォ:紹介と基本的なサービス
  9. イベントフラググループ:ユーティリティサービスとデータ構造
  10. イベントフラググループ:紹介と基本サービス
  11. キュー:紹介と基本的なサービス