OS内部資源情報の表示
SOLID-IDEには、OSの内部資源情報を表示する、 RTOSビューアー が搭載されています。 RTOSビューアーでは、タスクのステータス、優先度、現在のスタック消費量や、各種オブジェクトの状態を参照できます。
使い方
デバッグ中に、メニューの
をクリックすると、 RTOSビューアーウィンドウが表示されます。表示項目について
TOPPERS/FMP での表示例になります。
ウィンドウ左側のペインで選択可能な表示項目について解説します。
タスク
タスク を選択すると、ウィンドウ右側のペインにタスクの状態が表示されます。
各項目の詳細は以下のとおりです。
- ID
タスクID
- Core
CPU コア番号
- Status
Running/Waiting/Dormant などのタスクの状態を表します。
Waiting状態の場合はカッコ内に待ち状態になった要因を表しています。 表示される状態とWaiting状態の要因については タスク状態の一覧 と タスク待ち状態の要因一覧 を参照してください。
- WaitObject
待ち対象となっている資源の種類とIDが
Object:ID
の形式で表示されます。Object
として表示される、待ち対象の資源は以下のとおりです。SLP
自タスクによるslp_tsk/tslp_tsk呼出し
DLY
自タスクによるdly_tsk呼出し
FLG
イベントフラグ待ち
SEM
セマフォ獲得待ち
MTX
ミューテックス待ち
RDTQ
データキュー受信待ち
SDTQ
データキュー送信待ち
RPDQ
優先度データキュー受信待ち
SPDQ
優先度データキュー送信待ち
MPF
固定長メモリプール待ち
- Priority
タスクの現在の優先度を表します。
BasePriority は生成時の初期値を表します
- EntryAddress
タスクのエントリアドレスを表します。
- EntryName
タスクのエントリ関数名を表します。
- PC
タスクの現在のプログラムカウンタ (Running状態のタスク以外は最後のタスク切り替え時のPC)
- StackBase
タスクのスタックアドレスを表します。
- StackUsage
タスクのスタック消費量(単位はByte)を表します。
現在のスタック消費量/タスクのスタック容量で表示します。緑のゲージは使用率(%)を表します。
タスク状態の一覧
Dormant |
休止状態 |
|
Running |
実行状態 |
|
Ready |
実行可能状態 |
|
Waiting |
待ち状態(待ち要因については タスク待ち状態の要因一覧 を参照) |
|
Suspended |
強制待ち状態 |
参考
各タスク状態の定義と状態遷移の詳細についてはTOPPERS第3世代カーネル(ITRON系)統合仕様書の 2.6 タスクの状態遷移とスケジューリング規則 及び 図2-2.タスクの状態遷移
注釈
二重待ち状態はWaitingとして表示されます。待ち状態と要因がなくなった場合には強制待ち状態として表示されます。
イベントフラグ
イベントフラグ を選択すると、ウィンドウ右側のペインにイベントフラグの状態が表示されます。 選択している資源に待ちタスクがある場合待ち状態にあるタスクのIDが表示されます。 さらにタスクID表示をクリックすると該当するタスクの状態に切り替わります。
各項目の詳細は以下のとおりです。
- Id
イベントフラグID
- Attribute
イベントフラグの属性を表します。
- PRI:
TA_TPRI
属性 ( 待ち行列をタスクの優先度順にする)- CLR:
TA_CLR
属性 ( タスクの待ち解除時にイベントフラグをクリアする )- MUL:
TA_WMUL
属性 ( 複数のタスクが待つのを許す)
- Pattern
現在のイベントフラグの値を16進数で表します。
- InitialPattern
イベントフラグ生成時の初期フラグ値を表します。
- WaitQueue
このイベントフラグを待っているタスクIDを表します。
セマフォ
セマフォ を選択すると、ウィンドウ右側のペインにセマフォの状態が表示されます。 選択している資源に待ちタスクがある場合待ち状態にあるタスクのIDが表示されます。 さらにタスクID表示をクリックすると該当するタスクの状態に切り替わります。
各項目の詳細は以下のとおりです。
- ID
セマフォID
- Attribute
セマフォの属性を表します。
- PRI:
TA_TPRI
属性 ( 待ち行列をタスクの優先度順にする)
- InitialCount
セマフォ生成時の初期カウント値を表します。
- MaximumCount
セマフォで可能な最大のカウント値を表します。
- Count
現在のカウント値を表します。
- WaitQueue
このセマフォを待っているタスクIDを表します。
ミューテックス
ミューテックス を選択すると、ウィンドウ右側のペインにミューテックスの状態が表示されます。 選択している資源に待ちタスクがある場合待ち状態にあるタスクのIDが表示されます。 さらにタスクID表示をクリックすると該当するタスクの状態に切り替わります。
各項目の詳細は以下のとおりです。
- Id
ミューテックスID
- Attribute
ミューテックスの属性を表します。
- PRI:
TA_TPRI
属性 ( 待ち行列をタスクの優先度順にする)- CEI:
TA_CEILING
属性 ( 優先度上限ミューテックス/待ち行列をタスクの優先度順)
- CeilingPriority
優先度上限付きミューテックスの場合の上限タスク優先度を表します。 対象が優先度上限付きミューテックスでない場合(Attributes にCEIが表示されていない場合)にはこの値は無効です。
- LockingTaskID
ロックしているタスクIDを表します。
- WaitQueue
このミューテックスを待っているタスクIDを表します。
参考
優先度上限ミューテックスの動作についてはTOPPERS第3世代カーネル(ITRON系)統合仕様書の4.4.5 ミューテックスの「使用上の注意」を参照してください。
データキュー
データキュー を選択すると、ウィンドウ右側のペインにデータキューの状態が表示されます。 選択している資源に待ちタスクがある場合待ち状態にあるタスクのIDが表示されます。 さらにタスクID表示をクリックすると該当するタスクの状態に切り替わります。
各項目の詳細は以下のとおりです。
- Id
データキューID
- Attributes
データキューの属性を表します。
- PRI:
TA_TPRI
属性 ( 待ち行列をタスクの優先度順にする)
- MaximumCount
データキュー上に保存可能な数を表します。
- Count
データキュー上にあるデータの数を表します。
- SendWaitQueue
このデータキューに対して送信待ち状態にあるタスクIDを表します。
- ReceiveWaitQueue
このデータキューに対して受信待ち状態にあるタスクIDを表します。
優先度データキュー
優先度付きデータキュー を選択すると、ウィンドウ右側のペインに優先度付きデータキューの状態が表示されます。 選択している資源に待ちタスクがある場合待ち状態にあるタスクのIDが表示されます。 さらにタスクID表示をクリックすると該当するタスクの状態に切り替わります。
各項目の詳細は以下のとおりです。
- Id
優先度データキューID
- Attribute
優先度データキューの属性を表します。
- PRI:
TA_TPRI
属性 ( 待ち行列をタスクの優先度順にする)
- MaximumCount
優先度データキュー上に保存可能な数を表します。
- Count
優先度データキュー上にあるデータの数を表します。
- SendWaitQueue
この優先度データキューに対して送信待ち状態にあるタスクIDを表します。
- ReceiveWaitQueue
この優先度データキューに対して受信待ち状態にあるタスクIDを表します。
周期ハンドラ
周期ハンドラ を選択すると、ウィンドウ右側のペインに周期ハンドラの状態が表示されます。
各項目の詳細は以下のとおりです。
- Id
周知通知ID
- Attribute
周期通知の属性を表します。
- STA:
TA_STA
属性 ( 周期通知の生成時に周期通知を動作開始する)- PHS:
TA_PHS
属性 ( 周期通知を生成した時刻を基準時刻とする)
- ExtendInfo
周期通知ハンドラの拡張情報を表します。
- HandlerAddress
周期通知ハンドラのアドレスを表します。
- HandlerName
周期通知ハンドラ名を表します。
- CycleTime
起動する周期(単位はマイクロ秒)を表します。
- CyclePhase
設定されている位相(単位はマイクロ秒)を表します。
- Status
周期通知の状態を表します。
- START:
動作中(計時中)
- STOP:
停止中
参考
周期通知の周期と位相の関係についてはTOPPERS第3世代カーネル(ITRON系)統合仕様書の 4.6.2 周期通知 を参照してください。
アラームハンドラ
アラームハンドラ を選択すると、ウィンドウ右側のペインにアラームハンドラの状態が表示されます。
各項目の詳細は以下のとおりです。
- Id
アラーム通知ID
- Attribute
アラーム通知の属性を表します。 TOPPERS/ASP3カーネルの仕様では
TA_NULL
以外の設定はできないため、常に NUL が表示されます。- Mode (ASP3のみ)
通知処理モードを表します。 詳細については
TOPPERS.ASP3.T_NFYINFO.nfymode
を参照してください。- P1 (ASP3のみ), P2 (ASP3のみ)
タイムイベントの通知に関する付随情報を表します。
- EP1 (ASP3のみ), EP2 (ASP3のみ)
エラーの通知に関する付随情報を表します。
- ExtendInfo (FMP/FMP3のみ)
アラーム通知の拡張情報を表します。
- HandlerAddress (FMP/FMP3のみ)
アラーム通知ハンドラのアドレスを表します。
- HandlerName (FMP/FMP3のみ)
アラーム通知ハンドラ名を表します。
- Status
アラーム通知の状態を表します。
- START:
動作中(計時中)
- STOP:
停止中
- LeftTime (ASP3のみ)
START状態にあるときにアラーム通知が発生するまでの時間(単位はマイクロ秒)を表します。
固定長メモリプール
固定長メモリプール を選択すると、ウィンドウ右側のペインに固定長メモリプールの状態が表示されます。 選択している資源に待ちタスクがある場合待ち状態にあるタスクのIDが表示されます。 さらにタスクID表示をクリックすると該当するタスクの状態に切り替わります。
各項目の詳細は以下のとおりです。
- id
メモリプールID
- Attribute
メモリプールの属性を表します。
- PRI:
TA_TPRI
属性 ( 待ち行列をタスクの優先度順にする)
- BlockCount
使用されているメモリブロックの数を表します。
- BlockSize
メモリブロック1個当たりのサイズ(単位はByte)を表します。(初期化時に固定)
- BlockStartAddress
メモリブロックとして使用しているメモリ領域の先頭アドレスを表します。
- FreeBlockCount
空きメモリブロックの数を表します。
- WaitQueue
このメモリプールを待っているタスクIDを表します。
メールボックス
メールボックス を選択すると、ウィンドウ右側のペインにメールボックスの状態が表示されます。 選択している資源に待ちタスクがある場合待ち状態にあるタスクのIDが表示されます。 さらにタスクID表示をクリックすると該当するタスクの状態に切り替わります。
各項目の詳細は以下のとおりです。
- ID
メールボックスID
- Attribute
メールボックスの属性を表します。
- TPRI:
TA_TPRI
属性 ( 待ち行列をタスクの優先度順にする)- MPRI:
TA_MPRI
属性 ( メッセージキューを優先度順にする)
- MaximumPriority
メールボックスの最大優先度を表します。
- WaitQueue
このメールボックスを待っているタスクIDを表します。
メッセージバッファ
メッセージバッファ を選択すると、ウィンドウ右側のペインにメッセージバッファの状態が表示されます。 選択している資源に待ちタスクがある場合待ち状態にあるタスクのIDが表示されます。 さらにタスクID表示をクリックすると該当するタスクの状態に切り替わります。
各項目の詳細は以下のとおりです。
- Id
メッセージバッファID
- MaximumSize
メッセージバッファの最大メッセージサイズ(単位はByte)を表します。
- BufferSize
メッセージバッファ管理領域のサイズ(単位はByte)を表します。
- FreeBufferSize
メッセージバッファ管理領域中の空き領域のサイズ(単位はByte)を表します。
- MessageCount
メッセージバッファ管理領域に格納されているメッセージの数を表します。
- SendWaitQueue
このメッセージバッファに対して送信待ち状態にあるタスクIDを表します。
- ReceiveWaitQueue
このメッセージバッファに対して受信待ち状態にあるタスクIDを表します。
自動更新の停止
自動更新有効時のステップ実行などの動作は、Version 1.0 と比較して改善されていますが、遅い場合は、 RTOSビューアーを非表示にするか、下記の手順で自動更新を無効にしてください。
RTOSビューアーの設定 を開きます。
False に設定してください。
を
RTOSビューアーの情報を更新する場合は、更新 ボタン をクリックしてください。