Show page source of DebugSample1 #47004

= Sample1 を Eclipse でデバッグする
TOPPERS/JSP for LPC2388の移植に当たって、このプロジェクトではIDEとしてEclipseを用いました。従って、ユーザーが自身のアプリケーションをデバッグする際にもEclipseを使う事が出来ます。

このページでは、Eclipse 3.4 (Ganymede)を使って、Linux上でAmontech JTAG KEY 互換ICEを使ったデバッグをする方法を説明します。なお、このページで説明するのはデバッグセッションの設定方法のみです。

 * アプリケーションのビルド
 * Eclipseのインストールと設定
 * アプリケーションのEclipseへの読み込み
 * OpenOCDの設定

等については別ページを参照してください。また、Eclipse上のgdbの実際の使い方はネット上の情報や書籍を参照してください。
== デバッグ・コンフィグレーションを作る
Eclipseは汎用IDEです。C言語でプログラム開発を行えるようCDTを導入してありますが、幾分つぎはぎの面は否めません。さらにCDTはワークステーション用であり、組み込み用のプラグインを更に導入して使用しています。どうしても、デバッグ設定は面倒になります。以下、その説明を行います。

最初に、デバッグしたいプロジェクトをプロジェクトViewで右クリックし、Debug... -> Debug Configurationを選びます。GDB Hardware Debuggingを選び、ダイアログのNewアイコンをクリックすると、プロジェクト名から自動的にデバッグConfigurationが生成されます。図1にその様子を示します。プロジェクト名がsample1なので、Configuration名はsample1 Linux GCCとなっています。プロジェクト名とアプリケーションファイル名も自動的に設定されます。
[[Embed(Ubuntu 9.04-2009-09-22-21-52-05.png, caption=図1 デバッグ対象の設定)]]

次にDebuggerタブをクリックして、gdb関連の設定を行います(図2)。

最初に、arm-none-eabi-gdb へのフルパスを設定しておきます。

次に、"Use remote target"にチェックを入れます。これは本来ネットワークで接続されたターゲットをデバッグするためのものですが、OpenOCDはローカルに接続されていてもネットワークごしに通信を行うため、必ずチェックを入れます。

"Host name or IP address"にはターゲットのホスト名かIPアドレスを指定します。図の"debugger.local"は、JTAG ICE専用に使っているnetbookです。

"Port number"は、OpenOCDの場合デフォルトで3333です。特に理由がない限り、この番号を変える必要はありません。

[[Embed(Ubuntu 9.04-2009-09-22-21-52-15.png, caption=図2 デバッガの設定)]]

最後にデバッグ開始時に行う処理を記述します。

ターゲットは組み込みプロセッサですので、デバッグ開始時には以下の処理が必要です。
 * プロセッサのリセットと実行停止
 * FLASH領域へロードされているプログラムのデバッグ・シンボル読み込み
 * 先頭番地の設定

これらの設定はstartupタブで行います(図3)。

少し面倒なのはファイルからのシンボルの読み込みです。図のようにfileコマンドを利用してjspファイル(ELF)から読み込みます。sample1は今回のプロジェクト名ですので、自分のプロジェクト合わせて変更して使ってください。また、初期のプログラム・カウンタの設定値は0と指定します。

[[Embed(Ubuntu 9.04-2009-09-26-09-48-53.png, caption=図3 デバッグ開始時の動作の設定)]]

== デバッグを行う