μT-Kernel 入門

2013年 10月 10日（木）【T-Engine学術・教育WG】

スパンション・イノベイツ株式会社 長濱 美保© 2013 T-Engine Forum, All Rights Reserved, © 2013 FUJITSU ELECTRONICS INC. © 2013 Spansion Inc.

第1章 μT-Kernel概要

目次

・ OS利用のメリット
・ μT-Kernelとは？
- T-Kernel仕様の誕生- T-Kernel 仕様からμT-Kernel 仕様へ
・ μT-Kernelの特長- T-Kernel とμT-Kernel の差異- μITRONとμT-Kernelの差異- μITRON、T-Kernel、μT-Kernelの相違点
・ 現状の取り込み- μT-Kernel移植ガイド- μT-Licenseについて- T-License2.0について

489111314182022232425

第２章 今後の展開
・ μT-Kernel2.0
・ セミナー案内
・ 富士通μT-REALOS/M3
・ USBSTICK 評価ボード© 2013 T-Engine Forum, All Rights Reserved, © 2013 FUJITSU ELECTRONICS INC. © 2013 Spansion Inc.

27282934

第1章
μT-Kernel 概要© 2013 T-Engine Forum, All Rights Reserved, © 2013 FUJITSU ELECTRONICS INC. © 2013 Spansion Inc.

OS利用のメリット (1)I. プログラムの再利用性が高い
OS使用以前ハードウェアに依存する箇所は全て作り直し

プログラム

プログラム

ハードウェアハードウェア再利用性

低い

OS使用後
OSでハードウェア依存部を吸収するため、プログラムの再利用性が高くなる

プログラム

プログラム

OSOS

ハードウェアハードウェア再利用性高い© 2013 T-Engine Forum, All Rights Reserved, © 2013 FUJITSU ELECTRONICS INC. © 2013 Spansion Inc.

OS利用のメリット (2)すっきりとした見やすいプログラムになる
OS使用以前メンテナンスが困難
簡単な機能追加するだけでも、検証作業大

OS使用後
タスク単位でプログラムが閉じているため、メンテナンスが容易新しく追加したタスク（機能）について、検証作業を集中することが可能

ﾀｽｸ
ﾀｽｸ

ﾊﾝﾄﾞﾗ

ﾊﾝﾄﾞﾗ

ﾀｽｸ

OS
ﾀｽｸ

© 2013 T-Engine Forum, All Rights Reserved, © 2013 FUJITSU ELECTRONICS INC. © 2013 Spansion Inc.

ﾀｽｸ

OSに任せると便利になること
１．同期（排他）制御を独自に作りこまなくて良い
２．周期ハンドラ，スリープなど時間管理が使える
３．割込みハンドラの登録などもシステムコール利用可【周期ハンドラ未使用】

write_mail()｛:transmit_position();:transmit_position();:transmit_position();:transmit_position();【周期ハンドラ使用】
10ms毎
送信プログラム

Initial_tsk()｛tk_cre_cyc(trans_posi_10ms);｝
10ms毎transmit_position()｛write_mail()｛

read_sensor_value();

::::｝

｝
｝
© 2013 T-Engine Forum, All Rights Reserved, © 2013 FUJITSU ELECTRONICS INC. © 2013 Spansion Inc.

排他処理の実現
並行性の実現手段

タスク

割込み処理

排他制御の手段

セマフォが代表
他にもRTOSの提供する多くの手段がある

割込み禁止および許可排他制御の（悪）影響

関連するタスクのみに限られる
関連しない優先度の高いタスクには影響を与えない
優先度逆転などのデッドロックに注意

システム全体，全ISRに及ぶ優先度の高いISRを停止させてしまう

特徴

多項目に及ぶが使い方を誤ってもシス 比較的単純に使えるが，使い方を誤テム全体に影響を及ぼすことはまれ
るとシステム全体の性能に影響を及
ただし，優先度の高いタスクで使用する ぼすため危険場合は要注意使い方を誤ると最悪システムダウン
また，デッドロックにも要注意を招く

OS導入により，ソフトウェアの生産性，再利用性が向上！！
© 2013 T-Engine Forum, All Rights Reserved, © 2013 FUJITSU ELECTRONICS INC. © 2013 Spansion Inc.

μT-Kernel とは？

© 2013 T-Engine Forum, All Rights Reserved, © 2013 FUJITSU ELECTRONICS INC. © 2013 Spansion Inc.

T-Kernel 仕様の誕生 (1)2004μITRON → T-Kernel© 2013 T-Engine Forum, All Rights Reserved, © 2013 FUJITSU ELECTRONICS INC. © 2013 Spansion Inc.

T-Kernel 仕様の誕生(2)ITRON による組込み機器ソフトウェア開発の限界
・他社ITRON間でのアプリの移植が難しい・高機能OSへの移行が難しい

セットメーカ、半導体メーカ、OSベンダが、次世代組込みOSとして「T-Kernel仕様」の策定、開発を推進 トロンプロジェクトの20年の成果を踏襲
 新たな要求に対応

ソフトウェアの再利用

強い標準化

高機能なソフトウェア開発

ファイルシステム、デバイス管理機能、省電力機能、ダイナミックロード機能

信頼性の高いソフトウェア開発

プロセス単位のプログラム管理機能

より高度なソフトウェア開発

OSの拡張機能© 2013 T-Engine Forum, All Rights Reserved, © 2013 FUJITSU ELECTRONICS INC. © 2013 Spansion Inc.

T-Kernel 仕様からμT-Kernel 仕様へ(1)2007

T-Kernel →μT-Kernel

小規模組込み機器向けＲＴＯＳ© 2013 T-Engine Forum, All Rights Reserved, © 2013 FUJITSU ELECTRONICS INC. © 2013 Spansion Inc.

T-Kernel 仕様からμT-Kernel 仕様へ(2)T-Kernel の小規模組込み機器への適用の要求
・T-Kernelは大規模な組込みシステムを視野に入れているため小規模な組込みシステムでは使わない機能があり、フットプリント、オーバヘッドが大きい

T-Engineフォーラムにおいて、小規模組込み機器へ適用できるOSとして「μT-Kernel 仕様」を策定
 シングルチップマイコン、8/16bitマイコンへの適用
 T-Kernelとの互換性を考慮

最適化・適応化

小規模ｼｽﾃﾑでは使われない機能の削除
ｼｽﾃﾑ全体のｵｰﾊﾞﾍｯﾄﾞになる機能の削除
資源を有効に使う機能の追加

ソフトウェアの再利用

強い標準化、T-Kernel とI/Fの統一

高機能なソフトウェア開発

デバイス管理機能、省電力機能© 2013 T-Engine Forum, All Rights Reserved, © 2013 FUJITSU ELECTRONICS INC. © 2013 Spansion Inc.

μT-Kernel の特長© 2013 T-Engine Forum, All Rights Reserved, © 2013 FUJITSU ELECTRONICS INC. © 2013 Spansion Inc.

T-Kernel とμT-Kernel の差異 (1)▶ 必要な機能に絞ったシンプル・カーネル▶ 小規模マイコン・アーキテクチャを想定した仕様▶ メモリの効率化
大 重小© 2013 T-Engine Forum, All Rights Reserved, © 2013 FUJITSU ELECTRONICS INC. © 2013 Spansion Inc.

軽T-Kernel とμT-Kernel の差異 (2)▶ 必要な機能に絞ったシンプルカーネル
 T-Kernel/OS, T-Kernel/DS, T-Kernel/SMの区別はなし
 一部機能の縮小 ・・・ タスク例外,タスクイベント等なし
 T-Monitor は必須ではない
アプリケーション

アプリケーション
タスク
例外

タスク
イベント

サブシステム＃１

デバイス
ドライバ＃1

デバイス
ドライバ＃2

T-Kernel
OST-Kernel
SM

T-KernelDS

サブシステム＃１

デバイス
ドライバ＃1

デバイス
ドライバ＃2μT-Kernel

T-Kernel
各社モニタデバッガ
T-Monitor© 2013 T-Engine Forum, All Rights Reserved, © 2013 FUJITSU ELECTRONICS INC. © 2013 Spansion Inc.

T-Kernel とμT-Kernel の差異 (3)▶ 小規模マイコンアーキテクチャを想定した仕様
 MMU／MPU無しのシステムを想定
 ワンチップマイコンへの対応

必要ROM容量：
T-Kernel⇒ 100KB
μT-Kernel ⇒ 8KB～55KB
必要RAM容量：
T-Kernel⇒ 70KBμT-Kernel ⇒ 4KB～12KB※ T-Engineフォーラムウェブページより© 2013 T-Engine Forum, All Rights Reserved, © 2013 FUJITSU ELECTRONICS INC. © 2013 Spansion Inc.

T-Kernel とμT-Kernel の差異 (4)▶ メモリ管理の効率化
 ユーザがカーネル内のメモリ獲得手段を選択できる（静的 or 動的）
TASK
A
TASK
B

TASK A
終了

TASK
B
TASK
C

カーネルによる自動割当て

ユーザがスタック領域を指定
TASK C 生成

TASKATASK A終了TASKCTASK
B

TASK
B

TASK
B

TASK C 生成

タスクスタックの領域が自動的に割り当てられ、メモリリーク、メモリフラグメントが発生

スタック領域の指定
ユーザが静的にメモリ管理を行えば、タスクスタック領域の共有が可能となり、省メモリ化を実現

メモリを静的に確保することによって、メモリのフラグメント、リークを解消● メモリ管理機能を取り外すことで、省メモリ化可能●© 2013 T-Engine Forum, All Rights Reserved, © 2013 FUJITSU ELECTRONICS INC. © 2013 Spansion Inc.

μITRON とμT-Kernel の差異 (1)▶ アプリケーションプログラムの移植が容易
アプリケーションプログラムの移植困難△APP_A

アプリケーションプログラムの移植容易

△
APP_B

APP_C

A社
B社
C社
μITRON μITRON μITRON○△APP_A

APP_B

○ ○
APP_C

APP_D

○APP

APP

MP T-Kernel

T-Kernel

UCT様B社
C社
A社
μT-Kernel μT-Kernel μT-Kernel μT-Kernel

仕様書をベースに仕様書を各社で実装

ベースに実装μITRON
仕様書

μT-Kernel
仕様書

リファレンスソースを移植

大規模システムへのスケーラビリティ

μT-Kernel
リファレンス
ソースコードμT-Kernel
仕様書

先日
プレス発表!!

※ APP = Application Program© 2013 T-Engine Forum, All Rights Reserved, © 2013 FUJITSU ELECTRONICS INC. © 2013 Spansion Inc.

μITRON とμT-Kernel の差異 (2)▶ オープンソース
 T-Engineフォーラムより、カーネル仕様とソースコードが一般公開されている（透明性）
 T-Engineフォーラムにおいて、カーネルソースコードの一元管理を行っている（一元性）
従来のオープンソースとは違い、第三者の著作権物が混入していないことをT-Engineフォーラムが保証している。
 T-Engineフォーラムおよび会員企業で、μT-Kernel仕様を改善している（先進性）

カーネル仕様、ソースコードのメンテナンス、公開

T-Engine
フォーラム

幹事会員

各種WG

e会員

機能改善
品質改善
普及促進など

A会員

B会員
235団体
（2013/ 9/30現在）

賛助会員
学術会員
リエゾン会員© 2013 T-Engine Forum, All Rights Reserved, © 2013 FUJITSU ELECTRONICS INC. © 2013 Spansion Inc.

μT-Kernel、T-Kernel、μITRON の相違点(1)μT-Kernel

T-Kernel

μITRON4.0

リファレンスコード

ありありなしメモリ保護機能なし

あり

あり *1

デバイスドライバインターフェイス

ありあり

なし

サブシステム

なし *2

あり

あり

オブジェクト生成動的

動的

静的および動的オブジェクト待ちの永久待ち、ポーリング、タイムアウトのシステムコール

同一システムコール

同一システム
コール

別システム
コール

セマフォの資源獲得/解放単位

複数複数1

項目

*1 「μITRON4.0 仕様保護機能拡張 (μITRON4.0/PX 仕様)」において定義されている*2 定義のみ。μITRON4.0 の拡張SVC機能と同等

T-Kernel 2.0 Extension（T2EX）© 2013 T-Engine Forum, All Rights Reserved, © 2013 FUJITSU ELECTRONICS INC. © 2013 Spansion Inc.

μT-Kernel 、T-Kernel、μITRON の相違点(2)μT-Kernel

T-Kernel

μITRON4.0

タスク例外なし

ありあり

オーバーランハンドラ

なし

ありありなしあり

あり

省電力あり *1あり

なし

デバッガサポート

ありありなし

標準モニタデバッガ

なし *2

T-Monitor

なし

項目

タスクイベント、時分割実行、待ち禁止、システムメモリ管理、アドレス空間管理
I/Oポートアクセス*1 「μT-Kernel 省電力機能実装ガイドライン」において定義されている*2 各社がCPU毎に別途用意© 2013 T-Engine Forum, All Rights Reserved, © 2013 FUJITSU ELECTRONICS INC. © 2013 Spansion Inc.

現状の取り組み© 2013 T-Engine Forum, All Rights Reserved, © 2013 FUJITSU ELECTRONICS INC. © 2013 Spansion Inc.

μT-Kernel移植ガイド▶ T-Engineフォーラム発行のμITRON >μT-Kernel移植ガイド

目次
第1章 概要第2章 μITRON4.0からμT-Kernelへの移行
第3章 ラッパーを使った移行方法
第4章 開発環境／関連製品
第5章 参考資料

http://www.t-engine.org/ja/wp-content/themes/wp.vicuna/pdf/specifications/ja/TEF022-W001-01.00.00_ja.pdf© 2013 T-Engine Forum, All Rights Reserved, © 2013 FUJITSU ELECTRONICS INC. © 2013 Spansion Inc.

μT-Licenseについて※ TRONWARE Vol.102 より© 2013 T-Engine Forum, All Rights Reserved, © 2013 FUJITSU ELECTRONICS INC. © 2013 Spansion Inc.

T-License 2.0について再配布可能！

ロゴ表示義務あり

改変後、再配布可能！
※ UCODE登録が必要

改変後、有償販売ＯＫ！
※ UCODE登録が必要© 2013 T-Engine Forum, All Rights Reserved, © 2013 FUJITSU ELECTRONICS INC. © 2013 Spansion Inc.

第2章
今後の展開

© 2013 T-Engine Forum, All Rights Reserved, © 2013 FUJITSU ELECTRONICS INC. © 2013 Spansion Inc.

μT-Kernel2.0© 2013 T-Engine Forum, All Rights Reserved, © 2013 FUJITSU ELECTRONICS INC. © 2013 Spansion Inc.

セミナー案内2013年度下期

μT-Kernelセミナ開催案内
2013/12/18（水）～19（木）【実習】μT-Kernel 入門（協力：スパンション・イノベイツ）
2014/1/22（水）～23（木）【実習】μT-Kernel 入門（協力：ルネサス ソリューションズ）
2014/2/22（土）【土曜講座】組込みリアルタイムシステム入門(μT-Kernel 入門)※ 最新のセミナー情報については下記URLをご参照ください：
講習会・シンポジウムのご案内 http://www.t-engine.org/ja/seminar2013_schedule© 2013 T-Engine Forum, All Rights Reserved, © 2013 FUJITSU ELECTRONICS INC. © 2013 Spansion Inc.

μT-REALOS/M3
製品仕様

特長▶ 多くのミドルウェアを利用できるμT-Kernel仕様に準拠▶ 基本コード2.6Kbyteの小さなカーネル▶ 省電力対応▶ デバイス管理機能▶ 必要な機能を選択できるコンフィギュレータ▶ カーネル情報表示機能プラグイン▶ μITRON仕様APIをサポート▶ 多くの開発環境をサポート▶ タスクデバッグ機能 new!

対象CPUOS仕様

FM3ファミリμT-Kernel仕様

ｺｰﾄﾞｻｲｽﾞ2.6～30KB

開発環境 MDK-ARM（ARM KEIL）
EWARM（IARｼｽﾃﾑｽﾞ）
RealView Development Suite v4.x
（ARM）
WATCHPOINT（Sohwa & Sophia Technologies）
microVIEW（横河ディジタルコンピュータ）
ｴﾐｭﾚｰﾀ ULINK（ARM KEIL）
J-Link（IARｼｽﾃﾑｽﾞ）
RealView ICE（ARM）
EJSCATT（Sohwa & Sophia Technologies）
adviceLUNA(横河ディジタルコンピュータ）

http://www.spansion.com/JP/Support/microcontrollers/development-environment/pages/software-relatimeos-index.aspx© 2013 T-Engine Forum, All Rights Reserved, © 2013 FUJITSU ELECTRONICS INC. © 2013 Spansion Inc.

おまけuT-Kernelを使ってみたいと思ったら© 2013 T-Engine Forum, All Rights Reserved, © 2013 FUJITSU ELECTRONICS INC. © 2013 Spansion Inc.

その1

© 2013 T-Engine Forum, All Rights Reserved, © 2013 FUJITSU ELECTRONICS INC. © 2013 Spansion Inc.

ソースコード
μT-KernelがサポートするCPU

ソースコードのダウンロード

CPU
開発環境

対応

型名

メーカ名

AT91M 55800A

Atmel

GCC

ソースコードH8S/2212

ルネサス
エレクトロニクス

GCC

ソースコード

FR60(MB91FV310A)

富士通セミコンダクター

SOFTUNE

体験版公開

M16C/M32C

ルネサス
エレクトロニクス

GCC

パッチ

V850

ルネサスエレクトロニクス

GCC

パッチ

Kinetis(ARM Cortex-M4)

Freescale

IAR EWARM, ARM MDK

製品

RX62N

ルネサスエレクトロニクス

HEW

製品

STM32F2（ARM Cortex-M3）

ST Microelectronics

IAR EWARM, ARM MDK

製品

Stellaris（ARM Cortex-M3）

Texas Instruments

IAR EWARM, ARM MDK, TI CCS

製品

TX03
（ARM Cortex-M3）

東芝セミコンダクター

IAR EWARM, ARM MDK

製品

FM3（ARM Cortex-M3）

富士通セミコンダクター

http://www.t-engine.org/download/index.php?route=product/category&path=17※ サポートCPUの詳細：
IAR EWARM, ARM MDK

製品

http://www.t-engine.org/ja/hwinfo#b© 2013 T-Engine Forum, All Rights Reserved, © 2013 FUJITSU ELECTRONICS INC. © 2013 Spansion Inc.

ソースコード
サポートCPU一覧（スパンション・イノベイツ）
CPU
型名

開発環境

対応

SOFTUNE体験版公開

メーカ名

FR60
(MB91FV310A)

富士通セミコンダクター

ARM社（MCB9BF500）
IAR社（KSK-MB9BF506R）

FM3（ARM Cortex-M3）

富士通セミコンダクター（SK-FM3-48PMC-USBSTICK）

http://www.t-engine.org/ja/2013/download20130513.html© 2013 T-Engine Forum, All Rights Reserved, © 2013 FUJITSU ELECTRONICS INC. © 2013 Spansion Inc.

製品

USBSTICK 評価ボード

FM3 USBSTICK

検 索

詳細はwebで!!

http://www.youtube.com/watch?v=U4qzNoDE6KY&feature=share

http://www.spansion.com/JP/Products/microcontrollers/32-bit-ARM-Core/pages/fm3-sk-fm3.aspx© 2013 T-Engine Forum, All Rights Reserved, © 2013 FUJITSU ELECTRONICS INC. © 2013 Spansion Inc.

USBSTICK 評価ボード

http://www.spansion.com/JP/Products/microcontrollers/32-bit-ARM-Core/pages/fm3-sk-fm3.aspx© 2013 T-Engine Forum, All Rights Reserved, © 2013 FUJITSU ELECTRONICS INC. © 2013 Spansion Inc.

Cortex-M3用のμT-Kernelが動く超低価格ボード

パーソナルメディア株式会社
http://www.t-engine4u.com/products/fm3_usbstick.html

FM3 USBスティックボードにおけるμT-Kernelの利用方法
http://www.t-engine4u.com/support/fm3_usbstick/install_utkernel.html© 2013 T-Engine Forum, All Rights Reserved, © 2013 FUJITSU ELECTRONICS INC. © 2013 Spansion Inc.

http://www.t-engine.org/ja/①

http://www.t-engine.org/download/?language=jp

拡大© 2013 T-Engine Forum, All Rights Reserved, © 2013 FUJITSU ELECTRONICS INC. © 2013 Spansion Inc.

②

http://www.t-engine.org/download/index.php?route=product/product&product_id=130④③⑤
申請すると⑥ダウンロードできるようになる！！

※ 今日はここまで© 2013 T-Engine Forum, All Rights Reserved, © 2013 FUJITSU ELECTRONICS INC. © 2013 Spansion Inc.

その2

© 2013 T-Engine Forum, All Rights Reserved, © 2013 FUJITSU ELECTRONICS INC. © 2013 Spansion Inc.

Interface誌(CQ出版) 付属基板(2012年6月号)© 2013 T-Engine Forum, All Rights Reserved, © 2013 FUJITSU ELECTRONICS INC. © 2013 Spansion Inc.

ソースコードInterface 基板用 uT-REALOS
http://jp.fujitsu.com/microelectronics/products/micom/interface-fm3/© 2013 T-Engine Forum, All Rights Reserved, © 2013 FUJITSU ELECTRONICS INC. © 2013 Spansion Inc.

以前

以前

© 2013 T-Engine Forum, All Rights Reserved, © 2013 FUJITSU ELECTRONICS INC. © 2013 Spansion Inc.

ソースコードInterface 基板用 uT-REALOS
http://jp.fujitsu.com/microelectronics/products/micom/interface-fm3/© 2013 T-Engine Forum, All Rights Reserved, © 2013 FUJITSU ELECTRONICS INC. © 2013 Spansion Inc.

現在

★LED を光らせるなら#define bFM3_GPIO_DDRF_P3#define bFM3_GPIO_PDORF_P3*((volatile unsigned int*)(0x4266478CUL))*((volatile unsigned int*)(0x4266878CUL))

int i;
bFM3_GPIO_DDRF_P3=1;
bFM3_GPIO_PDORF_P3=1;
for(i=0;i<2000000;i++) bFM3_GPIO_PDORF_P3=0;
for(i=0;i<2000000;i++) bFM3_GPIO_PDORF_P3=1;

FUJITSU USB DIRECT Programmer で
smpsys.srec© 2013 T-Engine Forum, All Rights Reserved, © 2013 FUJITSU ELECTRONICS INC. © 2013 Spansion Inc.

実際に，やってみる© 2013 T-Engine Forum, All Rights Reserved, © 2013 FUJITSU ELECTRONICS INC. © 2013 Spansion Inc.

FM3 スターターキット
搭載マイコン：MB9BF506R（Cortex-M3）

http://www.spansion.com/JP/Products/microcontrollers/32-bit-ARM-Core/pages/fm3-tool.aspx#starter© 2013 T-Engine Forum, All Rights Reserved, © 2013 FUJITSU ELECTRONICS INC. © 2013 Spansion Inc.

IAR SYSTEMS【統合開発環境：EW-ARM】

http://www.iar.com/jp/Products/IAR-Embedded-Workbench/© 2013 T-Engine Forum, All Rights Reserved, © 2013 FUJITSU ELECTRONICS INC. © 2013 Spansion Inc.

FM3 スターターキット準備
JP1:USB

USB接続 → PCへ© 2013 T-Engine Forum, All Rights Reserved, © 2013 FUJITSU ELECTRONICS INC. © 2013 Spansion Inc.

© 2013 Spansion Inc.
http://www.spansion.com/JP/© 2013 FUJITSU ELECTRONICS INC.
http://jp.fujitsu.com/group/fei/© 2013 T-Engine Forum, All Rights Reserved.
http://www.t-engine.org/
本資料に記載されている社名及び製品名などの固有名詞は、各社の商標または登録商標です。
© 2013 T-Engine Forum, All Rights Reserved, © 2013 FUJITSU ELECTRONICS INC. © 2013 Spansion Inc.

【講座】T-Kernel/ITRON入門テキスト「μT-Kernel入門」
著者 T-Engine Forum
本テキストは、クリエイティブ・コモンズ 表示 - 継承 4.0 国際 ラ
イセンスの下に提供されています。
http://creativecommons.org/licenses/by-sa/4.0
Copyright ©2014 T-Engine Forum【ご注意およびお願い】
1.本テキストの中で第三者が著作権等の権利を有している箇所については、利用者の方が当該第三者から利用許諾を得てください。
2.本テキストの内容については、その正確性、網羅性、特定目的への適合性等、一切の保証をしないほか、本テキストを利用したことにより損害が生じても著者は責任を負いません。
3.本テキストをご利用いただく際、可能であれば office@t-engine.org までご利用者のお名前、ご所属、ご連絡先メールアドレスをご連絡いただければ幸いです。