高速・省メモリのRTOS UDEOS 4/ Lite のご紹介 R Unified Development Environment Operating System エンベデッドシステム事業部 2014年 2月 7日 Copyright 2014, Toshiba Information Systems (Japan) Corporation. 会社概要 商号 設立 1962(昭和37)年8月21日 資本金 10億円 株主 代表者 本社所在地 支社/支店 東芝ソリューション株式会社 株式会社東芝 取締役社長 63.5% 36.5% 恩地 和明 〒210-8540 川崎市川崎区日進町1番地53 興和川崎東口ビル 北海道支店、 東北支店、 中部支社 関西支社、 九州支店 事業内容 エンベデッドシステムソリューション、 LSIソリューション、 SIソリューション、ヘルスケアソリューション URL http://www.tjsys.co.jp 東芝情報システム - UDEOS 4/Lite のご紹介 - R 2 アジェンダ UDEOS 4/ Lite の概要 R タスク 割込みハンドラ デバッグ機能 開発環境 プログラム完成までのステップ 性能値 UDEOS の実績とその他製品の紹介 R 東芝情報システム - UDEOS 4/Lite のご紹介 - R 3 UDEOS 4/ Lite の概要 R UDEOS シリーズ製品ラインナップ R Lite の開発経緯 Lite の特長 Lite のサポート機能 Lite の構成 東芝情報システム - UDEOS 4/Lite のご紹介 - R 4 □ UDEOS シリーズ製品ラインナップ R 弊社では、μITRON3.0/4.0仕様に準拠したリアルタイムOS 「UDEOS シリーズ」 の開発、販売、技術サポートを行っております。 R ◆μ ITRON3.0仕様 UDEOS Standard R TX49 TX39 ◆μ ITRON4.0仕様 UDEOS 4 R Standard TX49 Compact Cortex-M3 Lite ARM9 ※1 Cortex-M0 ARM11 ※1 ※1 Cortex-M3 開発中 Cortex-M0/M3 向けに最適化した、最高速かつ最軽量の「UDEOS 4/ Lite」を 開発中。 R 東芝情報システム - UDEOS 4/Lite のご紹介 - R 5 □ UDEOS 4/Lite の開発経緯 R APP APP RTOS HW(MCU) HW(MCU) UDEOS 4/ Cortex-M3 R ☆ お客様からの要望 ☆ OSレス環境から移行した場合に インパクトが小さいRTOSが欲しい! → RTOSの軽量化、高速化が必要 UDEOS 4/ Lite R 軽量化と高速化のために • 機能の削減とサービスコールの簡素化 • データ構造の最適化 • スタック共有機能の改善 • 割込み処理の改善 東芝情報システム - UDEOS 4/Lite のご紹介 - R 6 □ UDEOS 4/Lite の特長 R ARM Cortex-M0, M3プロセッサ向けリアルタイムOS μITRON4.0仕様に準拠 デバッグ機能 • OSのイベントトレース機能 • スタックオーバーフロー検出機能 タスクスタックの共有機能 • 複数のタスク間においてスタックを共有することが可能 → RAMの削減 高速な割込み応答性 • 40MHz動作時に0.7us程度 コンパクトサイズな設計 • MCU向けに内蔵ROM/RAMのみで動作可能 東芝情報システム - UDEOS 4/Lite のご紹介 - R 7 □ UDEOS 4/Lite のサポート機能 R ◆ UDEOS 4/Lite のサポート機能 R UDEOS 4/Lite サポート機能 R (μITRON4.0仕様スタンダードプロファイル) タスク管理機能 • – タスク付属同期機能 • タスク例外処理機能 同期・通信機能 タスク管理機能 / タスク付属同期機能 同期・通信機能 – セマフォ イベントフラグ • データキュー メモリプール管理機能 固定長メモリプール 時間管理機能 システム時刻管理 周期ハンドラ • システム状態管理機能 周期ハンドラ、アラームハンドラ システム状態管理機能 – • セマフォ、イベントフラグ 時間管理機能 – メールボックス タスクの起動/終了、待ち機能 ロック/アンロック、ディスパッチ禁止/許可 割込み管理機能 – 割込み定義、割込み禁止/許可、割込みマスク変更 割込み管理機能 • システム構成管理機能 システム構成管理機能 – ※グレーは未サポート機能 • 実装独自機能 – 東芝情報システム - UDEOS 4/Lite のご紹介 - R 例外ハンドラ定義、初期化ルーチン定義 ログ機能、割込み優先度変更 8 □ UDEOS 4/Lite の構成 R 種類 静的エラーチェック スタックオーバーフロー チェック イベントトレース デバッグカーネル ○ ○ ○ エラーカーネル ○ × × リリースカーネル × × × 種類 機能 静的エラーチェック サービスコールの静的エラーチェックを行う機能 十分に検査したアプリケーションではE_CTXやE_PARなどのチェックを外すことでROM容量の削減 とサービルコールの処理速度を高める効果があります。 スタックオーバーフロー タスクや割込みのスタックのオーバーフローを検出する機能 タスクの切り替え時や割込み終了時にスタックオーバーフローの有無を検出し、スタックオーバーフ ロー検出時にはシステムダウンします。 イベントトレース 割込み、CPU例外、ディスパッチ、サービスコールの発行、システムダウンなどのイベントを記録する 機能 東芝情報システム - UDEOS 4/Lite のご紹介 - R 9 タスク タスクの仕様 制約タスクとは スタック共有のイメージ 東芝情報システム - UDEOS 4/Lite のご紹介 - R 10 □ タスクの仕様 ◆省メモリ化のために機能を制限 • タスクは16個まで生成可能 • 1つの優先度に複数タスクの生成は不可 • タスクの優先度の変更は不可 • タスクの多重起動は不可 ◆タスクは4つの状態をサポート • 実行状態 (RUNNING) • 実行可能状態 (READY) • 待ち状態 (WAITING) • 休止状態 (DORMANT) ディスパッチ RUNNING READY プリエンプト 実行可能状態 待ち解除 実行状態 待ち WAITING 待ち状態 起動 DORMANT 終了 休止状態 東芝情報システム - UDEOS 4/Lite のご紹介 - R 11 □ 制約タスクとは ◆ 制約タスクとは – 他のタスクとスタックを共有したタスク – 優先度が異なるタスク間においてもスタックの共有が可能 ◆ 制約事項 – 待ち状態に入ることができない – タスクからのリターンによって、 タスクを終了させなければならない (ext_tsk で終了できない) ◆ 制約タスクの定義方法 – CRE_TSKのタスク属性にTA_RSTRを指定 ■コンフィグレーション設定ファイルの記述例 /* 制約タスクの定義 */ CRE_TSK(TSKA, {TA_HLNG|TA_RSTR, 0, tska, 0, 512, NULL}); 東芝情報システム - UDEOS 4/Lite のご紹介 - R 12 □ スタック共有のイメージ ◆ TaskA~Dの最大スタック使用量 • TaskA: 300B • TaskB: 100B 300+100+300+200 • TaskC: 300B = 900Byte • TaskD: 200B ◆TaskA~Dのスタックを共有化 TaskA~Dが共通で使用する スタックを1つ用意する Task A Task B Task C Task D ◆ TaskA~Dの合計スタック使用量 実際にTaskA~Dが使 用する合計スタック使 用量は 500Byte 600 500 Stack 500B 400 300 Task D 200 Task C TaskA~Dが 共有スタックを 使用している 場合の1例 Task B 100 Task A 0 0 50 100 150 500Byte アプリの実行時間 東芝情報システム - UDEOS 4/Lite のご紹介 - R 13 割込みハンドラ 割込みハンドラの特長 割込みハンドラの処理 東芝情報システム - UDEOS 4/Lite のご紹介 - R 14 □ 割込みハンドラの特長 割込みハンドラの特長 • ベクタテーブルから直接呼ばれる (オーバーヘッドが小さい) • サービスコールの発行が可能である • 割込みスタックを使用して動作する ■コンフィグレーション設定ファイルの記述例 /* 割込みハンドラの定義 */ DEF_INH(intno, {TA_HLNG, inthdr}); 東芝情報システム - UDEOS 4/Lite のご紹介 - R 15 □ 割込みハンドラ(INTHDR)の処理 INTHDR (ディスパッチなし) ①割込みスタックに切り替えられる ベクタテーブルから直接呼ばれる INTHDR Interrupt ① TASK TASK INTHDR (ディスパッチあり) ①INTHDR内でのサービスコールの発行 - ディスパッチ要求が発生 - 例外( PendSV )をペンディングさせる ② INTHDR終了後、PendSVが発生 ③ PendSV内でディスパッチ処理を行う サービスコールの発行 ① INTHDR Interrupt ② ③ PendSV TASK TASK 東芝情報システム - UDEOS 4/Lite のご紹介 - R 16 デバッグ機能 イベントトレース機能 スタックオーバーフローのチェック機能 静的エラーチェック機能 東芝情報システム - UDEOS 4/Lite のご紹介 - R 17 □ イベントトレース機能 OSがシステムのイベントをメモリへ記録する機能 • 記録するイベントはアプリケーションから動的に選択可能 • イベントの記録に使用するバッファのサイズはコンフィグレーション可能 記録したイベントを解析することで問題の解決に役立つ イベントの種類 • リセット • 初期化ルーチンの起動 • • • • • サービスコールの発行 ディスパッチ 割込み システムダウン ユーザレベルのイベント 東芝情報システム - UDEOS 4/Lite のご紹介 - R 18 □ イベントトレース (その1) No. TID Event 0| 0|RESET 1| 0|INIT (0) 2| 0|INIT (0) 3| 0|INIT (1) 4| 0|INIT (1) 5| 0|INIT (2) 6| 0|INIT (2) 7| 0|INIT (3) 8| 0|INIT (3) 9| 0|INIT (4) 10| 0|INIT (4) 11| 0|INIT (5) 12| 0|INIT (5) 13| 0|INIT (6) 14| 0|ena_int(4) 15| 0|ena_int(5) 16| 0|ena_int(6) 17| 0|INIT (6) 18| 0|INIT (7) 19| 0|vchg_ilv(15) 20| 0|INIT (7) 21| 0|DSP (0 -> 1) 22| 1|sta_cyc(1) 23| 1|wai_flg(1) 24| 1|DSP (1 -> 2) 25| 2|slp_tsk() 東芝情報システム Error | | | | | | | | | | | | | | |E_OK |E_OK |E_OK | | |E_OK | | |E_OK |EV_WAIT | |EV_WAIT PC | | |0x000002F9|INI | |INI |0x00000391|INI | |INI |0x0000031D|INI | |INI |0x0000028D|INI | |INI |0x00000211|INI | |INI |0x000028AD|INI | |INI |0x0000140D|INI | | | | | | | |INI |0x0000146D|INI | | | |INI |0x00002915| | | | | |0x00002969| | | - UDEOS 4/Lite のご紹介 - R Info begin end begin end begin end begin end begin end begin end begin end begin 初期化ルーチン の起動ログ 最初のタスクへの ディスパッチ end ディスパッチ先タスクのPC 19 □ イベントトレース (その2) No. 71| 72| 73| 74| 75| 76| 77| 78| 79| 80| 81| 82| 83| 84| 85| 86| 87| 88| 89| 90| 91| 92| 93| 94| 95| 96| TID Event Error 0|INTERRUPT (15) | 0|INH (0) | 0|CYCHDR (1) | 0|set_flg(3) |E_OK 0|wup_tsk(2) |E_OK 0|sig_sem(1) |E_OK 0|CYCHDR (1) | 0|isig_tim() |E_OK 0|INTERRUPT (15) | 0|DSP (0 -> 2) | 2|set_flg(1) |E_OK 2|DSP (2 -> 1) | 1|wai_flg(1) |EV_WAIT 1|DSP (1 -> 2) | 2|slp_tsk() |EV_WAIT 2|DSP (2 -> 3) | 3|wai_sem(1) |EV_WAIT 0|IDLE | 0|INTERRUPT (15) | 0|INH (0) | 0|isig_tim() |E_OK タスクID 0|INTERRUPT (15) | 0|INTERRUPT (15) | 0|INH (0) | 0|isig_tim() |E_OK 0|INTERRUPT (15) | 東芝情報システム PC |0x0000198A|INT |0x00001105|INH |0x00002241|CYC | | | | | | | |CYC | | | |INT |0x000008E9| | | |0x00000BB5| | | |0x00000743| | | |0x00000C85| | | | | |0x0000198C|INT |0x00001105|INH | | | |INT |0x0000198A|INT |0x00001105|INH | | | |INT - UDEOS 4/Lite のご紹介 - R Info begin imsk(1) begin begin ptn:0x00000000 end 割込み発生ログ 割込みハンドラ 起動ログ CYC起動ログ end begin imsk(1) begin end begin imsk(1) begin end 20 開発環境 IAR社製開発環境 東芝情報システム - UDEOS 4/Lite のご紹介 - R 21 □ 開発環境 ■ IARシステムズ社製 開発環境 製品名 IAR社 Embedded Workbench コンパイラ 統合開発環境Embedded Workbench デバッガ 同上 ターゲット ・NXPセミコンダクターズ IAR社 評価キット LPC1227 (Cortex-M0) ・株式会社 東芝 TMPM330 (Cortex-M3) TMPM364 (Cortex-M3) TMPM380 (Cortex-M3) 東芝情報システム - UDEOS 4/Lite のご紹介 - R 22 プログラム完成までのステップ コンフィグレーション設定の記述 コンフィグレーション定数 タスクの記述 ビルド 東芝情報システム - UDEOS 4/Lite のご紹介 - R 23 □ コンフィグレーション設定の記述 sample.cfg /* コンフィグレーション定数 */ #define CTIC_NUME 1 #define CMAX_INTNO MAX_INTNO : /* 初期化ルーチンの定義 */ ATT_INI({TA_HLNG, 0, inia}); /* 割込みハンドラの定義 */ #define INTNO 15 DEF_INH(INTNO, {TA_HLNG, TR_SYSTEM_TIMER}); /* タスクやオブジェクトの定義 */ #define STKSZ 512 #define TSKA 1 CRE_TSK(TSKA, {TA_HLNG|TA_ACT, 0, tska, 0, STKSZ, NULL}); CRE_SEM(SEMA, {TA_TFIFO, 0x0, 0x5}); CRE_FLG(FLGA, {TA_TFIFO|TA_WSGL|TA_CLR, 0x0}); CRE_CYC(CYCA, {TA_HLNG, 0, cyca, 10, 0}); 東芝情報システム - UDEOS 4/Lite のご紹介 - R 24 □ コンフィグレーション定数 定数名 機能 CTIC_NUME タイムティックの周期の分子 CMAX_INTNO 割込み番号の最大値 CMAX_EXCNO CPU例外要因の最大値 CLOG_CNT ログバッファに格納できるログ個数 CLOG_BUF ログバッファ領域の先頭番地 CINT_STKSZ 割込みスタックのサイズ CINT_STK 割込みスタックの先頭番地 CRSTR_STKSZ 制約タスクのスタックサイズ CSYS_DWN システムダウン時に実行する関数のアドレス CINT_UDF 未定義割込み発生時に実行する関数のアドレス CEXC_UDF 未定義CPU例外発生時に実行する関数のアドレス CERR_DWN 静的エラー発生時にシステムダウンさせるかどうかを示すフラグ 東芝情報システム - UDEOS 4/Lite のご紹介 - R 25 □ タスクの記述 sample.c #include <itron.h> void cyca(VP_INT exinf){ : } void tska(VP_INT exinf){ : ext_tsk(); } 東芝情報システム - UDEOS 4/Lite のご紹介 - R 26 □ ビルド ターゲットへの実行ファイルのダウンロード アプリの動作確認 東芝情報システム - UDEOS 4/Lite のご紹介 - R 27 性能値 性能データ 東芝情報システム - UDEOS 4/Lite のご紹介 - R 28 □ 性能データ ■ 測定条件 ■ サイズ コンパイラ IAR C Compiler Ver.6.40 タスク 5個 (制約タスク3個) セマフォ 1個 イベントフラグ 1個 周期ハンドラ 1個 システムコール wup_tsk、slp_tsk、wai_sem、sig_sem、wai_flg、 set_flg、sta_cyc、stp_cyc プロセッサ Cortex-M0 Cortex-M3 ROM 2.89 K バイト 3.03 Kバイト RAM (スタックを含まない) 0.11 K バイト 0.11 Kバイト ※ システムが消費するメモリサイズ。 ■ 速度 プロセッサ Cortex-M0 (36MHz) Cortex-M3 (40MHz) 割り込み起動時間 0.8 us 0.7 us 割り込み終了時間 0.8 us 0.8 us ディスパッチ処理時間 4.8 us 3.9 us ※ 条件により性能値は異なります。 東芝情報システム - UDEOS 4/Lite のご紹介 - R 29 UDEOS の実績とその他製品の紹介 R 採用実績 IPソリューション エンベデッド製品 東芝情報システム - UDEOS 4/Lite のご紹介 - R 30 □ 採用実績 • • • • • • • • • • カーナビ プリンタ デジカメ TV 衛星 ゲーム POS端末 携帯端末 固定電話/FAX 音楽プレーヤー etc. 東芝情報システム - UDEOS 4/Lite のご紹介 - R 31 □ IPソリューション ボードからアプリケーションにいたるまで、弊社で一貫した対応が可能です。 組込み用 アプリケーション ライセンス 開発環境ツール ミドルウェア ミドルウェア・OS ライセンス GNU、GHS、Microsoft PlatformBuilder、 IAR、KEIL、 リファレンスボード Java、TCP/IP、PPP、POP3、DNS、 SMTP、SNMP、MIME、PCMCIA、 DOS F/S、USB HOST、 SmartMedia、FlashMemory、 組み込み用OS WirelessLAN μITRON、Windows CE、Linux、T-Kernel、VxWorks リファレンスボード MPU サービス 受託・コンサルテーション ポーティング 応用アプリ開発。開発環境アドバイス。要求性能分析、最適RTOSの組 み合わせ提案。 テクニカルサポート 導入教育/インストール 弊社ご購入開発環境ツールインストール。導入教育の実施。 東芝情報システム ボードに合わせたRTOS/BSP/ミドルウェア/ドライバ/ライブラリィのポーティング - UDEOS 4/Lite のご紹介 - R 高品質のテクニカルサポートの提供 32 □ エンベデッド製品 アプリケーション Java ツール 開発ツール 組込み用 Virtual Machine リアルタイムシミュレータ M-RADSHIPSⓇ Audio/Video Player DiVAPlayerⓇ モデルIPライブラリ 電池モデル、BMSモデル、 ステッピングモータモデル、インバータ/モータモデル Multi Media ミドルウェア/ドライバ セキュリティ ネットワーク 組込み用 IPsec Ⓡ IPsec NetNucleus Ⓡ 不具合管理システム PRISMYⓇ OSSライセンス管理 Black DuckⓇ Suite ストレージ USB TCP/IP ライブラリ NetNucleus USBホスト・ファンクションドライバ MatrixQuestUSB host/lite/func DOSファイルシステム FilDos Ⓡ EX 無線LAN セキュリティ NetNucleus Ⓡ WPA Miracast (Wi-Fi Display) NetNucleus Ⓡ WFD PictBridge対応 MatrixQuestDPS 標準SDホストコントローラ メモリドライバ ネットワークセットアップツール NetNucleus Ⓡ WPS MirrorLinkプロトコルミドルウェア Ze-PROⓇ Mirror(Client) MTPプロトコルスタック MatrixQuestMTP NAND型フラッシュメモリ ライブラリ セキュリティ ライブラリ RSA BSAFEⓇ ONVIF対応プロトコル ミドルウェア Ze-PROⓇ IPcam/IPmon/IPrec(Server) RTPプロトコル ミドルウェア Ze-PROⓇ RTP ECHONET Liteスタック OS 開発支援ツール WebSphere Everyplace Custom Environment μITRON 3.0/4.0 UDEOS コンテンツ保護 SDメモリカードコンテンツ保護 SD-Video規格 HD画質対応コンテンツ保護 SeeQVault規格 Ⓡ エンベデッド製品紹介 URL http://www.tjsys.co.jp/solution/embedded/product/index.html 東芝情報システム - UDEOS 4/Lite のご紹介 - R 33 ご清聴ありがとうございました。 <弊社連絡先> エンベデッドシステム事業部 TEL:044-246-8320 E-mail: [email protected] この文章の情報は予告なしに変更することがあります。 記載されている会社名、製品名は各社の登録商標ならび商標です。 東芝情報システム - UDEOS 4/Lite のご紹介 - R 34 『人』は『情報』を上手に活用することで、 豊かな社会や生活を築くことができます。 当社はシステムでその実現のお手伝いをしています。 『人』と『情報』が新しい価値を生み出すよう、 それらを大切に育み『未来』に繋げてゆくこと、 これが当社の使命です。 東芝情報システム - UDEOSCopyright 4/Lite のご紹介 - 2014, TOSHIBA INFORMATION SYSTEMS(JAPAN)CORPORATION R 35 東芝情報システム - UDEOS 4/Lite のご紹介 - R 36