Nanashi-softプログラマ専用NDSでプログラミング


◇NDSでプログラミング-DLDIファイルシステム-

※まだ書いている途中です('-'*)


○DLDIとは何か?

○サンプルプログラム

#include <fat.h>

int main(void){
	if(! fatInitDefault()){
		consoleDemoInit();  //setup the sub screen for printing
		iprintf("DLDI error");
		while(1){
		}
		return 0;
	}

	FILE *IN;
	char s[256];
	IN= fopen("/test.dat", "rb");
	if(IN == NULL){
		//open error
	}
	else{
		fread(s, 1, sizeof(s), IN);
		fclose(IN);
	}
}

○ビルドする

arm9.cをビルドする際の、リンク時のオプションに『-lfat』を追加する必要がある
私はいつもバッチでビルドしているので、そのコマンドはこうなる

C:\devkitPro\devkitARM\bin\arm-eabi-g++ -g -Wall -O2 -mcpu=arm9tdmi -mtune=arm9tdmi -fomit-frame-pointer -ffast-math -IC:\devkitPro\libnds\include -DARM9 -fno-rtti -fno-exceptions -c arm9.c -oarm9.o
C:\devkitPro\devkitARM\bin\arm-eabi-g++ -g -mthumb -mthumb-interwork -mno-fpu -specs=ds_arm9.specs arm9.o -LC:\devkitPro\libnds\lib -lfat -lnds9 -o arm9.elf
C:\devkitPro\devkitARM\bin\arm-eabi-objcopy -O binary arm9.elf arm9.bin

注意点として、-lfatの位置はこの場所以外に書くと以下のようなエラーが発生する

C:\devkitPro\libnds\lib\libfat.a(disc.o):(.rodata+0x4): undefined reference to `dldiGetInternal'
collect2: ld returned 1 exit status




TOPプログラマ専用NDSでプログラミング