TOPPERSプロジェクト認定 12012/06/02
5.ASP+TECS開発環境の構築
⽯石川 拓也
名古屋⼤大学  ⼤大学院情報科学研究科
最終更新⽇日:2012/05/30
TOPPERSプロジェクト認定 22012/06/02
NXT⽤用ASP+TECSプラットフォームのツール
チェーン
ソースコード
(.c, .hファイルなど)	
TECS
ジェネレータ
(tecsgen)	
GNU ARM
ツールチェーン	
ソースコード
(.c, .hファイルなど)	
ファイル	
ツール	
データの流れ	
ソースコード
(.c .hファイルなど)	
実行形式	
メモリマップ
ファイル等	
ライブラリ
(ソースコード)	
設定ファイル
(リンカスクリプト等)	
コンポーネント記述
(*.cdl)	
コンフィギュレーション
ファイル(*.cfg)	
コンフィギュレータ
(cfg.exe)	
ビルドツール
(make)
Makefile
制御の流れ	
開発者の操作
TOPPERSプロジェクト認定 32012/06/02
Cygwinのインストール
•  Cygwinをインストールします。
‒  インストールするパッケージの選択は、ほとんど
デフォルトでOKです。
‒  以下のツールが必須となります(nxt_user.txtよ
り)ので、
インストール時にチェックします。
•  Perl 5.10.0
•  GNU Make 3.81
•  BINUTILS
•  GCCまたはGCC-CORE
‒  コンフィギュレータ、TECSジェネレータをご⾃自
⾝身で構築する場合には他にもツールが必要となり
ますが、ここでは割愛します。
TOPPERSプロジェクト認定 42012/06/02
参考:Cygwinインストール時にチェックする
箇所
•  Perl:Perl
install
Install
Install
TOPPERSプロジェクト認定 52012/06/02
参考:Cygwinインストール時にチェックする
箇所
•  GNU Make:Devel
Install
TOPPERSプロジェクト認定 62012/06/02
参考:Cygwinインストール時にチェックする
箇所
•  BINUTILS:Devel
InstallInstall
TOPPERSプロジェクト認定 72012/06/02
参考:Cygwinインストール時にチェックする
箇所
•  GCC, GCC-CORE:Devel
Install
InstallInstall
TOPPERSプロジェクト認定 82012/06/02
GNUARMのインストール
•  GNUARMをインストールします。
‒  UNIX⾵風にC:cygwinusrlocalにインストール
すると、あとの設定が不要となり便利です。
TOPPERSプロジェクト認定 92012/06/02
参考:GNUARMのインストール時にチェックす
る項⽬目
•  Little Endianのみ残し、Floating Pointのチェックを
外します。
TOPPERSプロジェクト認定 102012/06/02
NeXTToolのインストール
•  John Hansen⽒氏のWeb(http://
bricxcc.sourceforge.net/nexttool.zip)から
NeXTTool をダウンロードし、スペースおよびマル
チバイト⽂文字の含まないディレクトリに解凍してく
ださい。
(例、C:cygwinusrlocalnexttool)
TOPPERSプロジェクト認定 112012/06/02
TOPPERSが提供するツールのインストール
•  コンフィギュレータ(cfg)、TECSジェネレータ
(tecsgen)を⼊入⼿手します。
‒  cfg 1.8.0
•  ファイルの依存関係を⽣生成するツール
‒  tecsgen 1.1.0.2
•  コンポーネントの⽣生成と結合に関するファイルを⽣生成するツー
ル
•  TOPPERSのWeb(http://www.toppers.jp/
etrobo-asp.html)からet-robocon-asp
+tecs-20120530.tar.gzをcygwinのホーム
ディレクトリにダウンロードします
TOPPERSプロジェクト認定 122012/06/02
TOPPERSが提供するツールのダウンロード
TOPPERSプロジェクト認定 132012/06/02
ASP+TECSの解凍
•  Cygwinを起動し、ホーム
ディレクトリに移動して、
ダウンロードした圧縮
ファイルをtarコマンドで
解凍します
解凍された
ASP+TECS
ディレクトリ	
ホーム
ディレクトリ	
$ tar zxvf et-robocon-asp+tecs-20120530.tar.gz
TOPPERSプロジェクト認定 142012/06/02
TECSジェネレータの設定
•  tecsgen(TECSジェネレータ)へのシンボリックリ
ンクを張る
‒  ~/tecs_package/asp+tecs/に移動し、../bin/
tecsgen.exeへのシンボリックリンク
tecsgen.exeを作成
$ cd ~/tecs_package/asp+tecs/
$ ln -s ../bin/tecsgen.exe ./
TOPPERSプロジェクト認定 152012/06/02
Makefile.targetの設定
•  環境に依存する定数の定義は、target/
mindstorms_nxt_gcc/Makefile.targetにあり、各
⾃自の環境に応じて変更が必要
‒  GNUARMをC:cygwinusrlocalにインストー
ルした⽅方は変更不要
1.  クロスツールチェーンのパス
•  使⽤用するクロスツールチェーン(GNU ARM)のパスを,
GCC_TARGETに定義する
•  デフォルト: GCC_TARGET = /usr/local/GNUARM/bin/
arm-elf
2.  ダウンロードツールのパス
•  NexTTool.exeのパスを,NEXTTOOLに定義する
•  デフォルト: NEXTTOOL = /usr/local/nexttool/
NexTTool.exe
使⽤用するファームウェアの選択
•  拡張NXTファームウェア or NXT BIOSの選択
‒  target_lib_inst.cdlで選択する
•  importするcdlファイルで制御
TOPPERSプロジェクト認定 162012/06/02
//	 拡張NXTファームウェアを使用する場合

//	 ram_onlyを残し、ram+romをコメントアウト(削除)

import("ram_only.cdl");

//	 import("ram+rom.cdl");



target_lib_inst.cdl
//	 NXT	 BIOSを使用する場合

//	 ram+romを残し、ram_onlyをコメントアウト(削除)

//	 import("ram_only.cdl");

import("ram+rom.cdl");



target_lib_inst.cdl
TOPPERSプロジェクト認定 172012/06/02
ビルド⼿手順
1.  プロジェクトディレクトリに移動
•  ここではサンプルプログラムに移動
2.  TECSジェネレータの実⾏行行
•  コンポーネントの⽣生成と結合に関するファイル、
およびコンポーネントに関する定義ファイルが
gen/以下に⽣生成される
3.  依存関係の⽣生成
4.  コンパイル&リンク
•  asp.rxeとrxeflash.shが⽣生成される
•  拡張NXTファームウェアの場合
$ cd ~/tecs_package/asp+tecs/nxt_sample/sample_etrobo/
$ make tecs
$ make depend
$ make
TOPPERSプロジェクト認定 182012/06/02
プログラムのアップデート⽅方法(1/2)
•  拡張NXTファームウェア搭載の場合
‒  NXTの電源をONにして、PCとNXTをUSBケーブ
ルで接続
‒  Cygwin上で次のコマンドを⼊入⼒力力
$ sh ./rxeflash.sh
•  プログラムアップロードが成功した場合、Cygwin上に下記コ
マンド出⼒力力の2⾏行行⽬目のように実⾏行行形式ファイル のサイズが⽰示さ
れます。
•  出⼒力力例:
‒  Executing NeXTTool to upload helloworld.rxe...
helloworld.rxe=15280
NeXTTool is terminated.
TOPPERSプロジェクト認定 192012/06/02
プログラムのアップデート⽅方法(2/2)
•  NXT BIOS搭載の場合
‒  NXTの電源をONにして、プログラムを起動
‒  NXTのSTOPボタンとENTERボタンを同時に押す
•  左向きの三⾓角ボタンとオレンジ⾊色の四⾓角ボタン
•  正常に動作すると、NXTの電源が切れます
‒  NXTの電源をONにして、PCとNXTをUSBケーブ
ルで接続
‒  Cygwin上で次のコマンドを⼊入⼒力力
$ sh ./appflash.sh
TOPPERSプロジェクト認定 202012/06/02
ソースコードについての注意
•  ASP+TECSのソース、サンプルプログラムの漢字
コードはShift_JIS、改⾏行行コードはMS-DOSと互換の
CRLFとなっています
•  Cygwinの環境で参照、修正を⾏行行う場合は、UNIX互
換漢字コード、改⾏行行コード対応のエディタを使⽤用し
てください
漢字コード、改行コードを自動変換する
エディタ:TeraPad
TOPPERSプロジェクト認定 212012/06/02
Bluetoothの設定(1/3)
•  Bluetoothをパソコンに登録
‒  MINDSTORMS NXTを起動し、
PCでBluetooth ⇒ Searchにて
表⽰示されるまで待ちます
‒  NXTが表⽰示されたら選択します
‒  PINCODE(ペアリングコード)
は指定されたコードを設定して
ください
‒  注意:⾛走⾏行行会に参加した場合、
多くの参加者がおり、他の参加
が同⼀一のPINCODEで設定してい
る場合、正しくコネクションが
できません
TOPPERSプロジェクト認定 222012/06/02
Bluetoothの設定(2/3)
•  Bluetoothリンクのシリアルポー
トの確認
‒  デバイスマネージャを開いて
Bluetoothに対応したシリア
ルポートを確認します
‒  Bluetoothを使って
MINDSTORMS NXTと通信す
るために、Tera Termをイン
ストールします
‒  Tera TermでBluetoothのリ
ンクシリアル(右の環境では
COM4)を通してNXTとの
stream通信 します
TOPPERSプロジェクト認定 232012/06/02
Bluetoothの設定(3/3)
•  PINCODEとデバイス名の指定
‒  ~/tecs_package/asp+tecs/tecs_lib/
mindstorms_nxt/tBluetooth_inst.cdlの
keyCodeとdeviceNameで指定
cell	 tBluetooth	 Bluetooth	 {	 //	 Bluetooth本体

	 	 cSemaphore	 =	 BluetoothSemapohre.eSemaphore;

	 	 //	 キーコードの設定

	 	 keyCode	 =	 "1234";

};

cell	 tConnectBluetooth	 ConnectBluetooth	 {

	 	 cBluetooth	 =	 Bluetooth.eBluetooth;

	 	 //	 デバイス名の設定

	 	 deviceName	 =	 {	 'E',	 'T',	 '1',	 '2',	 '3',	 '4',	 '0'	 };

};
Bluetooth通信機器と⾛走⾏行行体のペアリング
•  ETロボコン2012 競技規約(Bluetooth)1.5より
•  Bluetooth通信機器と⾛走⾏行行体のBluetooth通信をおこ
なうためには、ペアリングを おこなう必要がありま
すが、競技の円滑運営のために、ペアリングについ
ては⾞車車検前までに必ず完了しておいてください
•  また、NXTのデバイス名およびパスキーについては、
誤接続防⽌止や競技会場ガイダンス遵守の確認のため、
以下のとおりとします
‒  デバイス名は、ETロボコン実⾏行行委員会から与えら
れるチームIDに、ETをプリフィックスとして付加
したものを使⽤用する
•  例:チームIDが1の場合、デバイス名はET1とする
‒  パスキーは、NXTデフォルトパスキー(1234)とは
異なる任意のパスキーを使⽤用する
TOPPERSプロジェクト認定 242012/06/02
参考
•  nxtOSEK/JSPホームページ
‒  http://lejos-osek.sourceforge.net/
•  MINDSTORMS NXT⽤用TOPPERS/ASP+TECSプラット
フォームと教育コンテンツ:ETロボコン2012対応版
‒  http://www.toppers.jp/etrobo-asp.html
•  ETロボコン向けRTOS活⽤用コンテンツ(TOPPERS/JSP
ベース):ETロボコン2012対応版
‒  http://www.toppers.jp/etrobo-jsp.html
TOPPERSプロジェクト認定 252012/06/02

NXT開発環境(ETロボコン向けTOPPERS活用セミナー5)