※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

開発環境/linux/Ubuntu-9.10/Eclipse


Eclipse+CDT+PSPLink+GDBServerによる開発とデバック

PSP Forums in JAPANのPSP 用開発ツールを参考にさせて頂きました。


前提として
  • psptoolchain
  • PSPLINK
がインストールされているものとします。

Eclipse CDTのインストール


Eclipse CDT(C/C++ Development Tooling)のインストール

sudo apt-get install Eclipse-cdt

関連パッケージも含めるとかなり大きいので時間がかかります。

…ですが、そのままだとEclipseのバージョンが古すぎてPSPアプリのデバックができないのでEclipse.org から最新版をダウンロードします。

ダウンロードページから Eclipse IDE for C/C++ Developers をダウンロードして下さい

日本語化するためにここから最新の日本語化言語パックを手に入れましょう。
(日本語化したくない人やPleiadesを使いたい人は各自それに適して読み進めて下さい)

最新のバージョン(2009年10月9日現在)は

  • eclipse-cpp-galileo-SR1-linux-gtk.tar.gz
  • NLpackja-eclipse-cpp-galileo-SR1-blancofw20091005.zip

でした。


インストールすべきEclipseフォルダを作成します。
tar -xvzf eclipse-cpp-galileo-SR1-linux-gtk.tar.gz
unzip NLpackja-eclipse-cpp-galileo-SR1-blancofw20091005.zip


これでEclipseフォルダができたので、これを旧Eclipseがインストールされている場所にコピーします。
sudo cp -r eclipse /usr/lib/

これで最新のEclipse CDTがインストールされました。

Eclipse CDTの設定


[ウィンドウ]-[設定]を選択
設定画面が開かれるので
[C/C++]-[環境]を選び、[選択]ボタンを押して、変数リストから「PATH」を選びます。
環境変数の欄に「PATH」が表示されるので-[編集]
値に
:/usr/local/pspdev/bin
を追加
[OK]-さらに[OK]を押して適用します。


Eclipseでのビルド

英語のままの人は気合で理解してください。

sample/gu/spriteを作成するとします。

spriteをmakeするにはguフォルダ内にあるcommonフォルダが必要なので
workspaceフォルダ内にcommonフォルダをコピー

[ファイル]-[新規]-[プロジェクト]を選択します。
[C/C++]-[C++ プロジェクト]-[次へ]
プロジェクト名 : sprite

[Makefile プロジェクト]-[空のプロジェクト]-[完了]


左の[C/C++ Projects]タブから
[sprite]を選択して右クリック-[インポート]

インポート画面が開くので
[一般]-[ファイルシステム]を選択し、ソース・ディレクトリーから
/usr/local/pspdev/psp/sdk/samples/gu/sprite
を選びます。
[sprite]フォルダがその下に表示されるのでチェック
(中のファイルが全てチェックされているか確かめる)
[終了]
spriteプロジェクトにファイルが追加されたのを確認します。

[プロジェクト]-[プロジェクトのビルド]

上手く行っていれば、これでEBOOT.PBPが生成されます


Eclipseでのデバッグ


デバックシンボルを設定するためにMakefileを変更します。
CFLAGS = -G0 -Wall -O2
CFLAGS = -g -G0 -Wall -O2
に変更して保存し、Eclipseのメニューで[プロジェクト]-[クリーン]で再ビルドします。

PSPLinkを使用するための準備をします。
cd ~/workspace/sprite/
alias sudo="sudo env PATH=$PATH"
sudo usbhostfs_pc
新しい端末を開いて
pcterm
すると host0:/ と表示されるので
debug ./sprite.elf
以下のように表示されれば成功です。
host0:/> PSPLink GDBServer (c) 2k6 TyRaNiD/Lovely2
GDBServer: Loaded host0:/sprite.elf - UID 0x017DA259 ←環境によって毎回異なる


Eclipseでデバックの設定をします。


[実行]-[デバックの構成]
[C/C++ Application]を選択

1)左側の[名前]に名前を入力します。
ここでは「PSPDGB」と入力します。
左下の方にある「その他の選択...」-「GDB Remoto System Process ランチャー」を選択します。

2)[メイン]タブの「プロジェクト」に「sprite」と入力し、
「C/C++ アプリケーション」に「sprite.elf」と入力します。

3)[デバッガー]タブの「デバッガー」ドロップダウンリストから
「gdbserver デバッガー」を選択します。

「始動で停止」の左側のチェックボックスをチェックします。

「Debugger Options」の「Main」タブのところで
「GDB デバッガー:」に
/usr/local/pspdev/bin/psp-gdb
と入力します。
この際「GDB コマンド・ファイル:」の「.gdbinit」を削除してください。

同じく「デバッガー・オプション」の「接続」タブのところで
「型」ドロップダウンリスト:「TCP」を選択
「ホスト名またはIPアドレス」:「localhost」と入力されているのを確認してください。
「ポート番号」:「10001」に修正してください。

「デバッグ」ダイアログの画面右下の「デバック」をクリックしてデバッグを開始します。

Eclipseがデバッグ画面に切り替われば設定は成功です。


後は自由にプログラミングを楽しんでください。


おまけ

PSPSDKのサンプルをいちいちmakeするのが面倒な人用。
sampleフォルダ直下に置いてmakeすると全てのサンプルをがつがつビルドしてくれるはずです。
コピペのときはTAB文字に注意してね。

#下位ディレクトリのMakefileを全てmakeする #仕組み
Makefileのフルパスを取得してディレクトリパスを返す→make -C /hoge/hoge #ex #./gu/blend/Makefile→./gu/blend/→make -C ./gu/blend/ #-mindepth 2 に注意!これが無かったら自分自身を呼び出してmake無限ループ SUBDIRS = $(shell find -mindepth 2 -name Makefile
sed -e >"s/Makefile//")

all:
list='$(SUBDIRS)'; for subdir in $$list; do \
$(MAKE) --no-print-directory -C $$subdir || exit 1;\
done

clean:
list='$(SUBDIRS)'; for subdir in $$list; do \
$(MAKE) clean  --no-print-directory -C $$subdir || exit 1;\
done