LoginSignup
3
3

More than 5 years have passed since last update.

RXduino を PizzaFactory for Homebrew でビルドする

Last updated at Posted at 2014-05-17

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 までソースコード公開になるのを(ならないかもしれないと承知で)じっと待つか,必要な技術情報に関して作者がまとめているので似たものを作るかということになるでしょう.

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3