Powered By 特殊電子回路

最終更新日 平成24年11月30日

English

トップ ページチュートリアル仕様・機能 ダウンロード マニュアルWebコンパイラ

Eclipseからスケッチを描いてみる

ここではスケッチの書き方を説明します。もし、RXduino開発環境のセットアップが終わっていない場合は以下の2つのページを参照して完成させてください。

GUI環境の構築

Eclipseの初期設定

このセクションは前セクションEclipseの初期設定の応用編です。まだトライしていない場合は前セクションからの手順を踏まれることをお勧めします。

スケッチを描く

基本的にスケッチはuserapp.cppを変更するようにようにします。本家Arduinoではスケッチ「*.pdeファイル」となっているファイルです。

makefileの書き換え

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

詳細を説明します。