ポストPC時代のキーワード「エンベデッド」のすべて ――転換点はカー・ナビゲーション・システム

今村義幸

tag: 組み込み

技術解説 2001年5月17日

●デバッガの拡張プラグインAPIの例

 ここでは,米国Metrowerks社の開発ツールCodeWarriorのマルチタスク・デバッガ(http://www.metrowerks.co.jp/Products/Embedded/)の拡張APIを一例として紹介する.

 CodeWarriorのデバッガは,リアルタイム・カーネルを搭載したターゲット・システムの情報をリモートで獲得したり制御を行うためのプラグインを組み込むことができる(写真5).ホスト環境はWindows(Win32)で,マルチタスク・デバッガのためのプラグインはCOM(Component Object Model)で実装されている.マルチタスク・デバッガ・プラグインは,直接のターゲット・システムとは通信を行わない.ホスト・ターゲット間のデバッグ・インターフェース自体はデバッガ本体に任せ,デバッガを介してターゲット・システムの情報を獲得,制御している.マルチタスク・デバッガのためのプラグインAPIを表7にまとめた.

 CodeWarriorのマルチタスク・デバッガはプロセス・モデルのOSとタスク・モデルのOSに対応している.タスク・モデルのOSではアプリケーション全体を一つのプロセスとして認識し,そのなかで各タスクのタスクIDを認識する.

●OSごとに拡張プラグインAPIを用意しなければならない

 ここではCodeWarriorを例にデバッガの拡張APIを紹介したが,機能的には一般的なものであり,ほかの組み込み系のデバッガでもこのようなAPIを備えている.ただし,こうしたAPIを使ってリアルタイムOSのマルチタスク・デバッガを開発するためには,それぞれのOSの内部情報(タスク・コントロール・ブロックなど)に合わせてプラグインを毎回作りこむ必要がある.

 今後ITRON専門委員会でデバッガとITRONのインターフェース仕様が標準化されれば,ITRONの各社からの実装ごとにプラグインを作り込む必要がなくなり画期的だ.ITRON以外のOSもこうしたデバッグ標準インターフェースを実装すればいっそう好ましい.

p05_01.jpg
〔写真5〕CodeWarriorのマルチタスク・デバッガの画面

〔表7〕 マルチタスク・デバッガのためのプラグインAPI一覧
(CodeWarriorの例)

プラグインAPI
機 能
GetCurrentThread 現在実行状態にあるスレッド(タスク)IDを獲得する.
GetProcesses 現在ターゲット上で実行されているプロセスのIDを獲得する.
GetProcessInformation 現在ターゲット上で実行されているプロセスの情報を獲得する.
GetProcessThreads 現在ターゲット上で実行されているプロセス下にあるスレッドのリストを獲得する.
GetThreadInformation 現在ターゲット上で実行されているプロセス下にあるスレッドの情報を獲得する.
InstallNubMenu マルチタスク・デバッグのためのデバッガ・メニューをインストールする.
NotifyAboutToRun プラグインにデバッガ本体がスレッドの実行を再開しようとしていることを通 知する.
NotifyReturnFromRun スレッドがブレーク・ポイント,例外またはその他の理由により停止されたことをデバッガか らプラグインに通知する.
NotifyShutDown デバッガがデバッグ・セッションを終了しようとしていることをプラグインに通 知する.
ProcessExists デバッガはターゲット・システムのデバッグで実行されているプログラムのデバッグにプラグ インが必要かどうか最初にこの関数を呼び出して確定する.
ReadThreadRegisters OSによりサスペンドされているスレッドのレジスタ情報を獲得する.実行中のスレッドのレ ジスタ情報はデバッガ本体によって別のメカニズムで獲得する.
WriteThreadRegisters OSによりサスペンドされているスレッドのレジスタ値を変更する.実行中のスレッドのレジ スタ値はデバッガ本体によって別のメカニズムで変更する.
組み込みキャッチアップ

お知らせ 一覧を見る

電子書籍の最新刊! 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日