Mais conteúdo relacionado Semelhante a Mindstorms NXT用 toppersプラットフォームの概要(ETロボコン向けTOPPERS活用セミナー1) (20) Mindstorms NXT用 toppersプラットフォームの概要(ETロボコン向けTOPPERS活用セミナー1)1. 2012/06/02 TOPPERSプロジェクト認定 1
1. MINDSTORMS NXT用
TOPPERSプラットフォーム の概要
大山 博司
TOPPERS プロジェクト TECS WG 主査
®LEGO, the LEGO logo, MINDSTORMS and the
MINDSTROMS logo are trademarks of the LEGO Group.
2. 2012/06/02 TOPPERSプロジェクト認定 2
アジェンダ
• NXTソフトウェアプラットフォームの歴史
• MINDSTORMS NXT用TOPPERSプラットフォーム
• MINDSTORMS NXT用
TOPPERS/ASP+TECSプラットフォームの概要
– 基本構造
– メモリマップとアップロード方法
– ツールチェーン
– NXT用ASP+TECSプラットフォームのコンポーネ
ント
• モデルからTECSへの変換
4. 2012/06/02 TOPPERSプロジェクト認定 4
MINDSTORMS NXT用TOPPERSプラットフォーム
ベース 正式名称 略称
TOPPERS/
JSP
MINDSTORMS NXT用
TOPPERS/JSPプラット
フォーム
NXT用JSP
プラットフォーム
MINDSTORMS NXT
Platform
based on TOPPERS/JSP
NXT Platform on
JSP
TOPPERS/
ASP+TEC
S
MINDSTORMS NXT用
TOPPERS/ASP+TECSプラッ
トフォーム
NXT用ASP+TECS
プラットフォーム
MINDSTORMS NXT
Platform
based on
TOPPERS/ASP+TECS
NXT Platform on
ASP+TECS
これらを総称して「MINDSTORMS NXT用
TOPPERSプラットフォーム」と呼ぶ
8. 2012/06/02 TOPPERSプロジェクト認定 8
NXT BIOS使用時のメモリマップ
100000h
200000h
SRAM(64Kbyte)
Flash(256Kbyte)
NXT BIOS(32KBytes)
ASP+TECアプリケーション
で使用するRAM領域
参考: http://lejos-osek.sourceforge.net/nxtOSEK_hack.htm#MemoryLayout
108000h
ASP+TECアプリケーション
9. 2012/06/02 TOPPERSプロジェクト認定 9
NXT用ASP+TECSプラットフォームのツールチェーン
ソースコード
(.c, .hファイルなど)
TECS
ジェネレータ
(tecsgen)
GNU ARM
ツールチェーン
ソースコード
(.c, .hファイルなど)
ファイル
ツール
データの流れ
ソースコード
(.c .hファイルなど)
実行形式
メモリマップ
ファイル等
RTOS, ライブラリ
(.c .hファイルなど)
設定ファイル
(リンカスクリプト等)
アプリケーションの
コンポーネント記述
(*.cdl)
コンフィギュレーション
ファイル(*.cfg)
コンフィギュレータ
(Cfg.exe)
ビルドツール
(make)
Makefile
制御の流れ
開発者の操作
TECSプラットフォームの
コンポーネント記述
(*.cdl)
10. 2012/06/02 TOPPERSプロジェクト認定 10
ビルド方法
• nxtOSEK、NXT用TOPPERSプラットフォーム
ともに「1リンクモデル」を採用しています。
– 用意されたMakefileで簡単に実現できます
• ASP+TECS環境と他の環境との違いは、TECSで定
義されている文法に沿った「コンポーネント記述」
を行うことができる点です。
– コンポーネントの自作も、提供されているコン
ポーネントの利用も可能です
• ビルドでは、以下の3つを実行します
– make tecs
– make depend
– make
11. 2012/06/02 TOPPERSプロジェクト認定 11
インストールするツール
ビルド用ツール Cygwin 最新版をインストールすればOKです。
インストールするパッケージの選択は、ほとんど
デフォルトでOKです。ただし以下は必須です。
GNU Make 3.81 (nxtOSEKでも使用)
Perl 5.10.0
BINUTILS
GCCまたはGCC-CORE
GNUARM nxtOSEKやJSPでも使用する、GCC-4.0.2 ツール
チェイン (bu-2.16.1_gcc-4.0.2-c-c++_nl-
1.14.0_gi-6.4.exe)をインストールします
TOPPERS ASP+TECS
開発環境
以下のツールが必要です。配布パッケージに同梱
されています。
コンフィギュレータ … cfg.exe 1.7.0
TECSジェネレータ … tecsgen.exe 1.0.2.35
ロード用ツール LEGO MINDSTORMS
NXT Driver
nxtOSEKやJSPでも使用するツール群をそのまま
使用します。したがって、インストール方法も他
の環境と変わりはありません。
NeXTTool
Appflash.exe
13. 2012/06/02
基本コンポーネントモデル
TECSコンポーネントは最小限の機能を持つ
関数呼び出しを行うポート(口)のみを持つ
コンポーネントを組み合わせてプログラムを作成
する
TOPPERSプロジェクト認定
cell はコンポーネントのインスタンス
cell はattribute.と呼ばれる定数を持つ
cell は var (internal variable)と呼ばれる変数を持つ
cell はentry port (受け口) を通して機能を提供する
cell はcall port. (呼び口) を通して機能を利用する
関数の集合を signature と呼ぶ
cell は celltype.に属する
celltype は属するcellの特性を決定する
TECS コンポーネント図
TECS コンポーネントモデル
(基本モデル)
13
18. 2012/06/02
TECS の実装
TECS ジェネレータ
TECS CDL からインタフェースコードとcell を定
義するコード(C言語)を生成する
プラグインを適用する
RPC プラグイン, Trace プラグイン, etc
TOPPERS/ASP+TECS
RTOS のカーネルオブジェクトを TECS のセルタ
イプとして定義したもの
これらの実装は TECS WG により行われている
18
TOPPERSプロジェクト認定
20. 2012/06/02
メモリアロケータ
• 呼び元の cell がアロケートし 呼び先の cell が解放 (send)
• 呼び先の cell がアロケートし 呼び元の cell が解放
(receive)
tClient
Client
tServer
Server
tAllocator
Allocator
20
TOPPERSプロジェクト認定
21. 2012/06/02
RPC: Remote Procedure Call
tClient
Client
tServer
Server
tClient
Client
tServer
Server
tRPCChannel
RPCChannel
tRPCChannel
RPCChannel
tMarshaller
Marshaller
tClientchannel
ClientChannel
tServerChannel
ServerChannel
tUnmarshaller
Unmarshaller
tTask
Task
RPC channel は下図
のようなコンポーネント
RPC プラグイ
ンにより挿入
21
このチャンネルのコンポーネント図は、正確ではありません。
TDRセルが省略されているなど
TOPPERSプロジェクト認定
24. 2012/06/02
コンポーネント記述の3要素
TOPPERSプロジェクト認定 24
要素名 記述方法 内容
シグニチャ signature s*** セルタイプが提供する外部インターフェー
スを定義する。Javaでいうインターフェー
スに該当。
セルタイプ celltype t*** C++やJavaでいうクラス定義に該当。
シグニチャを利用して呼び口、受け口を定
義する他、属性(attribute)も定義する。
セル cell t*** セル名 概念的にはインスタンス。ただしTECSの
セルの記述においては、セル間の結合を記
述する。これはC++やJavaで「コンストラ
クタ」にて行う、インスタンス間の結合処
理に該当。この記述に基づいて「静的に」
コンポーネント間の結合を実現するCソー
スコードが生成される。
以上の3要素を、Component Description
Language(CDL)を用いて記述します。
30. 2012/06/02 TOPPERSプロジェクト認定 30
モデルから TECS への変換
• クラス図もしくはオブジェクト図などの構造モデルから、TECS
コンポーネントとして実装するコンポーネントを抽出する
• 抽出した各コンポーネントをCDLを用いてプログラミングする
– シグニチャを、クラス図のメソッド定義を元に記述する
– セルタイプを、クラス図のクラス定義や関連を元に、前述の
シグニチャ定義を利用して記述する
• 自作コンポーネントにて、NXT用ASP+TECSプラットフォームのコン
ポーネントを利用する際には、使用するコンポーネントのセルタイプ記
述を含む.cdlファイルをimportする
– セルを、オブジェクト図を元に記述する
• オブジェクト間の結合を元に組上げ記述を行う
• Tecsgenを用いてCソーステンプレートを自動生成後、エディタ
等で中身を記述し「セルタイプコード」を完成させる
詳しくは2~4章にて