9
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

ETロボコン開発環境構築 for Mac

Last updated at Posted at 2014-08-09

元ネタはこれ。
http://sat0yu.hatenablog.jp/entry/20130320/1363767850

Wineのインストールに時間がかかるので先にやっといたほうがいいかも。

開発ツールのインストール

ここからMac用のクロスコンパイラをダウンロードして、適当なところに展開する。
http://sourceforge.net/projects/yagarto/files/YAGARTO%20for%20Mac%20OS%20X/20111119/

今回はちょっと古めの
yagarto-bu-2.21_gcc-4.6.2-c-c++_nl-1.19.0_gdb-7.3.1_eabi_intelmac_20111119.dmg
をダウンロードした。どうも 4.6.2 でないとロボットに転送してから動かないらしい。

参考:
http://tobese.hatenablog.jp/entry/2014/04/19/183633

展開してできたディレクトリをyagartoにリネームする。

ls yagarto
Binutils.webloc   COPYING3.LIB      arm-none-eabi/    source.txt
COPYING           GCC.webloc        bin/              tools/
COPYING.LIB       GDB.webloc        include/          version.txt
COPYING.LIBGLOSS  GNU.webloc        lib/
COPYING.NEWLIB    Newlib.webloc     libexec/
COPYING3          YAGARTO.webloc    share/

lsしてこんなかんじになってればOK

nxtOSEKのダウンロード

nxtOSEK

ここから。今回はnxtOSEK_v218.zipをダウンロードした。
http://sourceforge.net/projects/lejos-osek/files/nxtOSEK/

sg.exe

oilファイルのコンバータ。osek_os-1.1.lzhの中に入ってる。
http://www.toppers.jp/osek-download.html

Wineのインストール

sg.exeを動かすために。

brew update
brew install wine --without-x11

こんなかんじで怒られる場合

Error: wine dependency libtool not installed with:
  --universal

それぞれ一旦削除して、wineと一緒に再インストールすればOK

brew uninstall libtool

参考:
http://blog.geta6.net/post/64863576065/osx-wine
http://qiita.com/sleon326/items/671aa0b2a7877edaff66

NXT Driverのインストール

ここの、NXT Fantom Driver からダウンロードする。
展開して出てくる MAC legodriver.pkg を実行してインストールする。

NeXTToolのインストール

NeXTToolはプログラムをロボットへ転送するためのツール。

http://bricxcc.sourceforge.net/utilities.html
ここの Download for Mac OSX (universal binary) からダウンロードする。

ビルド

必要なものがひと通り揃ったのでビルドしてみる。

ビルドツールのパスを変更

そのままだとCygwinでビルドするようになっているので、Makefileを修正して、さっき展開したビルドツールに置き換える。

以下の3箇所を環境に合わせて編集する。

nxtOSEK/ecrobot/tool_gcc.mak
- TARGET_PREFIX := arm-elf
+ TARGET_PREFIX := arm-none-eabi
...
- GNUARM_ROOT = /cygdrive/C/cygwin/GNUARM
+ GNUARM_ROOT = /Users/tac/Desktop/mac_env/yagarto
...
- NEXTTOOL_ROOT = /cygdrive/C/cygwin/nexttool
+ NEXTTOOL_ROOT = /Users/tac/Desktop/mac_env #nexttoolのあるパス
...
- NEXTTOOL  = NeXTTool.exe
+ NEXTTOOL  = nexttool

展開先に合わせて修正してね。

途中、cygpath が処理できなくて死ぬので、makefileを修正する。

nxtOSEK/ecrobot/ecrobot++.mak
-	$(WINECONSOLE) $(TOPPERS_OSEK_ROOT_SG)/sg/sg $(shell cygpath -m -w ${TOPPERS_OSEK_OIL_SOURCE}) \
-        -os=ECC2 -I$(shell cygpath -m -w ${TOPPERS_OSEK_ROOT_SG})/sg/impl_oil -template=$(shell cygpath -m -w ${TOPPERS_OSEK_ROOT_SG})/sg/lego_nxt.sgt
+	$(WINECONSOLE) $(TOPPERS_OSEK_ROOT_SG)/sg/sg.exe $(TOPPERS_OSEK_OIL_SOURCE) -os=ECC2 -I${TOPPERS_OSEK_ROOT_SG}/sg/impl_oil -template=${TOPPERS_OSEK_ROOT_SG}/sg/lego_nxt.sgt

Wineへのパスを変更

nxtOSEK/ecrobot/ecrobot++.mak
	# in order to proper set up environment variables and avoid warnings.
-	WINECONSOLE := /Applications/Wine.app/Contents/MacOS/startwine wineconsole
+	WINECONSOLE := /usr/local/bin/wineconsole
	# Native tools for Mac OS X doesn't need any launcher

nxtOSEKのリビルド

EABIのバージョンが合わないので、nxtOESKをリビルドする。

cd nxtOSEK/ecrobot/c++
make all
make release

これを、{c,c++,bios,nxtway_gs_balancer} の全てに対して行う。

参考:
http://tobese.hatenablog.jp/entry/2014/04/19/183633

サンプルをビルドしてみる

cd nxtOSEK/samples_c++/cpp/LCD
make clean
make all

最終的に、こんなかんじでrxeファイルが出力されてばOK。

...
Generating binary image file: lcd_rom.bin
Generating binary image file: lcd_ram.bin
Generating binary image file: lcd.rxe

サンプルを転送してみる

$ ./rxeflash.sh
Executing NeXTTool to upload lcd.rxe...
lcd.rxe=18784
NeXTTool is terminated.

で、実行する。

IMG_20140810_060049.jpg

動いてる!!

9
9
2

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
9
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?