つながるワイヤレス通信機器の開発手法(15) ――プロトタイプを開発する
● 効率良くモニタするための三つの注意点
モニタ・プログラムを実装するうえで注意すべきことはほかにもある.それらを以下に挙げる.
1)モニタすべき情報は必要最小限にする
2)必要度に応じてグループ分けし,出力をフィルタリングできるようにする
3)モニタ情報をUARTに出力するモードとRAMの空き領域に書き込むモードの二つを用意し,Cプログラムのコンパイル・オプション(#ifdef)などで切り替えるようにしておく
1)は検討して絞り込む必要があるが,デバッグ時にどういった情報が必要になるのかわからない.そのため,モニタできる(あるいはモニタしたい)情報をすべて列挙し,2)のようにグループ分けを行い,フィルタリングできるしくみを備えるとよい.例えば,たまにしか使わない情報を一つのグループとし,通常はフィルタを掛けて出力しないようにしておく.かりに,その情報が必要になった場合は,そのときだけフィルタをはずして出力すればよい.
PDC(personal digital cellular)方式の携帯電話の場合,図7のように三つのレイヤでそれぞれが状態や情報を持っている.これらのレイヤが出力するモニタ情報を,ここではL1,L2,L3とする.モニタをアクティブにするときにフィルタリングについて設定できるように,「モニタON」のコマンド(パソコンから機器へ)のパラメータを決めておく.図7では,モニタONのコマンドのパラメータとして0x01~0x07を設定している.パラメータの値によって,モニタとして出力される情報の量は変わる.階層構造を持った通信モデルの場合,下位レイヤほど頻繁に情報を出力することになる.図7の場合,0x04(L3の情報のみを出力する)のときがいちばん情報量が少なくなる.
3)は,デバッグの終盤で有効な方法である.不ぐあいが減ってきて,長時間動作チェックを行ったり,たくさんの機器で一斉にテストするような場合,パソコンをつないでリアルタイムにモニタするのではなく,RAMの空き領域にモニタ情報をためておき,不ぐあいが発生したときにその情報をログとして使用することができる.
図7 フィルタ例
図では,モニタONのコマンドのパラメータとして0x01~0x07を設定している.