Eclipse+devkitPorでGBA開発環境を構築

2465 ワード

Arduinoを拾うと同時にGBAも拾う.
そこでまた偉大なEclipseに開発環境を構築~~
まず
devkitPro http://devkitpro.org
CDT付きEclipse http://www.eclipse.org/
GNU ARMカード http://gnuarmeclipse.livius.net/blog/
devkitProインストール:
プロセスはもちろん、自動的にインストールされます.Dディスクのルートディレクトリの下にインストールします.
devkitProのインストールが完了したら、d:devkitProdevkitARMbinを環境変数Pathに追加します.
追加しない場合はEclipseにPathを設定しなければなりません.
GNU ARMカード:
1.help->install new software 
2.追加 http://gnuarmeclipse.sourceforge.net/updates
3.GNU ARM C/C++Development Supportを選択
4.Eclipseの再起動を完了する
プロジェクトの設定:
1.File->new->c++ project
2.ARM Cross TargetApplicatio->Empty Projectを選択
3.Toolchains:次はdevkitProを選んでNextを注文します.Finishを注文しないでください.
4.コンフィギュレーションの下のデバッグ前のチェックを外します.
(私はVBAシミュレータがコンパイルしたELFを認識しないことを試したことがあります.私は努力して彼に認識させました.GDB接続も接続されています.オンラインデバッグもできません)
5.ポイントAdvanced settings
5.1.C/C++Build->Settingsを設定する
5.1.1 Target Processorの下でProcessorをARM 7 DTMIに設定します.ThumbとThumb interworkをすべてチェックします.選択肢にARM 7 DTMI-Sが浮動小数点をサポートするモデルであることに気づくかもしれませんが、任天堂は本当にけちで、モデルを変えるとずっと面白いです.5.1.2 C CompilerとC++CompilerでのOptimizationでのOther optimization flagsに-fomit-frame-pointer-ffast-mathを追加します.これはただの最適化オプションで、追加しても追加してもコンパイルに影響しないので、devkitProのmakefileに追加しました.そこで私も追加しました.
5.1.3.C++Linkerを選択し、Generalの下の-nostartfiles前のチェックを外します.そして-specs=gba.specsをMiscellaneousの下のOther flagsに追加します.これは接続スクリプトで、リンクプログラムの具体的なメモリアドレスと割り当て場所を教えます.マジコンではなくmultiBootを介してGBAにプログラムを転送したい場合はgbaを選択します.mb.specs
5.1.4.GUN Create Flash Imageを設定するCommand line patternを${COMMAND}${FLAGS}${OUTPUT_FLAG}${OUTPUT_PREFIX}${ProjName}.gba${INPUTS}にするのは、コンパイルされたファイルの接尾辞を.gbaに変更することです.私は本当にもっと良い方法が見つかりません.GUN Create Flash ImageのOutputの出力フォーマットをbinaryに設定します.
5.2.C.C/C++General->Paths and Symbols設定ヘッダファイルとライブラリは、実際には上でも設定できますが、下の方が便利です.
5.2.1 IncludesでAddをクリックし、devkitProlibgbaincludeを見つけ、2つのadd to allオプションもチェックすると、別の構成と言語も同時に設定されます.
5.2.2 Libraries->addでgbaを記入します.ライブラリのファイル名はlibgba.aで、リンクするときにgbaを記入するとこれが見つかります.
5.2.3 Library Paths->addでdevkitProlibgbalibを見つけます.(リンクライブラリの場所を示すディレクトリ)
6.設定が終わったらFinishでOKです.
簡単な例をあげる
#include 

int main(void) {
    irqInit();
    irqEnable(IRQ_VBLANK);
    consoleDemoInit();
    iprintf("FUCK ME!");
    while (1) {
        VBlankIntrWait();
    }
}

最後にコンパイルしたGBAファイルは、マジコンカードが認識されない可能性があります.この場合、devkitProでgbafix.exeを見つけて、ROMをドラッグすればいいです.原理は簡単で、ROMの中にこのROMのCRCが保存されています.このFIXツールはあなたを再計算します.