HIDEYATAKANE COMRADE CORP. Agenda OSが動作するには? BootLoader概要 OAL概要 KITL概要 DeviceDriver概要 CE開発環境 OSのチューニング方法 OSが動作するには BootLoader ハードウエアの初期化 OSイメージのロード BootLoader ROM/RAMもしくは HostPCに格納された OSイメージ 通称NK.bin Hardware OSが動作するには OSイメージの展開 OSとしての初期化 スタート Application Service CE Kernel OAL Drivers Hardware KITL OSが動作するには OAL,KITL,Drivers OAL=Kernelが必要とするハード依存コード KITL=Hostとの通信やDebug用のコード Drivers=各種ハードウエア向けDriver HostPC CE Kernel OAL RTC Timer Drivers LCD Audio KITL Serial Ether Host Hardware OSが動作するには BSPとは Board Support Packageの略 ハードウエア依存のモジュールを集めたもの BootLoader OAL Drivers KITL BSP BootLoader概要 BootLoaderの主な作業 CPUやメモリの初期化 SerialやLEDなど、デバッグポートの初期化 デバッグ機能を有効にする 各種ハードウエアの初期化 Ethernet機能を有効にする DownLoad機能を有効にする 目的の場所からdownloadおよびOSの展開 OSに処理を渡す BootLoader概要 Step1 Main Startup CPU 初期化 メモリ 初期化 LED 初期化 ・・・・・ BL COMMON BootLoader概要 Step2 BootLoaderMain 初期化 OEM DebugInit OEM PlatformInit Debug ・・・・ OEM ReadDebug Byte OEM WriteDebug Byte ・・・・ BootLoader概要 Step3 BootLoaderMain Ethernet OEM Eth GetFrame OEM Eth SendFrame Download ・・・・ OEM ReadData OEM Show Progress OS ・・・・ BootLoader概要 eBoot どちらを使用する? NK.bin NK.bin Ethernet TargetBoard HostPC BootLoader概要 CEPC Windows Vistaなどが動作するx86アーキテ クチャ上でWindow sCEを動作させる BootLoaderと基本BIOSが搭載済み LoadCEPC.exeによりWindows CEを起動 基本デバッグに有効 OAL概要 OALとは? Oem Adaptation Layerの略 Kernelが動作するために必要なハード依存部 分のモジュール群 BootLoaderと同等の作業+α メモリマップ、各種クロック設定などもOAL 既定のライブラリの中身を開発 OAL概要 OALの構造 CE Kernel OAL ... Power Library IOCTL Library Interrupt Library OS Timer Library Cache Library Cache Startup Library RTC Library Timer Hardware(CPU) RTC KITL概要 KITLとは? KernelIndependentTransportLayerの略 TargetBoardのKernelとHostPCを接続し、 デバッグやリモート操作などを可能にする 通信経路として、USB,Serial,Ethernetなどをサ ポート KITL概要 KITLの構造 CE Kernel Kernel Debugger KITL HostPC KITL IOCTL PKITLTRANSPORT Hardware USB Serial Ethernet Host Hardware KITL概要 KITLにできること KITL Debugger Shell RemoteTool Break Point Memory read/write Step etc Command File Viewer etc Registry editor KITL概要 KITL応用(MontecarloProfile) システムの遅延調査として有効 一定期間の全タスクの稼働頻度を計測 実装 OEMProfileTimerDisable()の実装 OEMProfileTimerEnable()の実装 OEMInterruptHandler()内で適切にProfilerHit()をコール 実行 「Target Control」で「Profon」と「Profoff」 Viewerに稼働頻度の高い順にTaskを表示 Device Driver概要 DeviceDriverとは? TargetBoardが持つI/Oをコントロール Kernelとは無関係に動作するもの KernelModeとUserModeの2種類が存在 インターフェースに規定がある Device Driver概要 DeviceDriverの体系 UMD Host Process Driver Driver CE Kernel DeviceManeger Driver Driver BusDriver File System Manager File System Driver File System Driver Graphics, Windows, Events (GWES) Mouse Driver Display Driver Hardware Device Driver概要 UserModeDriver Application UMD Host Process UserMode Driver CE Kernel DeviceManeger Reflecor Service Device Driver概要 KernelModeDriver Application CE Kernel DeviceManeger KernelMode Driver Device Driver概要 KernelModeDriver VS UserModeDriver DeviceDriver Topic KernelMode パフォーマンス 〇 〇 安全性 ハードウエアアクセス 〇 〇 〇 ユーザインターフェース Win API Kernel API UserMode 〇 Device Driver概要 Device Driverのインターフェース DLLENTRY INIT DEINIT OPEN CLOSE READ WRITE SEEK IOCONTROL POWERON POWEROFF (ドライバーの有効化と無効化) (ドライバの初期化) (ドライバーの終了処理) (ドライバーのオープン) (ドライバーのクローズ) (デバイスからの読み込み) (デバイスへの書き込み) (ポイントのシーク) (ドライバー独自の呼び出し) (電源ON時の処理) (電源OFF時の処理) Device Driver概要 IOCONTROL例 無線LAN OID一覧 OID 概要 OID_802_11_BSSID BSSID を取得します。 OID_802_11_SSID SSID を取得/設定します。 OID_802_11_ADD_WEP WEP キーを設定します。 OID_802_11_ADD_KEY 認証/暗号キーを設定します。 OID_802_11_RSSI 電波強度を取得します。 ・・・ ・・・ CE開発環境 Platform Builder VisualStudio2005のプラグインツール x86,ARM,SHx,mipsをサポート Kernelソースコードの利用を指定 CEの開発環境一式が含まれる Compiler Debugger Viewer(RemoteTool) etc 多くのBSPサンプルが含まれる MainStoneⅢ PXA27X(ARM) NEC DDB Vr5500A(MIPS) St Micro STi7109(SH4) HP Compaq t5530(x86) etc HIDEYATAKANE COMRADE CORP. CE開発環境 CE開発の実情 組込み機器で採用されることを想定したリファレンスボードには、 そのボードが動作するためのBSPが付属していることが多い。 CEでOSを開発する場合、1からBSPを開発することは少なく、 このようなリファレンスBSPをベースにするケースが多い。 BootLoader OAL Drivers KITL Reference BSP OSのチューニング方法 QFE Windows Embedded CEは最新のQFEが必須 QFEは毎月のペースでリリースされている 差分提供であるため、全適用が基本 「CE Update Check」が有効 OSのチューニング方法 QFE スレッドプライオリティーの設定(1) 例)PrinterDriver > WLANDriver > USBDriverであるため、 USB Driverが処理しようとしても、 上位スレッドが優先されて呼ばれるため、 全体的なボトルネックが発生してしまう。 PrinterDriver Priority=60 USBDriver Priority=240 WLANDriver Priority=120 OSのチューニング方法 QFE スレッドプライオリティーの設定(2) 実際には多様に絡み合うので、プライオリティーの設定は 慎重にかつ適切に行う必要がある PrinterDriver USBDriver WLANDriver APP NDIS LANDriver PCIDriver HDDDriver © 2006 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
© Copyright 2025 ExpyDoc