2013 西日本編 今さら聞けない だけど WEC2013 ってなあに? 株式会社アキタ電子システムズ はじめに 1996 年から出荷されたWindows CEも 2013 年の今年 6 月に最新の Windows Embedded Compact 2013が出荷されました 本セッションではこのWindows Embedded Compact 2013を中心に CEコアを持つ組み込み OSの特徴を述べるとともに Windows Embedded Compactをどのようなデバイスに適用すべきかについて解説をします Windows CEとWindows Embedded Compact って何が違うの? どういうアーキテクチャなの? どういう製品に使ったらいいの? という疑問にお答えします 2 1
会社 & スピーカー紹介 社名 : 株式会社アキタ電子システムズ創業 :1969 年 4 月 1 日 株主 : 株式会社日立超 LSI システムズ (100%) 資本金 :9 千 8 百万円 従業員数 : 約 225 名 (2013. 4 現在 ) 業務内容 ソフトウェア開発 ( 組み込み, Windowsアプリ, 他 ) LSI 設計, ボード設計 スピーカー : 伊藤優 (ito-yu@akita-elec.co.jp) 自動車向け情報端末を中心に Windows Embedded 製品を幅広くサポート 3 Microsoft の Embedded 製品 OS Kernel CPU 主な製品 Windows Embedded Server NT x86, x64 Server Appliances Windows Embedded Enterprise NT x86, x64 Kiosk, Entertainment Windows Embedded Standard NT x86, x64 POS, IA, Entertainment, Medical Windows Embedded Compact CE ARM, x86 MIPS(WEC7) Portable Media, Consumer, Thin Client, IA, Automotive, Cellular, Robot 4 2
Windows Embedded Compact 2013 とは? Windows Embedded Compact 2013 は 2013 年 6 月に出荷が始まった マイクロソフトの組み込み OS です カーネルは CE コアにより構築され CPU は ARMv7 と x86 がサポートされています CE コアを持つ小型デバイス向けのリアルタイム組み込み OS MMUによるプロセス保護が実装されているため より堅牢なシステムの構築が容易 過去のWindows CE WEC7の技術資産との互換性を有する Win32API MFC ATL などのライブラリの他.NET Compact Framework 3.9 や XALM for Windows Embedded によるアプリケーション開発環境の提供 Visual Studio 2012 上での統一された開発環境 マイクロソフトにより保証された OS ライセンス 5 Windows CE から Windows Embedded Compact への変遷 Version 出荷年 主なサポートCPU 主な変化点 WinCE 1.0 1996 SH3, ARM, MIPS, PowerPC, x86 HHPCとして出荷 WinCE 2.0/2.1/2.12 1997 SH3/4, ARM, MIPS, PowerPC, x86 組み込み機器向け用に提供 WinCE 3.0 2000 SH3/4, ARM, MIPS, PowerPC, x86 リアルタイム性確保 PB 導入 WinCE.NET 4.0/4.1/4.2 2002 SH3/4, ARM, MIPS, x86 NDIS MUI VoIP.NET CF WinCE 5.0 2004 SH3/4, ARM, MIPS, x86 オールドCEコアの最終 Ver. WinCE 6.0 2006 SH4, ARM, MIPS, x86 新 CEコア Silverlight VS 対応 WEC7 2011 ARM(+ARMv7), MIPS, x86 SMP αブレンド 新ブート方式 WEC2013 2013 ARMv7, x86 最新のWECVer. 6 3
WEC2013 の主な変化点 Visual Studio 2012 Platform Builder 8 は Visual Studio 2012 にプラグインされる ネットワークスタック パフォーマンスの向上他.NET Compact Framework 3.9 Expression Blend for Visual Studio 2012 Snapshot Boot OS 起動状態のスナップショットからのブートをサポートし 起動をより高速化 機能の最適化 ( 削除された項目 ) IE7 RDP,DLNA Windows 95シェル他 7 組み込み OS の比較 :WEC と組み込み Linux 項目 WEC7 / WEC2013 組み込みLinux 高速起動 Snapshot Boot(WEC2013) 3 rd パーティソリューション リアルタイム性 10us 以下 10us 以下 SMP Support Support Kernel CE Core( 単一のVer.) Linux Core( 多くのVer.) ライセンス マイクロソフトが保証 OSS 管理 ミドルウェア PC Windowsのサブセット 最新 ( ただし安定しない ) 初期費用 Platform Builder( 有償 ) Eclipse( 無償 ) ランタイムコスト 安い 無償 8 4
WEC2013 の開発環境 Visual Studio 2012+Platform Builder 8(PB8) WEC7の開発環境 (VS2008+PB7) を踏襲 標準ツール リモートツール WEC Test Kit ブート 割り込み JTAG ICE 9 WinCE/WEC の開発ステップ 設計開発テスト 評価 ハードウェア 基板設計 ブレッドボード ES1 改版 (ES2) 改版 PP 基板テスト 基板テスト 基板テスト 基板テスト ソフトウェア 機能設計 設計フィードバック 追加仕様設計 機能テスト チューニング製品評価 カーネルドライバ ブート固有ドライバ BSP 開発 電源管理 WECTK WECTK テスト 不具合対策 不具合対策アプリケーション開発 ( エミュレーター SDKベース サンプルボード 製品ボード ) プライオリティ調整デッドロック確認メモリリーク確認パフォーマンス評価 製品出荷 10 5
さてここからは Windows Embedded Compact の基本アーキテクチャや その特徴を確認します 11 WEC の特徴 : メモリ管理 メモリ保護 :MMU によるプロセス保護が行われます 論理空間 :2GB/ プロセス 物理空間 :3GB Max 最大 32k プロセス 0xffff fffff Kernel Space 2GB プロセス間の不正なアクセスは保護される 0x8000 0000 0x7fff ffff UserSpace 2GB 0x0000 0000 12 6
WEC の特徴 : リアルタイム性の確保 WECはある事象が発生してから その事象に対する処理時間を保証するシステムの構築が可能はリアルタイムシステム スレッド起動要求があると もっとも高いスレッドプライオリティを有するスレッドにプリエンプティブで遷移する スレッドスケジューリング Driver IST Applications Thread Thread Thread Kernel Vector ISR Hardware IRQ Register 13 WEC の特徴 : スケジューリング スケジューラー : スレッドプライオリティに基づいた制御 プライオリティレベル :256 レベル 設定値 :0( 高 )~255( 低 ) デフォルト値 :251 スケジューリングの特徴 スケジューリングはプライオリティが基準 要求された中で最も高いスレッドを起動 同一プライオリティの場合はラウンドロビンで遷移 (Max. 100ms) 動作していないスレッドは検出できない プライオリティの逆転は救済可能 Priority 0 127 250 251 252 255 A B C E D D A 14 7
WEC の性能 :SMP による効率化 15 SMP:Symmetric Multiprocessing WEC7 からサポート 最大 8 コア 割り込み応答性能を確保するために スレッドを特定のコアに固定することが可能消費電力を抑えるために コアごとのON/OFFの指定が可能 WinCE6.0 以前のプロセスはシングルコアで動作 SMPの効率を上げるためには 分散処理によるプログラミング手法が効果的 SMP の効果 (2 コア ) スレッド数 処理時間 ( スレッド数 1 基準 ) 理論値測定時 1 1.00 1.00 2 1.00 1.00 3 1.50 1.58 4 2.00 2.02 5 2.50 2.56 6 3.00 3.04 7 3.50 3.60 8 4.00 4.05 WEC の特徴 : 開発ツールとターゲット ツール Bootloader OAL Driver Native Apl. Managed Apl. Silverlight Assy C/C++ C/C++ C/C++ VB, C# XAML Platform Builder 8 Visual Studio 2012 Blend for Windows Embedded VS2012 単体でアプリケーションを開発する場合はSDKが必要 Blendで作成したXAMLはPBでネイティブコードとバインドする 16 真夏の組み込みWindows 技術セミナー 8
WEC7/2013 を必要とするシーン 改めて WEC7/2013 の特徴 低消費電力を必要とするデバイスに向いている スケジューラーはイベントドリブンでスレッドのディスパッチを行い 要求が無い場合はアイドル状態から低消費電力モードに移行する リアルタイム処理を必要とするシステムに向いている ただしレイテンシ保証 高レスポンスシステムを構築するには工夫が必要 コールドスタートにおける高速ブートや スタンバイ / リジュームのより細かな制御など 使用目的に合わせた電源管理が可能.NET CF XAMLを用いたアプリケーション開発により 多様なインターフェイス仕様への対応が容易 SMPを活用する事で さらにCPU 利用の効率を向上させることが可能 Platform Builder を用い 統一された環境でのチーム開発に向いている 17 どういう製品に WEC7/WEC2013 は向いているか? 製品 WEC7/WEC2013の特徴業務用端末 堅牢なブート OAL ドライバ部を構築することで セキュアなシステムを構築できる.NET CFを用いることで ユーザーごとの要求に合わせたUI によるアプリケーション提供が容易 IA リアルタイム性を確保しながら システムの堅牢性を維持する事が可能 システムで要求される多様なデバイスドライバは 従来資産の活用や より柔軟なAPIを通じて 開発 実装できる Ethernetや無線 LANだけではなく 他のネットワークドライバを実装することも可能で システム固有の問題を解決 多拠点開発製品 安定した環境 保護されたライセンス下での開発 18 9
組み込み製品への WEC の採用をお勧めする理由 多くの実績と システム構築の経験 CEコアを持つWinCE WECは これまでもカーナビやIA ハンディターミナルなど より堅牢さを要求されるシステムへの搭載実績が多くあります これら製品の開発経験のあるエンジニアも多く 開発コスト ( 期間 ) の低減も可能です WECのソースは カーネル分も含め その多くが開発者には公開されます またカーネルはすでに多くの実績がありますが 問題があった場合は マイクロソフトの公式アップデートにより解決されます 安心できる開発環境とライセンス 多拠点での開発では 環境やOSバージョンの統一など 製品開発とは直接関係無い部分での問題が発生します PB 上は世界統一のツールで 環境の差による動作の不統一は発生しません PBに同梱されるソフトウェアの権利はマイクロソフトによって保証されます 19 ありがとうございました お問い合わせは!:info@ml.akita-elec.co.jp 20 10