nxtOSEKの開発環境を構築

環境: ubuntu12.04

1. Build and Install GNU ARM

NXTに搭載されているcpuはARM系なので、ARM用のコンパイラを用意する必要がある

$sudo apt-get install tk-dev ncurses-dev libmpfr-dev texinfo

built_arm_toolchainのインストール

適当なディレクトリを作って、スクリプトbuild_arm_toolchain.shをダウンロード、実行(時間かかる)

$sudo sh ./build_am_toolchain.sh

2. Set up nxtOSEK

NXTを対象とした開発環境のnxtOSEKのセットアップ

http://lejos-osek.sourceforge.net/download.htmから、バージョン2.17のnxtOSEKをダウンロード、解凍
2013.3.17現在: 最新版のnxtOSEK 2.18では、以降のサンプルプログラムのコンパイル時に、kernel_cfg.cが見つからないとエラーを吐いてとまってしまいます。2.17だとなぜかうまくいきます。

不足分の追加

従来含まれていたsg.exeが大人の事情(?)で同梱できなくなってしまったので、手作業で追加
参考:http://lejos-osek.sourceforge.net/download.htm
sg.exeを、さっきほどダウンロードしてきたnxtOSEKディレクトリ以下のtoppers_osek/sgに配置すれば良い

設定の変更

nxtOSEKディレクトリ以下のecrobot/tool_gcc.makを編集し、gnuarmの場所を指定する

# specify GNU-ARM root directory
ifndef GNUARM_ROOT
GNUARM_ROOT = /[absolute path to parent directory of gnuarm]/gnuarm
endif

確認テスト

$ cd ./nxtOSEK/samples_c/helloworld
$ export LC_ALL=C
$ make all

うまくいけば、helloworld.rxeが生成される
環境変数LC_ALLを変更しないと、wineがエラー吐いて止まる可能性が高いです。

以上で、「NXTに転送するプログラムを生成する」まで実現できました。
次は「NXTのファームウェアのアップデート」と「NXTへプログラムの転送」をやってみる、予定。。。

参考1: http://lejos-osek.sourceforge.net/installation_linux.htm
参考2: http://melodie-blue.cocolog-nifty.com/blog/cat4324123/index.html