|
Windows CE Device Drivers - Corso Aziendale |
Windows CE e' un sistema operativo con prestazioni soft real-time, disponibile per un buon numero di processori e particolarmente indicato per sistemi embedded. Uno dei grandi pregi di Windows CE e' la possibilita' di utilizzare gran parte dei tool e delle conoscenze gia' apprese per Win32, tra cui anche la possibilita' di sviluppare codice .NET (con il cosiddetto Compact Framework).
Tuttavia, sviluppare per Windows CE significa di solito scrivere anche porzioni di codice vicine all'hardware, tipicamente per gestire periferiche custom. Non di rado, e' anche necessario customizzare la piattaforma, ritagliando quanto e' necessario, escludendo le parti non utili del sistema operativo, e personalizzando la gestione di alcuni device. Anche in questo caso, puo' essere utile od indispensabile conoscere meglio l'architettura di dettaglio del sistema, ad esempio per ridurre al minimo la latenza di un interrupt gestendolo direttamente al livello OEM Abstraction Layer (OAL) anziche' attendere che venga riflesso in user mode.
Questo corso si prefigge l'obiettivo di introdurre l'architettura dei driver di Windows CE, sia per i piu' semplici driver "user mode" (Stream Driver) che per i driver nativi, scendendo sino all'esame delle piu' importanti porzioni del codice del sistema operativo.
Per chi si avvicina per la prima volta alla programmazione di sistema in Windows [CE], e' altresi' prevista la possibilita' di approfondire preliminarmente alcuni argomenti sugli strati piu' alti del sistema operativo (thread, primitive di sincronizzazione, ecc) che risultano indispensabili per comprendere a fondo il modello dei driver.
Dettagli sul corso
Durata: da 3 a 5 giorni in funzione degli argomenti selezionati, dell'approfondimento e del numero di esercizi.
(con possibilità di ulteriori giornate di workshop basate sul codice ed i progetti dell'azienda)
Partecipanti: massimo 10.
Prerequisiti: Conoscenza di base della programmazione embedded (familiarita' con i concetti di interrupt, I/O, ecc). Il corso assume una conoscenza di base del linguaggio C. Se non si ha familiarita' con la programmazione di sistema in ambiente Windows 2000 / XP o CE (quindi: conoscenza di concetti come semafori, thread, eventi, memory mapped file, ecc) e' consigliabile optare per la versione estesa del corso (5gg) che introduce anche questi argomenti.
Programma del corso:
Windows CE System Programming (optional)
Architecture
Processes, Threads, Fibers
Synchronization primitives
Memory Architecture
Virtual Memory API
Heap; Optimizing an application footprint
Memory Mapped File
More Shared Memory Techniques
Named Message Queues
Thread Local Storage
Dynamic-Link Libraries (DLLs)
Device I/O
Object Store
Windows CE Database
TCP Socket
IRDA Socket
Bluetooth Socket
Serial Port
WNET & Disk Mapping
Driver Architecture
Built-in (or Native) Drivers
Installable (or Streams) Drivers
Hybrid Drivers
Bus Drivers
OAL (OEM Abstraction Layer)
Interrupt handling
Interrupt Service Routine - Interrupt Service Thread
Services Vs. Drivers - The Superservice
Stream Interface Drivers
Device Manager
Standard functions & responsibilities
Init, Deinit, Open, Close, Read, Write, Seek, IOControl, PowerDown, PowerUp
Hardware access - Process Memory Access
Power Management
I/O Resource Manager
Registry enumerator
Sample Stream Driver
Services
Standard functions & responsibilities
Init, Deinit, Open, Close, Read, Write, Seek, IOControl, PowerDown, PowerUp.
Using the SuperService
Sample Services
Interrupts in User Mode
Interrupt Service Thread
Nesting, Priorities and Latencies
Samples
Physical Memory Access in User Mode
OAL and the Native Drivers
Image File, Boot Loader, Boot Sequence
Inside the OAL Source Code
StartUp
KernelStart / KernelInitialize (x86)
OEMInitDebugSerial
OEMInit
OEMInterruptEnable()
OEMGetInterrupt()
OEMRequestSysIntr()
OEMTranslateIrq()
OEMTranslateSysIntr()
Writing your own Interrupt Service Routine
Power Management in OAL
Platform Builder Drivers Tour
PCI
Battery
PCMCIA
Keyboard
Display
Audio
USB
Network
File System Driver
Creating an Image
Se siete interessati a questo seminario aziendale, potete compilare la
seguente
richiesta di contatto per fissare un possibile incontro.