
オープン × オープン = ∞(無限大)

T-Engineショーケースでは、 組込み機器の標準開発プラットフォームとしてのT-Engine/T-Kernelの最新の成果と、 T-Engine/T-Kernelに関連する各種のオープンプラットフォームを展示しています。
■オープンソース × T-Kernel

T-Kernelと同じようにソースを公開しているオープンソフトウェアは多数あります。 これらの中には、市販の製品と同等以上の機能を持つものが多数あります。 オープンなソフトウェアとオープンなT-Kernelを組み合わせて実現できる世界は無限大です。
.NET Micro Frameworkは、Microsoftが開発した組込み機器向けのアプリケーション開発・実行環境です。
アプリケーション記述はC#で行い、開発環境はVisual Studioを利用することができます。.NET Micro Frameworkで提供される共通言語ランタイム、クラスライブラリは、.NET Frameworkのサブセットで一部機能が利用できませんが、ブートローダ、デバイスドライバなどの機能を包含しています。T-Kernelで.NET Micro Frameworkを使用することにより、Windowsの持つリッチなユーザインタフェースをT-Kernelで利用することができます。また、.NETアプリケーションをT-Kernelの資産として活用することもできます。

.NET Micro Frameworkのアーキテクチャ

TRONSHOW2010の会場では、株式会社コア(総合研究所)のブース(S-18)において.NET Micro Frameworkをポーティングした事例が紹介されています。

T-Kernelでの.NET Micro Framework実行

NoTA(Network on Terminal Architecture)は、携帯機器および組込みシステムのためのオープンなシステムアーキテクチャです。従来の組込みシステムでは、各モジュール間の相互接続は、使用するOSやプロセッサの機能に依存していました。

これまでのアーキテクチャ

NoTAでは、OSやプロセッサに依存する相互接続部分を抽象化したプロトコルスタックにより、組込み機器内のモジュール間通信を実現します。

NoTAアーキテクチャ

NoTAアーキテクチャによって実装されたモジュールは、プロトコルスタックを介して相互接続されるのでOSやプロセッサへの依存を排除でき、再利用性が向上します。

NoTAを使った構成例

T-Kernelで動作するNoTA T-Kernel portは、noraworld.orgからオープンソースとして公開されています。
T-Engineコーナーでは、ユビキタス・コミュニケータ(UC : Ubiquitous Communicator)とucodeリーダをNoTAのプロトコルスタックで接続してデータ通信させる事例を紹介します。ucodeリーダが読み取ったucodeをUCが受信して、対応するコンテンツを画面に表示しています。


デモ展示品

Eclipseは世界的に広く普及しているオープンソースの統合開発環境(IDE:Integrated Development Environment)です。
無料でダウンロードして使用することができます。

Eclipseの画面

Eclipseは市販のIDEと同等の機能を持ち、ソースコードの編集からオブジェクトの構築、そしてデバッグまで同一の環境で行うことができます。また、プラグインにより柔軟に機能を追加・拡張できるといった特長があります。
この機能を利用して、T-Engineに対応したEclipse開発環境が各社からリリースされています。
T-Engineコーナーでは、Eclipseで作成したプログラムをT-Engineにダウンロードして実行する事例を紹介します。Eclipseを利用してプログラムの作成、コンパイル、T-Kernelへのダウンロード、実行までをEclipseから制御できます。同様の処理は仮想PCで動作するT-Kernelに対して行うこともできますので、ターゲットハードウェアがない状態でもT-Kernelのプログラムのプロトタイプを開発することができます。
デモ展示品

WebKitは、オープンソースのwebブラウザエンジンです。PCのwebブラウザをはじめ、携帯機器にも移植されています。
T-Engineコーナーでは、T-Kernelで動作するWebKitを使用したWebブラウザを動作させて、webサイトを表示する事例を紹介します。

デモ展示品

Jsmnは、オープンソースのJavaScript実行環境です。ソースコード・実行形式(バイナリ)がwebサイトで公開されています。Jsmnは実行に必要なリソースが少ないので、ユビキタス・コミュニケータ(UC : Ubiquitous Communicator)やT-Engine開発ボードに実装して組込み機器でのJavaScript実行環境を作りだすことができます。また、Jsmnからカスタムオブジェクトとしてデバイスドライバを呼び出すこともできます。
例えば、UCでは以下のデバイスを扱うことができます。
- RFID、バーコードリーダ、カメラ
- スピーカ、マイク
- 画面、フォント、ビューポート
- タッチパネル、ボタン
- ファイル、ネットワーク

Windows PCで動作するJsmnEmulatorを使用すれば、ターゲットボードなしでも開発・デバッグができるので、アプリケーションの先行開発が可能となります。


T-Engineコーナーでは、各種UCやT-Engineに移植したJsmnを紹介しています。
- JsmnEmulator for Windows Jsmnの開発環境
- Jsmn銀座ガイド (Ubiquitous Communicator)
- 取得したucodeに対応した情報をリアルタイムに取得して表示するアプリケーションを紹介します。
- Jsmn備品管理 (業務用UC)
- 物品と場所・人物の紐づけを行うアプリケーションを紹介します。
- Jsmnフォトフレーム (T-Engine)
- ボタン操作で写真を切替えて表示するアプリケーションを紹介します。

デモ展示品

WideStudio/MWT(Multiplatform Widget Toolkit)は、マルチプラットフォームでのビジュアル開発を実現したツールです。
コンポーネントと呼ばれるソフトウェア部品を使ってGUIアプリケーションを直感的に設計でき、開発工程を大幅に効率化、簡素化できます。
WideStudio/MWTは、商用利用可能なオープンソースプロジェクトとして公開されています。

WideStudio/MWTの画面
WideStudio/MWTによって生成されたGUIの処理はCPUのネイティブコードで動作します。このため、低スペックのCPUや少ないメモリでも十分な性能を得ることができ、組込み機器の低コスト化が可能です。また、WideStudio/MWTはC言語やC++だけではなく、Java、Perl、Ruby、Pythonによるアプリケーション開発も可能です。

マルチプラットフォーム/マルチランゲージ環境

T-Engineコーナーでは、PCのWideStudio/MWTで開発・実行を確認した「制御用ディスプレイパネル」アプリケーションをT-Engineで実行する事例を紹介します。
|
|
WideStudio/MWTで作成したGUIアプリケーションをT-Engineで実行
|
WideStudioで開発したGUIアプリケーションは、再コンパイルすることでT-Engineで実行させることができますので、PCでプロトタイプを開発したうえで実機に移植することができます。
デモ展示品


SH/M32R T-Engine Home Pageは、SH/M32R T-Engine上で動作するさまざまなソフトウェアや情報を公開しています。
GNUツール、デバイスドライバ、T-Monitor 、ミドルウェア、各種ドキュメントなどを無償で入手できます。T-Engineフォーラムが配布するT-Kernelと組み合わせてオープンソースでの環境構築が可能です。
T-Engineコーナーでは、CPUボードに市販のUSBカメラを接続し、LAN経由でPCのブラウザ上に動画像を表示するデモを展示しています。CPUボードで動作しているHTTPサーバ、TCP/IPプロトコルスタックは、SH/M32R T-Engine Home Pageからダウンロードしたものを使用しています。
デモ展示品

■オープンな仕様 × T-Kernel

OpenGL、POSIX、TCP/IPはオープンな仕様として公開されており、誰でもこの仕様を利用したソフトウェアを開発することができます。
T-Kernel用にもこれらのオープン仕様を実装したソフトウェア製品が各社から発売されています。

OpenGL(Open Graphics Library)は、2D/3Dグラフィックスのためのオープンなプログラムインタフェースの仕様です。
OpenGLはオープンな仕様として公開されており、多くの処理系に対応しています。また、UNIXワークステーション、PC UNIX、Windows、Mac OSなどに対応できるクロスプラットフォームになっています。
携帯機器や組込みシステム向けのインタフェースとしてはOpenGL ES(OpenGL for Embedded Systems)があり、T-EngineやμITRON用のOpenGL ESライブラリやソリューションが各社から提供されています。

●TCP/IP
|
 |
|
|

TCP/IP(Transmission Control Protocol/Internet Protocol)は、インターネットなどのネットワークで標準的に使用されているプロトコルスタックで、サーバから組込みシステムまで幅広く利用されています。
T-KernelやITRONで動作するTCP/IPが各社から提供されています(有償)。
T-Engineフォーラムでは、TKSE(T-Kernel Standard Extension)上で動作するTCP/IPを会員に公開しています。NetBSDをベースに移植したものであり、 BSDソケット互換のAPIを提供します。

●POSIX |
 |
|
|

POSIX(Portable Operating System Interface)は、オープンなインタフェース規格です。UNIX系OSでアプリケーションの移植性を高めることを目的として策定され、WindowsなどUNIX系以外のOSでも実装されています。TKSEの標準CライブラリもPOSIXインタフェースを提供します。
POSIX仕様に準拠したOSが各社から販売されており、UNIXやLinuxの資産をT-Engineで活用することができます。

●MP T-Kernel
|
 |
|
|
MP T-Kernelはマルチプロセッサやマルチコア・プロセッサを用いた組込みシステムに最適なリアルタイムOSです。
MP T-Kernelのソースコードは、T-Engineフォーラムのwebサイトから、T-Licenseに基づいて入手し、利用することができます。
- 対応マルチコア・プロセッサ (2009年12月現在公開中のもの)
- NaviEngineⓇ (ARM11 × 4core) NECエレクトロニクス株式会社
- SH7786 (SH-4A × 2core) 株式会社 ルネサス テクノロジ
- マルチコア搭載T-Engine

MP T-Kernel/NE1評価ボード
NaviEngine(ARM11 MPCore)搭載
(パーソナルメディア株式会社より発売中)
MP T-Kernelは、AMP(非対称型マルチプロセッサ Asymmetric Multiple Processor)、SMP(対称型マルチプロセッサ Symmetric Multiple Processor)、それぞれのマルチプロセッサ構成に対応します。
- AMP T-Kernel
- AMP T-Kernelは、シングルプロセッサ用OS T-Kernelとの互換性が高く、T-Kernel の上で作られたソフトウェア資産やノウハウを有効に活用できます。
- SMP T-Kernel
- SMP T-Kernel は、それぞれのプロセッサにプログラムを動的に割り当てるので、複数のプロセッサを効率よく利用できます。
MP T-Kernelは、AMP、SMPの混在モデルにも対応することができます。混在モデルでは、AMP、SMPそれぞれの利点を利用することができます。
AMP、SMP混在モデルに対応したMP T-Kernelは、現在、T-Engineフォーラムにて開発中です。2010年に一般公開を予定しています。
|
|
4コアのマルチコア・プロセッサにおいて、3コアをSMPに、残りの1コアをAMPとして割り当てた場合
|
4コアのマルチコア・プロセッサにおいて、2コアをSMPに、残りの2コアをそれぞれAMPとして割り当てた場合 |
MP T-Kernelは、低消費電力動作を実現するため、マルチコア・プロセッサのシステムの状況(負荷)に応じて、不要なプロセッサ・コアを休止させることができます。
低消費電力機能に対応したMP T-Kernelは、現在、T-Engineフォーラムにて開発中です。2010年に一般公開を予定しています。
- SMP T-Kernel
- システムの状況に応じて、任意のコアを休止状態にすることができます

SMP T-Kernelにおける高負荷時および低負荷時の動作
- AMP T-Kernel
- システムの状況に応じて、任意のカーネル(コア)を休止状態にすることができます

AMP T-Kernelにおける高負荷時および低負荷時の動作
