RXduino のライセンスが緩和の方向とのことで,FreeRXduinoがリリースされています.
ローカルビルドは,Cygwin + rx-elf-gcc か KPIT社の rx-elf-gcc とのことで,要するに Windows が前提です.
しかし,手元の OSX でも試してみたい,ということで,試してみました.
前提
お手元の OSX には,既に Homebrew が適切にインストールされているものとします.
FreeRXduino のバージョンは rxduino-free-v110 です.
特電回路さんのページからzipアーカイブをダウンロードして展開してください.
rx-elf ツールチェインのインストール
PizzaFactory for Homebrew からインストールします.
$ brew tap PizzaFactory/commandline
$ brew install pf-gnuchains4x-rx-elf
お手元の OSX が Mavericks なら,bottle (バイナリパッケージ)がダウンロードされます.
そうでなければソースコードがダウンロードされてビルドが走ります.
FreeRXduino へのパッチ当て
diff --git a/makefile b/makefile
index de20a51..1f883da 100644
--- a/makefile
+++ b/makefile
@@ -27,14 +27,14 @@
###################################################################################################
TARGET = userapp
-#CCPATH = /cygdrive/c/cygwin/usr/local/tkdn-20110720/rx-elf/bin/
-AS = $(CCPATH)rx-elf-as
-CC = $(CCPATH)rx-elf-gcc -fsigned-char -Wall -g -I./include/tkdnhal -I./include/lib/
-CPP = $(CCPATH)rx-elf-gcc -fsigned-char -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
-CNVBIN = $(CCPATH)rx-elf-objcopy -O binary
-DMP = $(CCPATH)rx-elf-objdump
+#CCPATH = /cygdrive/c/cygwin/usr/local/tkdn-20110720/rx-pizzafactory/bin/
+AS = $(CCPATH)rx-pizzafactory-elf-as
+CC = $(CCPATH)rx-pizzafactory-elf-gcc -fsigned-char -Wall -g -I./include/tkdnhal -I./include/lib/
+CPP = $(CCPATH)rx-pizzafactory-elf-gcc -fsigned-char -Wall -g -I./include/tkdnhal -I./include/rxduino -I./include/lib/
+LNK = $(CCPATH)rx-pizzafactory-elf-ld
+CNV = $(CCPATH)rx-pizzafactory-elf-objcopy --srec-forceS3 --srec-len 32 -O srec
+CNVBIN = $(CCPATH)rx-pizzafactory-elf-objcopy -O binary
+DMP = $(CCPATH)rx-pizzafactory-elf-objdump
OBJS = common/intvect.o common/lowlevel.o $(TARGET).o
#LFLAGS = -Llib/gcc -Llib -lfatfs -lliquidcrystal -lnokialcd -loled -lrxduino -ltkdnhal -lstdc++ -lsupc++ -lc -lsim -lgcc -lm -nostartfiles
RXDUINO_STANDARD_LIBS = -lethernet -ltkdnip -lspi -lservo -lliquidcrystal -lsdmmc -leeprom -lstepper -lwire
要するに,program prefix の変更です.
PizzaFactory の rx-elf ツールチェインでは, rx-elf- ではなくて, rx-pizzafactory-elf- なのです.
make
makefile の修正が終わったら,おもむろに make します.
$ make
rx-pizzafactory-elf-gcc -fsigned-char -Wall -g -I./include/tkdnhal -I./include/rxduino -I./include/lib/ -Wall -O2 -c userapp.cpp -o userapp.o
rx-pizzafactory-elf-ld -Map userapp.map lib/start.o common/intvect.o common/lowlevel.o userapp.o -T common/rx62n_rom_standalone.ld -Llib/gcc -Llib -lethernet -ltkdnip -lspi -lservo -lliquidcrystal -lsdmmc -leeprom -lstepper -lwire -lrxduino -lstdc++ -lsupc++ -lc -lsim -lgcc -lm -ltkdnhal -nostartfiles -o userapp.elf
rx-pizzafactory-elf-ld: warning: section `.bss' type changed to PROGBITS
rx-pizzafactory-elf-objcopy --srec-forceS3 --srec-len 32 -O srec userapp.elf userapp.mot
ld が warning を出していますが,これはおそらく RXduino が提供している ld script の問題です.
簡単に直せるはずですが,まだオープンソースと呼べる使用許諾条件ではないので,手は出さずにおきます.
余談: できていないこと
これでビルドは通ったものの,OSX から RX マイコンに書き込むためのツールがありません.
RXprog までソースコード公開になるのを(ならないかもしれないと承知で)じっと待つか,必要な技術情報に関して作者がまとめているので似たものを作るかということになるでしょう.