• 検索結果がありません。

開発方法

N/A
N/A
Protected

Academic year: 2021

シェア "開発方法"

Copied!
25
0
0

読み込み中.... (全文を見る)

全文

(1)

- 最新のマイクロソフト組み込み技術を学ぶ一日

(2)

Windows 8.1とEmbedded Systemの関係を知る

◦ Windows デバイスドライバーとドライバー モデル ◦ USB と USBドライバーの構成 ◦ WinUSBの拡張 

Windows 8.1のデバイスとデバイスドライバー

Windows ストア アプリでハードウェア制御

(3)

今回の話題は

Windows Embedded 8 ファミリー (WES系)

◦ Windows Embedded 8.1 Pro

◦ Windows Embedded 8 Standard

◦ Windows Embedded 8.1 Industry

◦ Windows Embedded 8 Handheld

◦ Windows Server 2012 for Embedded Systems

◦ Microsoft SQL Server 2012 for Embedded Systems

◦ System Center 2012 SP1

(4)

画面の様子

CUIアプリ

画面・機能は Windows 8.1

(5)

ストアアプリケーションでデバイスを扱える

◦ Windows 8 で本来実現できるはずだった機能 build 1(2011年9月) では多数のデバイス制御のセッション ◦ しかしTechnical Previewでは機能が削除 

デバイスドライバー アーキテクチャの変更

◦ KMDF: Version 1.9 → 1.11→1.13 ◦ UMDF: Version 1.9 → 1.11→2.0 

USB関連クラス追加とWinUSBの位置づけの変更

◦ WinUSB がデバイスサポートの鍵になる!? CUIアプリ ソースコード共通化 ( c ! not c++)

(6)

配布、インストール、起動、中断から終了までの

振る舞いの変更

セキュリティー、権限、制約の変更

◦ ブランディングとロックダウン的なものを導入 ◦ WEC アプリ的な動作 → 組み込み用途に適している 

APIの導入

CUIアプリ × Windows Application ストア アプリ UI変更だけではない

(7)

◦ 水色が追加されたライブラリ、黄緑色が強化されたライブラリ デバイスアクセスの強化

(8)

デバイスは

◦ 他と異なる、差別化する機能を実装⇔使いこなし (MS-DOSの頃から…) ◦ 最近は高性能・高機能化する一方標準化、汎用化が進む ◦ 最近はデバイスや半導体メーカーが淘汰してきている? 

デバイスドライバーは

◦ デバイスアクセスに必須(MS-DOSの頃から…) ◦ デバイス個別の差異を吸収⇔デバイス別に用意 ◦ 最近インボックス(インストール済、汎用)ドライバー利用が増加

(9)

NTカーネル 

アプリケーション操作への対応

カーネル操作への対応

デバイスを制御するソフトウェア

◦ 入出力操作, 割り込み操作,… ◦ バッファ操作, 排他制御,… デバイス Kernel mode デバイスドライバー アプリケーション

CreateFile, ReadFile, WriteFile,…

ドライバーインストール PnP(デバイスの脱着) 電源管理 ネットワーク ファイルシステム ユーザモード カーネルモード ハードウェア User mode デバイスドライバー

(10)

デバイスドライバーを開発する

◦ WDM ドライバー ◦ KMDF ドライバー ◦ UMDF ドライバー 

Windowsにプレインストールされているインボックスド

ライバーを利用する

◦ USBストレージ, USB-HID, WinUSB…

汎用ドライバー(サードパーティ製)を利用する

◦ UUSBD, LibUSB, … 古いアーキテクチャ 開発工数がWDMの1/5 ユーザーモードの制約

今後の主流

(11)

基本的にインストール不要(特定条件)

◦ INFファイル等が必要な場合がある ◦ VID&PID vs. Compatible ID 

ドライバー開発が不要

◦ INFファイルやカタログファイルの作成が必要な場合はある 

ドライバーの品質が安定している

Windowsアプリケーションとの連携が容易

デバイス側ファームウェアで デバイスクラスが定義済なら不要

今後の主流

(12)

アプリケーションから汎用的に使える

USBドライバー

◦ Microsoft社が初めて提供した汎用ドライバー

◦ Windows Vista以降に事前インストール済

◦ USB UMDF V1ドライバーに必須 (USB入出力をサポート)

一般的な

USB入出力機能を提供

◦ WinUSB.SYS – カーネルモード・ドライバー ◦ WinUSB.DLL – APIライブラリ 

Windows 8.1 ストアアプリで注目

◦ ドライバー開発&インストール不要 ◦ 汎用的なデバイスアクセスを実現 ◦ Windows RT 対応(INF不要のインストール) ◦ (以前は文献やサンプルが少なかった) アプリケーションから 直接利用可能 UMDFの サポート用として開発

(13)

構造図

ユーザーモード アプリケーション カーネルモード IOマネージャー 下位ドライバー デバイス Win 32 API WDM ドライバー usbport.sys usbhub.sys usbehci.sys usbhub.sys usbd.sys

(14)

構造図

ユーザーモード アプリケーション カーネルモード IOマネージャー 下位ドライバー デバイス Win 32 API KMDF ドライバー Framework usbport.sys usbhub.sys usbehci.sys usbhub.sys usbd.sys

(15)

構造図

ユーザーモード アプリケーション カーネルモード IOマネージャー リフレクタ UMDFホスト・プロセス UMDF ドライバー Framework デバイス 下位ドライバー Win 32 API usbport.sys usbhub.sys usbehci.sys usbhub.sys usbd.sys WinUSB.SYS WinUSB API WinUSB.dll Framework

(16)

構造図

ユーザーモード アプリケーション カーネルモード IOマネージャー

WinUSB.SYS

デバイス 下位ドライバー Win 32 API / WinUSB API usbport.sys usbhub.sys usbehci.sys usbhub.sys usbd.sys WinUSB.dll Framework

(17)

ストアアプリでのアイソクロナス転送

ストアアプリでの指定外クラスの利用

Windowsカーネルがサポートしている機能の代替

◦ LAN, Modem, Storage, …

ソフトウェア構造としてアプリケーションとドライバー部

分を分離すること

(18)

開発環境

OS

◦ Windows 7, Windows 8, Windows 8.1

開発対象

OS

◦ Windows 7, Windows 8, Windows 8.1

ツール

◦ Visual Studio 2012/2013+WDK8.1(+SDK)(+ADK)

◦ デバッガとテストツール、デプロイツールが全て含まれる。 ◦ F5キーでカーネルモードドライバーを署名付加後に、 リモート・インストールしてリモートデバッグ可能 ◦ カーネルモードドライバーのデバッグ・テスト時には ターゲット専用マシンが別に1台必要 WinUSBで 対応できない 場合は開発し ましょう 以前より簡単 になりました

(19)

ストアアプリにはデバイス利用制限がある

利用するためには

◦ Windows ストアデバイスアプリとしてドライバーとともに開発  ドライバーまたはINFファイルの開発が必要  特定デバイスを占有して利用 ◦ WinUSB利用ストア アプリとして開発  ドライバー開発は不要(INFファイル無しでもインストール可能)

(20)

特定(自社製)デバイス専用のアプリケーション

◦ マルウェア等の他のアプリケーションに悪用されない ◦ 想定外の使われ方をしない ◦ 課金対象等のデバイス利用を制限可能 ◦ デバイス装着時のAuto Play(自動再生)機能 ◦ デバイス メタデータでアプリケーションと紐づけ、権限管理 ◦ 典型的なサポートデバイス  プリンター、モバイル ブロードバンド、カメラ、テレビ、ステレオ、 レシーバー、ゲーム デバイス

(21)

デバイス(ファームウェア)が

WinUSBクラス対応の場合

◦ INF ファイルを使わなくても インストール可能

◦ レジストリを操作してデバイス固有のGUIDを登録

◦ クラスインストーラーがWinUSBクラスドライバーをインストール

◦ デモ (Custom USB device access sample:OSRFX2)

ベンダーがカスタム

INFファイルを用意する場合

 ドライバー パッケージとしてINFファイルをベンダーが用意

 Windows.Devices.Usb 名前空間により、WinUSB(Winusb.sys)

をデバイス ドライバーとして使う外部 USB デバイスと

Windows ストア アプリが通信可能

(22)

デバイスクラスは以下のいずれかに制限

◦ name:cdcControl, classId:02 * * ◦ name:physical, classId:05 * * ◦ name:personalHealthcare, classId:0f 00 00 ◦ name:activeSync, classId:ef 01 01 ◦ name:palmSync, classId:ef 01 02 ◦ name:deviceFirmwareUpdate, classId:fe 01 01 ◦ name:irda, classId:fe 02 00 ◦ name:measurement, classId:fe 03 * ◦ name:vendorSpecific, classId:ff * * →アプリケーションで可能な動作を制限

(23)

USB用のMicrosoft固有のディスクリプターを定義

いままでディスクリプターに全てを含めることができな

かった画像、アイコン、カスタム ドライバーといったデバ

イス固有の情報をユーザーに提供する

WinUSB用の情報を拡充し、ドライバー無しで利用でき

るデバイス種類を増やす。

(24)

Windows 8.1とEmbedded Systemの関係を知る

Windows デバイスドライバーとドライバー モデル

USB と USBドライバーの構成

WinUSBの拡張

Windows 8.1のデバイスとデバイスドライバー

Windows ストア アプリでハードウェア制御

(25)

 Windows 8.1 向け Windows ストア デバイス アプリの新機能  http://msdn.microsoft.com/ja-jp/library/windows/hardware/dn265149(v=vs.85).aspx  Windows 向けハードウェアの設計、開発、認定  http://msdn.microsoft.com/ja-jp/windows/hardware/  WinUSB デバイス  http://msdn.microsoft.com/library/windows/apps/hh450799  Windows 8.1: キットとツールのダウンロード  http://msdn.microsoft.com/ja-jp/windows/hardware/gg454513.aspx

参照

関連したドキュメント

Two kinds of SF wetlands purify water better than FWS wetland, however there is not obvious difference between two kinds of SF wetlands with gravel and artificial fillings.. Two

M…剛曰劉Ⅱ 、=3 2)TBAF 1)Bu3SnH ,鍼:苧 ace トトト 123 mm、 一一一一一一 111 ?99 bdf ●●●●。● nnn コ聿罰

[r]

Key Word: Reconfigurable Processor, Single Plane Multiple Function, Single Function Multiple Plane, Reconfigurable Part, Dynamic Loading, Fibonacci numbers..

励磁方式 1相励磁 2相励磁 1-2相励磁 W1-2相励磁 2W1-2相励磁 4W1-2相励磁. Full Step Half Step Quarter Step Eighth Step Sixteenth

Annex 2 :Illustrative Examples of selection of analytical validation testing methodology for common analytical

本プロジェクトでは、海上技術安全研究所で開発された全船荷重・構造⼀貫強度評価システム (Direct Load and Structural Analysis

瀬戸内千代:第 章第 節、コラム 、コラム 、第 部編集、第 部編集 海洋ジャーナリスト. 柳谷 牧子:第