対応OS
 
ダウンロードボックス
0 アイテム
 

FAQ

T-Engine、T-Kernel全般

T-Kernel 2.0

T2EXの概要と位置付け

T2EXの詳細仕様

T2の開発環境、エミュレータ


T-Engine、T-Kernel全般

T-KernelとITRONとの差異は?

  • T-Kernelは「強い標準化」により互換性を強化し、ミドルウェアやデバイスドライバの再利用性を高め、ソフトウェアの開発効率を大幅に高めています。
  • T-KernelはT-Engineフォーラムがソースコードを提供していて、シングルソースです。
  • ITRONは「弱い標準化」、仕様を標準化していますが、実装(ソースの開発)は自由です。
  • 高いリアルタイム性能や省資源、仕様がオープンであることはITRONもT-Kernelも共通です。カーネル(T-Kernelの場合はT-Kernel/OS)のAPIも共通性が高いです。

T-Kernelの基本構成は?

  • T-Kernelは、カーネルとしてリアルタイムOSの基本機能を提供するT-Kernel/OS、デバイスドライバやメモリ管理などシステム全体の管理機能を提供するT-Kernel/SM、デバッガなどの開発ツールで利用するT-Kernel/DSから構成されます。
  • また、T-Kernelを搭載したシステム内では、T-Kernelおよびアプリケーションのほか、デバイスドライバやミドルウェア、起動時にハードウェアの初期化やT-Kernelのブートなどを行うT-Monitorなどのソフトウェアが動作します。

T0、T1、T2とは?

  • TRONの約30年の進化の歴史の中において、1984年のITRONに始まる最初の世代を「T0」、T-KernelからT-Kernel 2.0の前までを「T1」、そしてT-Kernel 2.0以降を「T2」としてロードマップに位置づけています。

T2のワンストップサービスとは?

  • T-Kernel 2.0では、ソフトウェアの開発に必要となるT-Kernel、デバイスドライバ、開発環境などを1つのパッケージにまとめ、このパッケージとPCだけでT-Kernelのプログラミングを始められるようになっています。これを「ワンストップサービス」と呼びます。
  • 内容はT-Kernel 2.0、T-Monitor、デバイスドライバのソースコード、開発環境、QEMUによるエミュレータ、日英のドキュメントです。
  • デバイスドライバは、T-Engineリファレンスボード用の時計(RTC)、シリアル、タッチパネル、スクリーン(LCD)、システムディスク(SD,SDHCカード)に対応しています。
  • 開発環境には、gcc、gdb、binutilsなどGNUベースの開発ツールとEclipse、Cygwinが含まれます。
  • QEMUエミュレータでは、Windows PC上でT-EngineリファレンスボードのハードウェアとARM11コアのCPUをエミュレーションします。QEMUにより、実機のT-Engineリファレンスボードが無くても開発が可能です。

T-Kernel 2.0

T-Kernel 2.0とT-Kernel 1.0の差異は?

  • 組込み機器の高性能化、大容量化などの要求に応じて、T-Kernel 1.0の上位互換のリアルタイムOSとして開発されたのがT-Kernel 2.0です。
  • 64ビットデータに対応したデバイス管理機能などを追加しています。
  • マイクロ秒単位の時間指定が可能な時間管理機能、物理タイマ機能などの追加により、時間関係の機能を強化しています。
  • デバイスドライバやT-Monitor、開発環境などの周辺のソフトウェアも合わせてワンストップサービスで提供します。

T-Kernel 2.0の動くボードやCPUは?

  • T-Engineフォーラムから公開されているT-Kernel 2.0のソースコードは、いろいろなCPUへの移植が容易な構成になっています。
  • 公開されているソースコードの動作対象ボードは、ARM11コアのCPUを搭載したT-Engineリファレンスボード(型番U00B0021-02)です。
  • 一般的には、機器メーカーなどが、このソースコードを自社の組込み機器のCPUやハードウェアに移植して利用します。

リファレンスコードには物理タイマも実装されていますか?

  • 物理タイマのコードも含まれています。
  • 対象はT-Engineリファレンスボード(em1d)です。

対応している開発環境は?

  • リファレンスコードはGNUのツールチェーンに対応しています。
  • TK2のパッケージには、開発環境としてgccとEclipseが含まれています。
  • その他の開発環境などについては要相談となります。

32ビットを使う場合と64ビットを使う場合で速度の違いは?

  • 内部では64ビットで実装されており、ほとんど違いはありません。
  • ただし、ハードウェアによっては多少差がでる可能性はあります。

T2EXの概要と位置付け

T2EXの目的や位置づけは?

  • リアルタイムOSであるT-Kernel 2.0の軽量性を踏襲しつつ、ファイル管理やネットワーク通信といった昨今の組込み機器の機能要求を満たすミドルウェアです。
  • プロセスや多重論理空間の機能を含まないため、オーバーヘッドが少ないです。

T2EXの想定用途は?

  • ファイル管理機能やネットワーク通信機能を使用する組込み機器のうち、AndroidやLinux等よりも「軽量」「コンパクト」「省資源」の要求が強いものや、高いリアルタイム性が要求されるものです。
  • 一例として、デジタル家電やヘルスケア機器など

Linuxと比較した場合のアドバンテージは?

  • フットプリントが小さく、システム全体として軽量、省資源です。たとえば、T2EXのファイル管理機能のプログラムサイズは100KB弱です。一方、Linuxを動かすには少なくとも数MB以上のメモリが必要であり、必要資源には1ケタの差があります。
  • カーネルであるT-Kernelのリアルタイム性が高いです。
  • T2EXはプロセスや多重論理空間の機能を含まないため、MMUのないロースペックなCPUでも動作します。

T-Kernel Standard Extension(TKSE)との違いは?

  • TKSEはプロセス、多重論理空間、MMUなどを前提とした設計であり、比較的独立性の高いプログラムモジュールやプロセスを組み合わせて大規模なシステムを構成する用途に向いています。一方、 T2EXはプロセスを使用しない規模のシステムに向いており、両者の対象規模や位置付けは異なっています。

APIの仕様をPOSIXライクにしたのはなぜですか?

  • 他のシステムやC言語プログラムの移植性、互換性を考慮したためです。
  • ただし、T2EXのAPIコールの名称には、ファイル管理機能では "fs_"、ネットワーク通信機能では "so_" のプリフィックスが付きます。POSIXライクのAPIですが、全く同じではありません。

他のCPUやハードウェアへの移植性は?

  • T-Engineフォーラムから公開するT2EXはARM11コア用ですが、メモリ保護機能など一部を除き、CPUにはほとんど依存しません。ソースプログラムを公開しているので、T2EX自体の移植は容易に可能です。
  • そのCPUやハードウェア用のT-Kernelやデバイスドライバは別途必要です。
  • 各社のビジネスなどで他のCPUに対応するのは自由です。

T2EXの利用時のライセンスは?

  • 組込み機器の開発に適したT-License 2.0を適用し、ソースコードのトレーサビリティサービスを実施します。T-Kernel 2.0やμT-Kernel(T-License 2.0適用版)と同様です。
  • 標準C互換ライブラリなど、一部のモジュールはBSDライセンスを含みます。
  • GPLではありません。改変した部分や関連プログラムのソース公開は不要です。

T2EXの各機能モジュールを個別に抜き出して使えますか?

  • 基本的には可能です。
  • 依存関係による自明な制約はあります。たとえば、標準入出力のライブラリを使うにはファイル管理も必要です。

T2EXの詳細仕様

T2EXのファイル管理機能の特徴は?

  • POSIXとの互換性が高いAPIを持ちます。ただし、関数名の最初に "fs_" のプリフィックスが付き、ファイルのオープンはfs_open()、読み込みは fs_read()などとなります。
  • また、POSIX互換の標準入出力機能(fopen()、fprintf()など)が利用できます。
  • ファイルシステムの形式は標準でFATをサポートします。
  • T2EX独自の特徴的な機能として、現在実行中のファイルの操作を強制的に中止するfs_break()の機能があります。
  • ファイルシステムの処理をするプログラム(ファイルシステム実装部)をユーザ自身が定義できます。たとえば、組込み向けの独自デバイスやそのデバイス用の独自ファイルシステムを利用する際に、この機能が役立ちます。
  • アプリケーションからは、複数のファイルシステム実装部に対して共通のAPIを使って操作できます。

ファイル管理機能が対応するファイルフォーマットは?

  • T2EXソースコードパッケージに添付される基本FATファイルシステム実装部では、FAT12, FAT16, FAT32 のファイルシステム形式に対応し、VFATのロングファイル名も使用可能です。
  • ユーザがファイルシステム実装部のプログラムを登録することにより、他のファイルフォーマットにも対応できます。

APIコールのパラメータとして日本語のファイル名を指定する場合の文字コードは?

  • UTF-8を使います。最近のLinuxなどでもUTF-8が使われることが多く、そのような環境との間でプログラムの移植性を高めるためです。
  • ファイル名(パス名)を指定するAPIコールには、ファイル管理機能の fs_open(), fs_creat(), fs_rename(), fs_unlink(), fs_truncate() や、標準C互換ライブラリの fopen()などがあります。

T2EXのネットワーク通信機能の特徴は?

  • TCP/IPをサポートします。
  • POSIXとの互換性が高い、いわゆるソケットI/FのAPIを持ちます。ただし、関数名の最初に "so_" のプリフィックスが付き、ソケットの接続はso_connect()、メッセージの受信はso_recv()などとなります。通信準備の完了を調べるso_select()も利用可能です。
  • T2EX独自の特徴的な機能として、現在実行中の通信を強制的に中止するso_break()の機能があります。

ネットワーク通信機能の提供範囲は?

  • TCP/IPのプロトコルスタックとソケットAPIのシステムコールを提供します。また、DHCPとDNSの機能を提供します。
  • ftpなどのアプリケーションは含みませんが、今後、サンプルなどの形で提供する可能性はあります。
  • IPv6、IPsec、マルチキャスト、UNIXドメインソケットの機能は含みません。

LANドライバは提供されますか?

  • T2EXソースコードパッケージでは、T-EngineリファレンスボードのLANC(SMSC LAN9221)で動作するドライバが提供されます。このLANCはポピュラーなもので互換品が多いです。

T2EXの標準入出力は何を使うのか?

  • 実機(T-Engineリファレンスボード)の場合は、シリアルポートに接続されたコンソール(通信端末)を使います。T-Kernel 2.0ソースコードパッケージを使ってT-MonitorやT-Kernelのコンソールを動かす場合と同様です。
  • エミュレータの場合は開発用PCのtelnetなどを使います。
    こちらを参照

T2EXで、シェルあるいはコマンドプロンプトのようなツールは提供されますか?

  • ファイル操作などのコマンドを対話的に実行する、サンプルプログラム兼用の簡単なシェル風のアプリを添付しています。

T2の開発環境、エミュレータ

T-Kernel 2.0やT2EXの開発環境で利用するコンパイラはgccのみですか? gcc以外への対応は?

  • T-Engineフォーラムから公開しているソースコードやコンパイラとしては、オープンソースで多様なCPUに対応しており、十分な実績もあることから、gccを利用しています。
  • メーカーやベンダーがgcc以外のコンパイラをサポートすることは問題ありませんし、実際にそのような例もあります。

QEMUの利用時に、T-Monitorのコンソールが使えますか?

  • エミュレータのQEMUには、実機のシリアルポートをエミュレーションして、開発用PCの中の仮想ネットワークからアクセスできる形に変換する機能があります。したがって、開発用PCのtelnetなどを使って、T-Monitorのデバッグ用コンソールを操作できます。
  • エミュレータ上でT-KernelとT2EXを動かした場合には、同じ方法でT2EXの標準入出力を操作できます。

QEMUでSDカードのエミュレーションができますか?

  • エミュレーション可能です。T2EXを動かした場合には、SDカード上のFATファイルシステムも含めてエミュレーションできます。
  • ただし、PCの物理デバイスとして付属しているSDカードではなく、PCのファイル上に仮想的に実現されたディスクイメージを操作します。
表示順位:
T-Kernel 2.0 Extension(T2EX 2.00.00)
T-Kernel 2.0 Extension(T2EX 2.00.00)
T2EX-2.00.00

T-Kernel 2.01.03 Software Package
T-Kernel 2.01.03 Software Package
tk2.01.03-package