GCCのDS環境への移植です。


**サンプルのビルド方法 [#be7d98c0]
コマンドラインから、

 cd C:\devkitPro\examples\nds
 make

すると、
 C:\devkitPro\examples\nds\bin
フォルダにサンプル.ndsが沢山出てきます。
処理が終わるまで数分かかります。


**ビルドの流れ [#tb168c32]
-ARM9用のコードを書く(必須)
-ARM7用のコードを別ファイルに書く(オプション)
-ARM9・7用のコードをGCCでコンパイル
-コンパイルされたオブジェクトファイルをGCCでELF形式に変換
-objcopyコマンドでELFからバイナリ形式に変換
-ndstoolコマンドでARM9とARM7のバイナリを結合 


**Hello World [#jd86d31d]
 #include <nds.h>
 #include <nds/arm9/console.h>
 #include <stdio.h>
 
 int main(void) {
 	videoSetMode(0); // メインスクリーンを使わない
 	videoSetModeSub(MODE_0_2D | DISPLAY_BG0_ACTIVE); // サブBG0 をテキスト表示用に設定
 	vramSetBankC(VRAM_C_SUB_BG); // VRAM_CをサブBG表示用に設定
 
 	SUB_BG0_CR = BG_MAP_BASE(31); // バックグラウンドを黒に
 	BG_PALETTE_SUB[255] = RGB15(31,31,31); // フォントを白で描く(255番のパレットがフォント描画用)
 
 	//consoleInit() で、コンソール出力の初期化
 	consoleInitDefault((u16*)SCREEN_BASE_BLOCK_SUB(31), (u16*)CHAR_BASE_BLOCK_SUB(0), 16); // スクリーンレイアウトの指定
 
 	iprintf("Hello World!");  // Hello World! と表示
 
 	while(1) { // メインループ
 		swiWaitForVBlank();  // VBlank待ち
 	}
 	return 0;
 }

**Hello Worldのビルド (ファイル名を main.c としてコンパイルしています) [#z72e4edf]
-GCCでコンパイル
 "C:\devkitPro\devkitARM\bin\arm-eabi-g++.exe" -g \
 -Wall -O2 -mcpu=arm9tdmi -mtune=arm9tdmi \
 -fomit-frame-pointer -ffast-math -mthumb-interwork \
 -IC:\devkitPro\libnds\include -DARM9 \
 -c main.c -omain.o

-コンパイルされたオブジェクトファイルをGCCでELF形式に変換
 "C:\devkitPro\devkitARM\bin\arm-eabi-g++.exe" -g \
 -mthumb-interwork -mno-fpu -specs=ds_arm9.specs \
 main.o -LC:\devkitPro\libnds\lib -lnds9 -o main.elf

-objcopyコマンドでELFからバイナリ形式に変換
 "C:\devkitPro\devkitARM\bin\arm-eabi-objcopy.exe" -O \
 binary main.elf main.bin

-ndstoolコマンドで.ndsファイル作成
 ndstool -c hello.nds  -9 main.bin


**リンク [#k10fcc0b]
-Sourceforge.net devkitPro
http://sourceforge.net/project/showfiles.php?group_id=114505

I like to party, not look arteilcs up online. You made it happen.

トップ   差分 バックアップ リロード   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS