nxtOSEKのプログラムを作るには、以下の手順を踏んで準備が必要です。
- Cygwinのインストール
- GNU ARMのインストール
- nxtOSEKのインストール・設定
- LEGO MINDSTORMS NXT Driverのインストール
- NeXTToolのインストール
- 拡張NXTファームウェアのインストール
- 拡張NXTファームウェアのNXTへのアップロード
Cygwinとは、UNIX系で普及している開発ツールをWindows環境に移植したものです。
これをインストールすると、Windows上で各種のLinuxソフトウェアを実行できるようになります。
Cygwinのサイトから、32bit版のCygwinインストーラをダウンロードします。(ARMクロスコンパイラが32bit版のため、OSが32bitか64bitかに関わらす32bit版を選択して下さい。)
インストーラを起動します。 |
|
"Install form Internet"を選択し、 |
|
Choose Installation Directory画面では、Rootフォルダを全角文字やスペースを含まないディレクトリに設定します。 |
|
Local Package Directoryは、ダウンロードされたファイルが保管されるところです |
|
何度か"次へ"をクリック(標準設定で良い)し、 |
|
"Select Packages"では、Develカテゴリを開き、 |
|
make, gcc-common, g++ を選択します。また Editorカテゴリから vim も選択しておきましょう。 |
|
しばらく時間がかかります。 |
これでCygwinがインストールできました。
GNU ARMはGCCコンパイラパッケージの一つで、NXTに搭載されているARM7コアプロセッサ(ATMEL AT91SAM7S256)にも対応しています。
FEI ARM Wizardから GCC-4.0.2 ツールチェイン (bu-2.16.1_gcc-4.0.2-c-c++_nl-1.14.0_gi-6.4.exe) をダウンロードします。
※ GCC-4.0.2以外のバージョンを使用した場合、コンパイル時のエラーの要因となりますので、必ずGCC-4.0.2を選択してください。
インストーラを起動します。 |
|
ライセンス条項に同意できれば"I accept…"を選択し、Nextをクリック |
|
全角文字やスペースを含まないディレクトリにインストール(例、C:\cygwin\GNUARM)します。 |
|
"Select Components"画面では、"Big Endiran"のチェックをはずし、"Little Endian"の中の、 |
|
Floating Point Unitのチェックをはずします。 |
|
"Select Additional Tasks"画面の、"Install Cygwin DLL"のチェックをはずします。 |
|
"Install"をクリックすると、インストールが始まります。 |
|
インストール終了時に、GNU ARMインストールディレクトリに対するWindows環境変数(パス)登録を確認されますが、パス登録をする必要はありません。 |
バージョン2.09以降のnxtOSEKをDownloads のページからダウンロードしてインストールしてください。なお、このページの説明(お知らせ)にあるように sg.exe (システムジェネレータ)が nxtOSEK 本体から切り離されており、別途インストールする必要があるので注意して下さい。
nxtOSEKフォルダを全角文字やスペースを含まないディレクトリ(通常は、C:\cygwin\nxtOSEK)に解凍してください。
nxtOSEKパッケージは解凍後、右図のようなディレクトリ構造で展開されます。 |
|
ecrobotディレクトリ下にtool_gcc.makファイルが格納されています。GNUARM_ROOT, NEXTOOL_ROOTを開発環境に合わせて設定する必要がありますが、このページで説明している標準のパスにファイルを展開していれば修正の必要はありません。 |
# specify GNU-ARM root directory ifndef GNUARM_ROOT GNUARM_ROOT = /cygdrive/C/cygwin/GNUARM endif # specify NeXTTool root directory ifndef NEXTTOOL_ROOT NEXTTOOL_ROOT = /cygdrive/C/cygwin/nexttool endif |
DLLのコピー
ARMコンパイラが cygintl-3.dll を要求するため、cygintl-8.dll を cygintl-3.dll にコピーします。 cygwin を起動して、次のコマンドをタイプして下さい。
cp /bin/cygintl-8.dll /bin/cyginitl-3.dll
NXTとPCの間でUSB通信するためのデバイスドライバです。
LEGO software update website より NXT Fantom Driver をダウンロードしてください。 |
|
setup.exeを起動してインストールしてください。 |
NeXTToolはNXTとの通信用PCコンソールプログラムです。
アプリケーションプログラム(*.rxeファイル)およびファームウェア(*.rfwファイル)をNXT へアップロードすることができます。
John Hansen氏のWebサイトの"Utilities"から、NeXTToolをダウンロードします。 |
全角文字やスペースを含まないディレクトリ(通常は cygwinの root ディレクトリ直下、C:\cygwin\nexttool)に解凍します。
※NeXTToolは標準NXTファームウェーアを対象に開発されたもので、上記機能以外にも様々な機能を提供していますが、nxtOSEKではNXTのBluetooth/USB通信プロトコルを独自に実装しているため対応していません。
拡張NXTファームウェアは標準NXTファームウェアをベースに機能拡張されたもので、NXTに搭載されているARM7コアCPUのネイティブコードも実行することができます 。
John Hansen氏のWebサイトから 拡張NXTファームウェア をダウンロードし解凍します。 |
|
拡張NXTファームウェア(lms_arm_nbcnxc_10x.rfw)をNeXTTool格納ディレクトリにコピーしてください。 |
次のコマンドをCygwin上で入力し、拡張NXTファームウェアをNXTへアップロードします。多少時間がかかります。
-firmware=../nxtOSEK/lms_arm_nbcnxc_107.rfw
アップロードが完了すると、NXTの液晶画面がTVの砂嵐画面のようになったり、NXTのボタン操作が効かなくなる場合があります。 |
これで、プログラムを開発する準備が整いました。次の2.プログラムの転送・実行に従って動作確認を行ってみて下さい。なお多くのサンプルプログラムが cygwin 内の /nxtOSEK/sample_c 以下に用意されています。