クロスコンパイル環境を作ろう
レゴマインドストームNXTのプログラミングは、付属のGUIベース開発環境「NXTソフトウエア」で行うことができますが、今回はオープンソースの「LEJOS OSEK」を使うことにします。LEJOS OSEKはレゴマインドストームNXT用に、API、I/Oドライバ、ARM7プロセッサにポーティング済のTOPPERS OSEKなどを含むファームウエアで、このLEJOS OSEKを使ってGCCツールチェインによるANSI C/C++ の開発環境を構築します。
では、開発環境の構築を始めましょう。対象OSはWindows XPのSP2以降です(TOPPERS OSEKのSGがWindows上でしか動作しないため)。
開発に必要なモジュールは「Cygwin」「GNU ARM」「ATMEL SAM-BA」「LEJOS OSEK」です。インストール順に説明していきます。
Cygwinをインストールする
LEJOS OSEKで使用するSedとMakeを準備するためにCygwinをインストールします。
- Cywginのサイトからバージョン1.5以降の「setup.exe」をダウンロードします。
- ダウンロードしたsetup.exeを実行します。
- 「Download Source」の選択画面が表示されるので、自分の環境に合った条件を選択します。
- 「Install Directory」の選択画面が表示されるので、適宜選択します(日本語を含まないフォルダを指定します)。
- 「Devel」パッケージのmake3.81-1をチェックしてインストールを開始します。
GNU ARMをインストールする
ARMプロセッサ用のGCCをインストールします。
- GNU ARM Siteの「File」を選択し、「GCC-4.1 toolchain」の「bu-2.16.1_gcc-4.0.2-c-c++_nl-1.14.0_gi-6.4.exe」をダウンロードします。
- 「bu-2.16.1_gcc-4.0.2-c-c++_nl-1.14.0_gi-6.4.exe」を実行します。
- インストールするコンポネントは「LittleEndian」の「Floating Point Unit」を外した構成にします。
- 「install Cygwin dll」のチェックを外し、インストールします。
ATMEL SAM-BAをインストールする
NXTへ実行バイナリを書き込むツールをインストールします。USBドライバをインストールするので管理者権限を持つユーザーでインストールを行ってください。
- ATMELのWebサイトから「AT91-ISP.exe」をダウンロードします。
- AT91-ISP.exeを実行します。
- デフォルトの設定でインストールします。
LEJOS OSEKの環境を設定する
- LEJOS OSEKのWebサイトから「LEJOS OSEK V1.04」を選択し、「lejos_osek_v104.zip」をダウンロードします。
- 「lejos_osek_v104.zip」を任意のフォルダに解凍します。
- 「ecrobot」「lejos_nxj」「samples」「toppers_osek」のフォルダができているのを確認します。
- samplesフォルダに移動し、MakeCommonファイルのGNUARM_ROOTの値をGNU ARMをインストールしたフォルダに変更します。
# specify GNU-ARM root directory /* GNUARMのインストール先を指定する */ GNUARM_ROOT = /cygdrive/C/Program\ Files/GNUARM # Do not modify below this part TOPPERS_OSEK_SG_SOURCE := ./kernel_cfg.c TOPPERS_OSEK_SG_HEADER := ./kernel_id.h
動作の確認
- EJOS OSEKのsamplesフォルダのalarmtestフォルダに移動します。
- コマンドラインから「make all」を実行します。
- 正常終了すれば開発環境の構築は成功です。