つながるワイヤレス通信機器の開発手法(15) ――プロトタイプを開発する

太田博之

tag: 組み込み

技術解説 2005年1月11日

● モニタ自体がプログラムなので負荷がかかる

 このように利点が多いモニタ機能ではあるが,ソフトウェアで実現しているので時間的な制約を受ける場合が多い.

 従来のICEやJTAGデバッグ・ツールでは,内部のモニタや制御はハードウェアで行っているため,ソフトウェアの動作に対して制限がかけられることはない.一方,モニタ・プログラムの場合,それ自体がソフトウェアであるため,モニタ処理の負荷がほかのプログラムの動作を制限する可能性がある.

 このようなことが起きないように,モニタ・プログラムは,通常,実行優先順位が低いベース・ルーチンにおかれる場合が多い.ただし,こうなるとモニタ・プログラムの優先順位が低いので,プログラムの状態遷移をリアルタイムにモニタできない可能性がある.例えば図5のように,モニタ・プログラムが含まれるベース・ルーチンよりも優先順位が高いタスクが二つあり,それぞれの中で状態の遷移が行われるとする.最初のモニタの出力は,図5のとおりF4である.次のモニタ出力までの間に,タスクBによってF4からF5へ,タスクAによってF5からF6へ遷移する.その後,再びタスクBが発生してF6からF7へ遷移することになる.次のモニタ出力を見るとF7が出力されるので,モニタ上ではF4からF5,F6をスキップしてF7に移ったように見えることになる.

 このように,ソフトウェアで実現するモニタ機能は本来の動作に必要なプログラムの動作を妨害しないように組み込まれるため,実際の動作と差が出てくる場合がある(図6).モニタ・プログラムを使ってデバッグを行うときは,このような現象が起こることを考慮に入れておく必要がある.

f05_01.gif
図5 遷移の抜け
モニタ・プログラムが含まれるベース・ルーチンよりも優先順位が高いタスクが二つあり,それぞれの中で状態の遷移が行われると,モニタ上では状態F4からF5,F6をスキップしてF7に移ったように見えることになる.

f06_01.gif
図6 実際の動作とモニタの動作
ソフトウェアで実現するモニタ機能は本来の動作に必要なプログラムの動作を妨害しないように組み込まれる.そのため,図のように実際の動作と差が出てくる場合がある.

組み込みキャッチアップ

お知らせ 一覧を見る

電子書籍の最新刊! FPGAマガジン No.12『ARMコアFPGA×Linux初体験』好評発売中

FPGAマガジン No.11『性能UP! アルゴリズム×手仕上げHDL』好評発売中! PDF版もあります

PICK UP用語

EV(電気自動車)

関連記事

EnOcean

関連記事

Android

関連記事

ニュース 一覧を見る
Tech Villageブログ

渡辺のぼるのロボコン・プロモータ日記

2年ぶりのブログ更新w

2016年10月 9日

Hamana Project

Hamana-8最終打ち上げ報告(その2)

2012年6月26日