TOPPERS LOGO
Loading

 Topics | About Project | ASP3 Kernel | Documents | Download | Community | Report | Contacts | FAQ
  • 会員向けページ
    • メーリングリスト
    • 早期リリース
    • 技術ドキュメント
    • 開発支援
    • 会員情報登録・変更
    • 会員向けイベント情報
  • プロジェクトについて
    • TOPPERSプロジェクトとは
    • TOPPERSのロゴについて
    • TOPPERS公式マスコット「とぱめ」
    • TOPPERSライセンス
    • プロジェクト規則集
    • 貸借対照表
    • プロジェクトの組織
    • 関連団体、プロジェクトメンバ
    • 受賞
    • 入会のススメと申込み方法
    • 開発成果物の利用報告
    • FAQ
    • 問い合わせ・事務局案内図
  • 取り組み
    • ETロボコンへの取組み
    • プレス発表
    • ニュースレター
    • コンテスト
    • 一般向けイベント情報
    • TOPPERSカンファレンス
    • TOPPERS開発者会議
    • 過去の取り組み
      • 公的資金によるプロジェクト
      • ソフトウェア開発委託事業
      • 公募型事業
  • 開発成果物
    • リアルタイムカーネル
      • TOPPERS/ASP3カーネル
      • TOPPERS/HRP3カーネル
      • TOPPERS/FMP3カーネル
      • TOPPERS/HRMP3カーネル
      • TOPPERS/ASPカーネル
      • TOPPERS/JSPカーネル
      • TOPPERS/FMPカーネル
      • TOPPERS/HRP2カーネル
      • TOPPERS/SSPカーネル
      • TOPPERS/PARK
      • TOPPERS/FDMPカーネル
      • TOPPERS/FI4カーネル
      • TOPPERS/HRPカーネル
      • TOPPERS/ATK1
    • AUTOSAR関連
      • TOPPERS/ATK2
      • TOPPERS/A-RTEGEN
      • TOPPERS/A-COMSTACK
      • TOPPERS/A-WDGSTACK
      • TOPPERS/A-OSBENCH
    • TOPPERS/EV3RT(EV3 Platform)
    • TECS(コンポーネントシステム)
    • TINET(TCP/IPスタック)
    • TOPPERS/ECNL
    • CAN/LIN通信ミドルウェア
    • FatFs for TOPPERS
    • SafeG
    • SafeG64
    • SafeG-M
    • SafeG-Auto
    • MDCOM
    • TOPPERS BASE PLATFORM
    • Athrill
    • TOPPERS Test Suite Package(TOPPERS新世代カーネル)
    • TOPPERS新世代カーネル用コンフィギュレータ
    • その他
      • TOPPERS Builder Bootable CD-ROM イメージ
      • TLV(トレースログ可視化ツール)
      • BridgePoint for JSP1.4
      • TOPPERS C++ APIテンプレートライブラリ
      • TOPPERSカーネルテストスイート(μITRON4.0仕様)
      • Remote Link Loader(RLL)
      • ダイナミックローディングマネージャ(DLM)
      • TOPPERSカーネル向けシミュレーション環境
  • 教育コンテンツ
    • 初級実装セミナー教材
    • 中級実装セミナー教材
    • 基礎1実装セミナー教材
    • 基礎2実装セミナー教材
    • 基礎3実装セミナー教材
    • 基礎ハードウェア基本設計セミナー教材
    • ARM7版基礎1、2、3実装セミナー教材
    • TOPPERS BASE PLATFORM対応版基礎1、2、3セミナー教材
    • 二足歩行ロボット教材
    • TOPPERS版鹿威し
  • ドキュメント
    • TOPPERS第3世代カーネル統合仕様書
    • TOPPERS新世代カーネル統合仕様書
    • TOPPERS新世代カーネルへのマイグレーションガイド
    • TOPPERS新世代カーネル用コンフィギュレータ関連仕様書
    • 機能分散マルチプロセッサ向けリアルタイムカーネル仕様書
  • ダウンロード
    • ダウンロードページ一覧
  • 関連製品
    • トータルソリューション
    • 開発キット・開発環境・ツール
    • ミドルウェア・ソフトウェア部品
    • サポート・サービス
    • 教育・教材
    • ハードウェア
  • 利用事例
    • 適用事例
    • ユーザ
  • コミュニティ情報
    • ユーザーズフォーラム
    • ソフトウェア
    • 統合開発環境
    • 外部リンク
    • Contributed Software
    • Contributed Software(GitHub)
    • AUTOSAR情報サイト
  • その他の情報
    • 雑誌記事・書籍

TECSとは

TECS(TOPPERS Embedded Component System)は、組込みシステムに適したコンポーネントシステムです。

ここで組込みコンポーネントシステムとは、

  • 組込みソフトウェアをコンポーネントやサブシステムに分割して開発する方法を支援する仕組み
  • 組込みソフトウェアを部品化して再利用性を高める、あるいは部品流通を促進する仕組み

を提供するものです。

TECSは、TOPPERS/ASP3カーネルやTOPPERS/ATK2のように静的にコンフィグレーションするシステムにマッチするように設計されています。すなわち、コンポーネント(インスタンス化されたコンポーネントをcellと呼びます)の静的な生成と結合を基本としています。静的な生成と結合を基本としたことで、コンポーネント化によるオーバーヘッドが小さく、タスクやセマフォなどのカーネルオブジェクトのように、粒度の小さなものもコンポーネントとして扱うことができます。静的な生成と結合により、実行を開始する前にコンポーネントのメモリレイアウトが決定されたり、初期化に要する時間を短縮できるだけでなく、関数テーブルの要・不要の自動判定やコンポーネント記憶領域の削除などの最適化、インライン実装、ROM化支援などが可能となり、リアルタイムシステムに適したソフトウェアコンポーネントの開発が行えます。また、カーネルオブジェクトの静的APIのコードを自動生成しますから、これらを覚える必要がなくなります。

さらに、C言語のプロトタイプ宣言の曖昧さを排したインタフェース(signature)記述は、コンポーネント間のインタフェースの客観性を高めます。これにより、RPC(Remote Procedure Call)、関数呼び出しのトレースや、mruby ⇒ TECSブリッジなど、コンポーネント間に挿入して使用するコンポーネントの自動生成が可能になります。

軽量Rubyフォーラム ライブラリWGとの協力について

TOPPERSプロジェクト TECS WGは、軽量Rubyフォーラム(外部リンク) ライブラリWGと以下を目的として、相互に協力を行います(2013年3月23日?) 。

  • 相互に広めあう
  • 両技術を組み合わせて活用する

TECS WG の開発物

TECS仕様として、以下を規定しています(過去公開していた暫定版仕様書はTECS簡易パッケージに含まれています)。

  • TECSコンポーネントモデル
  • TECSコンポーネント図
  • TECSコンポーネント記述言語(TECS CDL)
  • TECSコンポーネント実装モデル

また、以下のものを開発しています(開発中非公開のものを含む)。

開発物 概要
TECS ジェネレータ個別パッケージ

TECS ジェネレータの個別パッケージです。
TECSジェネレータは、TECS CDLを解釈し、インタフェース、セルの初期化コードを生成するツールです。
TOPPERS/ASP3 の簡易パッケージに同梱されている TECS ジェネレータに比べ、ATK1, HRP2 に関するプラグイン、OpaqueRPC プラグインも同梱しています。
さらに、TOPPERS/ASP3 に対応する TECSCDE(コンポーネント図をGUIで編集し、コンポーネント図からCDLファイルを生成するためのツール-現在は既存の CDL ファイルからのコンポーネント図表示のみサポート) も同梱しています。
以下のコマンドが含まれています。

  • tecsgen: TECSジェネレータ
  • tecscde: TECSCDE
  • tecsmerge: テンプレートコードのマージャー

以下のプラグインが含まれています。

  • RTOSの静的APIコード生成プラグイン群: HRP3関係、HRP2関係、HRP関係、ATK1関係、ASP3関係(NotifierPluginはASP3用)。ASPは専用プラグインなしで対応可能。
  • MrubyBridge関係プラグイン群: MrubyからTECSコンポーネントを操作するためのコンポーネントを自動生成します。
  • RPCPlugin: Remote Procedure Callに必要なマーシャラコンポーネントなどを生成します。RPCの通信形態に応じて、TransparentとOpaque、非SharedとSharedのバリエーションがあります。TECS簡易パッケージの2012年6月12日リリース版に含まれています(サンプル、ドキュメントを除けば、その後のリリースにも含まれています)
  • TECSInfoPlugin:
  • TracePlugin: コンポーネント間の関数呼び出しを記録するコンポーネントを自動生成します。TECS簡易パッケージに含まれています。
  • TECSInfo: 実行時情報機能
TECS リファレンスマニュアル TECS 仕様書が暫定版に留まっていること、TECS CDL の最新機能に追いついていないことなどから、改めて TECS リファレンスマニュアルを作成しました。 こちら から参照できます。
各種カーネルのTECS対応 カーネルオブジェクトをTECS コンポーネント化しています。
  • TOPPERS/ASP3+TECS:TECS 版サンプルプログラム(sample1)を含みます。TOPPERS/ASP3 の 簡易パッケージに含まれています
  • TOPPERS/HRP2+TECS:コンポーネントのレイアウトによりメモリ保護領域を指定できます。mruby on EV3RT + TECSプラットフォームに採用されています。
  • ETロボコンプラットフォーム EV3RTをベースとした mruby on EV3RT + TECSプラットフォーム です。
    mruby on GR-PEACH+TECS mruby on GR-PEACH+TECS プラットフォーム です。
    GR-PEACH 上で mruby(軽量Ruby)を動作させることができます。
    ビルド方法やリファレンスマニュアルは、README および tecs-docsを 参照してください。
  • TINET:TCP/IPプロトコルスタック ※開発中
  • FatFs for TOPPERS:ファイルシステム ※開発未着手
  • ダウンロード(TECS個別パッケージ)

    TECS ジェネレータの個別パッケージです。
    TOPPERS/ASP3 の簡易パッケージに同梱されている TECS ジェネレータに比べ、ATK1, HRP2 に関するプラグイン、OpaqueRPC プラグインも同梱しています。
    さらに、TOPPERS/ASP3 に対応する TECSCDE も同梱しています。

    TECS 個別パッケージ
    パッケージ TECSジェネレータのバージョン リリース日
    tecsgen-1.8.0.tgz 2.2MB 2022-01-22
    tecsgen-1.7.0との違い
    パッケージ TECSジェネレータのバージョン リリース日
    tecsgen-1.7.0.tgz 2.2MB 2019-06-14
    tecsgen-1.6.1との違い
    tecsgen-1.6.1.tgz 1.5MB 2017-12-19
    tecsgen-1.6.0(TOPPERS HRP3 3.0.0同梱) との違い
    tecsgen-1.5.0.tgz 1.5.0 2017-6-16
    tecsgen-1.4.0.tgz 1.4.0 2016-11-16
    tecsgen-1.3.1.7.tgz 1.3.1.7 2016-05-11

    mruby on EV3RT + TECS

    EV3RTをベースとしたmruby on EV3RT+TECSプラットフォームです。mruby(軽量Ruby)でEV3を操作できます (一通りのセンサ、モータを利用可能)。スタンドアローンで開発する方法とBluetoothを用いて開発する方法の2つが利用できます。マルチVM機能に対応し、複数のmrubyプログラムを動作させることが出来ます。動作環境、使用方法はreadme.txtを参照してください。詳しくは、下記のドキュメントを参照してください。

    • doc/EV3RT_mruby_API_Reference.pdf
    • doc/mruby_on_ev3rt+tecs_build.pdf
    • doc/mruby_sample.pdf
    mruby on ev3rt+tecs
    パッケージ サイズ リリース日
    mruby-on-ev3rt+tecs_package-beta2.2.0.tar.gz 31.3MB 2019-06-10
    mruby-on-ev3rt+tecs_package-beta2.1.0.tar.gz との違い
    mruby-on-ev3rt+tecs_package-beta2.1.0.tar.gz 28.6MB 2018-05-23
    mruby-on-ev3rt+tecs_package-beta2.0.1.tar.gz との違い
    mruby-on-ev3rt+tecs_package-beta2.0.1.tar.gz 27.1MB 2017-05-17
    mruby-on-ev3rt+tecs_package-beta2.0.0.tar.gz 28.8MB 2017-05-02
    mruby-on-ev3rt+tecs_package-beta1.0.1.tar.gz 22.8MB 2016-05-27
    mruby-on-ev3rt+tecs_package-beta1.0.0.tar.gz 22.8MB 2016-05-11
    mruby-on-ev3rt+tecs_package-alpha1.0.2.tar.gz 17.9MB 2015-07-12
    mruby-on-ev3rt+tecs_package-alpha1.0.1.tar.gz 23.8MB 2015-06-17
    mruby-on-ev3rt+tecs_package-alpha1.0.0.tar.gz 23.9MB 2015-06-09

    mruby on GR-PEACH+TECS

    mruby on GR-PEACH+TECS プラットフォームです。 GR-PEACH 上で mruby(軽量Ruby)を動作させることができます。 ビルド方法やリファレンスマニュアルは、README および tecs-docs を参照してください。

    mruby on ev3rt+tecs
    パッケージ サイズ リリース日
    mruby_on_GR-PEACH-TECS_package-alpha1.0.0.tar.gz 1.5MB 2017-12-19

    雑誌・記事

    • Interface 2011年9月号、「TOPPERSの組み込みコンポーネントをCortex-M3基板に実装 STM32 Primer2を用いてTECSを理解する」金承燁
    • Interface 2011年7月号、「コンポーネントで組み上げる MINDSTORMS NXT用プラットホームTOPPERS/ASP+TECSを使いこなす」安積卓也、石川拓也
    • 組込みプレス Vol 15. (2009年)、「OSS の組込みコンポーネントシステム TECS を使ってみよう」大山博司、安積卓也

    論文紹介

    こちらのページを御覧ください。

    外部リンク

    • TECS開発ブログ
    • CodeZine
      • 第1回:TOPPERSプロジェクトとTECS
      • 第2回:TECSによるアプリケーション開発
      • 第3回:コンポーネント記述言語TECS CDL
      • 第4回:コンポーネントの実装コード

    TECS Archive

    TECS Archive

    過去公開していたTECS WG の開発物です。

    Newsletterのバックナンバーはこちら

    Tweets by ToppersJP


    Copyright (C) 2000 - 2023 by TOPPERS Project, Inc. All Rights Reserved.