スタンドアロン アプリケーションの場合、エージェントは、XilPM Client ライブラリの XPm_Register_Notifier ()
関数を使用して特定のイベントについて通知を受け取ります。コールバックを登録したノードに関連するイベントについてエージェントが通知を受信する必要がなくなった場合、XPm_Register_Notifier()
を使用して登録を解除できます。
呼び出し元は、次のパラメーターを指定して XPm_RegisterNotifier()
を呼び出す前に、Notifier オブジェクトを初期化します。
- node
- 通知を受け取るノード (デバイス ノード、電源ノード、エラー イベント ノードなど) の ID。
- event
- イベント ID またはエラー イベント マスク。node パラメーターとしてデバイス ノードまたは電源ノードの ID を指定した場合、イベント ID を指定します。node パラメーターとしてエラー イベント ノードの ID を指定した場合、エラー イベント マスクを指定します。
- wake: true
- イベント発生時にウェークアップする。false: ウェークアップしない (既にウェークアップしている場合は通知のみ)。バッファリング/キューイングなし。
- callback
- 通知が利用可能な場合に呼び出されるカスタム コールバック関数へのポインター。コールバックは割り込みコンテキストから実行されるため、コールバックを使用する場合は特に注意が必要です。コールバックはオプションであり、NULL に設定することもできます。
デバイス ノードまたは電源ノードに関連するイベントが発生した場合、エージェントは次のフォーマットのデータをペイロードとして取得します。
予約 [12-15] | イベント マスク [8-11] | NodeID [4-7] | コールバック タイプ [0-3] |
ノード ステート [12-15] | イベント ID [8-11] | NodeID [4-7] | コールバック タイプ [0-3] |
エージェントは、通知を受信するとコールバック タイプをチェックします。コールバック タイプが PM_NOTIFY_CB の場合、エージェントは XPm_NotifyCb()
を呼び出します。
エラー イベント ノード ID、エラー イベント マスク、および API の詳細は、 『BSP およびライブラリ資料コレクション』 (UG643) を参照してください。