最終更新日 平成24年11月30日
ここではスケッチの書き方を説明します。もし、RXduino開発環境のセットアップが終わっていない場合は以下の2つのページを参照して完成させてください。
このセクションは前セクションEclipseの初期設定の応用編です。まだトライしていない場合は前セクションからの手順を踏まれることをお勧めします。
基本的にスケッチはuserapp.cppを変更するようにようにします。本家Arduinoではスケッチ「*.pdeファイル」となっているファイルです。
Makeとは、makefileというテキストで書かれた手順書を読み込んで、プログラムをコンパイルするための手順、インストールするライブラリのリンク方法などを決めてくれるコマンドです。
makeコマンドを実行すると、Makefileの記述に基づいてソースがコンパイルされ、実行ファイルが生成されます。Makefileは、 configureスクリプトを実行することにより、システムに合ったものが自動的に生成されます。 makefileの変更が必要となる場合が多々あります。たとえばライブラリを追加した場合、複数のユーザファイルを追加したい場合はmakefile に、追加したファイルもコンパイルしてくれるよう追記してあげます。
今現在のmakefileは以下のとおりです。(RaXinoの場合)
TARGET = userapp CCPATH = /cygdrive/c/cygwin/usr/local/tkdn-20110720/rx-elf/bin/ AS = $(CCPATH)rx-elf-as CC = $(CCPATH)rx-elf-gcc -Wall -g -I./include/tkdnhal -I./include/lib/ CPP = $(CCPATH)rx-elf-gcc -Wall -g -I./include/tkdnhal -I./include/rxduino -I./include/lib/ LNK = $(CCPATH)rx-elf-ld CNV = $(CCPATH)rx-elf-objcopy --srec-forceS3 --srec-len 32 -O srec DMP = $(CCPATH)rx-elf-objdump OBJS = lib/start.o sample/common/intvect.o $(TARGET).o lib/libfatfs.a lib/libliquidcrystal.a\ lib/libnokialcd.a lib/liboled.a lib/librxduino.a lib/libtkdnhal.a LFLAGS = -L/usr/local/tkdn-20110720/rx-elf/rx-elf/lib \ -L/usr/local/tkdn-20110720/rx-elf/lib/gcc/rx-elf/4.6.1 \ -L./ -lstdc++ -lsupc++ -lc -lsim -lgcc -lm -nostartfiles MAKEFILE = makefile RAMSCRIPT=sample/common/rx62n_ram_standalone.ld ROMSCRIPT=sample/common/rx62n_rom_standalone.ld make = make --no-print-directory "CFLAGS=-DRXDUINO_FUJI" all: clean rom lib: libs samples ram: $(OBJS) $(MAKEFILE) $(RAMSCRIPT) $(LNK) -Map $(TARGET).map $(OBJS) -T $(RAMSCRIPT) $(LFLAGS) -o $(TARGET).elf rom: $(OBJS) $(MAKEFILE) $(ROMSCRIPT) $(LNK) -Map $(TARGET).map $(OBJS) -T $(ROMSCRIPT) $(LFLAGS) -o $(TARGET).elf $(CNV) $(TARGET).elf $(TARGET).mot list: $(TARGET).elf $(DMP) -S $(TARGET).elf > $(TARGET).lst $(DMP) -s $(TARGET).elf > $(TARGET).txt $(TARGET).elf: $(OBJS) $(MAKEFILE) $(LNK) -Map $(TARGET).map $(OBJS) -T $(LDSCRIPT) $(LFLAGS) -o $(TARGET).elf $(CNV) $(TARGET).elf $(TARGET).mot start.o: start.asm $(AS) -o start.o start.asm .c.o: $(CC) $(CFLAGS) -c $< -o $@ .cpp.o: $(CPP) $(CFLAGS) -c $< -o $@ clean: rm -f *.o rm -f $(TARGET).out rm -f $(TARGET).elf rm -f $(TARGET).lst rm -f $(TARGET).map rm -f $(TARGET).mot
詳細を説明します。