PAVEL BÁNSKÝ PREMIER FIELD ENGINEER MICROSOFT
Windows Mobile Smartphone
„Oblékatelná“ zařízení Sensorové body
Pokladní systémy Windows Mobile Pocket PC Phone
Bezpečnost Windows Automotive
Windows terminály
Vista SideShow
Zdravotnické přístroje Portable Media Center
Domácí spotřebiče
VoIP Telefony
Zdravotnické přístroje
Zábavní zažízení Mobilní zařízení Dálkové ov ládání
Set-top Box Síťová zařízení
.NET Micro Framework
Windows Embedded CE
Windows XP Embedded
Nároky na funkcionalitu Nároky na prostředky
.NET Micro Framework
Windows Embedded CE
Windows XPe
Vzorový produkt
Sensorové body, SideShow, Monitoring, Dálkové ovladače, Robotika
GPS navigace, PDA, Automotive, Set Top Boxy
Tencí klienti, Bankomaty, Kiosky
Vlastnosti produktu
Malý, Připojený, Nositelný, Grafické UI
Připojený, Grafické UI, Server, Prohlížeč, Vzdálený přistup, DirectX
Výkon a konektivita PC
Velikost
200-400Kb managed code
300Kb + native kernel podle požadavků
40Mb + podle požadavků
Napájení
Velmi nízká spotřeba
Nízká spotřeba
Běžná spotřeba
CPU
ARM7, ARM9, Cortex, SH2, Blackfin, Bez MMU
X86, MIPS, SH4, ARM, nutné MMU
X86
Real-time
Soft Real-time v řízeném kódu
Hard Real-time
Real-time (s přidáním komponent třetí strany)
Řízený vs. nativní
Řízený
Obojí, řízený kód vyžaduje Compact Framework
Obojí, řízený kód vyžaduje .NET Framework
Co je to .NET Micro Framework? Architektura Nářadí a vývoj Vlastnosti Práce s IO porty Uživatelské rozhraní Sériové sběrnice Síť MF Deploy Emulátor
Porting kit Distribuce Jak začít?
Reimplementace desktopového CLR pro embedded zařízení, na kterých nemůže běžet operační systém „Bootovatelný .NET“
Velmi malý „otisk“ v paměti Kompletně modulovatelný 512 KB ROM, 256 KB RAM pro plnou funkčnost Windows CE and Compact Framework potřebuje 10MB ROM a 10 RAM
Typická cena CPU od $2 do $10
Zařízení se stávají doplňky desktopu i webu Zařízení jsou on-line Stále rychlejší time-to-market Rychle se rozvíjející odvětví 32-bitových MCU bez MMU Rozvíjející se velmi inovativní trh
„Bootovatelný“ .NET Výhody řízeného kódu blízko „železa“
Velmi podobné principy jako při vývoji pro desktop Nemusí být nutně pro všechny druhy aplikací Důraz na robustní vývojové prostředí, bezpečnost kódu Vysoký stupeň integrace s ostatnímy Microsoft produkty
SDK
Uživatelské aplikace a knihovny
Knihovny
WPF
KOM.
Řízený kód
...
Nativní kód
CLR Porting Kit
.NET Běhové Prostředí
PAL
HAL
Typový Systém
Časovače
Ovladače
Garbage Collector
RAM
nebo Hardware
Interop
I/O
Vybavení
OS
Garbage Collector Mark-and-Sweep / Stop-the-World
Just-In-Time kompilace Program je vždy interpretován Do budoucna bude k dispozici Ngen.exe
Vlákna Priority, přerušování Přepínání po 20ms
Časovače Pravidelné, jednorázové Znovunačasování až po obsluze předchozí události
Try, Catch, Finally Native Interop Volání C++ kódu ze C#
String UTF-8
Reflection Serialization Síťování HTTP(s) DPWS Wi-Fi
Resources Text BMP, GIF, Jpeg Font
Flash paměť Využívá se algoritmu pro prodloužení životnosti ExtendedWeakReference
Filesytsem USB
Microsoft Visual Studio projekty a vzory projektů hahrávání aplikace do zařízení (USB / serial / TCP/IP) debugging Breakpoints Memory inspection Tracing
Emulátor
SDK
Podpora pro poslední verzi Visual Studia Post-procesing do .NET MF kompaktního formátu Wizardy Emulátor Deploymet a debugging pro emulátor a zařízení Příklady Konvertor fontů Diagnostické nástroje Dokumentace Kompatibilní s Visual Studio Express
InputPort čtení vstupních pinů pull-up, pull-down resistor
InterruptPort generuje událost při změně vstupu sledování hran filtr proti zákmitům
OutputPort ovládání výstupních pinů zapsaná hodnota lze přečíst
TristatePort pro vstup i výstup na stejném pinu
Založeno na Windows Presentation Foundation
Podpora dotykového displeje .TouchDown / .TouchUp události
Gesta InkCanvas
Podpora více druhů písma bitmapové fonty
převod z true-type fontů
Podpora bitmapových formátů bmp, gif, jpeg možnost načíst bajtové pole
UIElement
Control
Image
Content Control
Border
ListBox
ListBoxItem
ScrollViewe r
Window
InkCanvas
Panel
Text
TextFlow
Shape
Canvas
Ellipse
StackPanel
Line
Polygon
Rectangle
Sériová komunikace I2C SPI UART
Síť UDP / TCP DHCP HTTP(s), DPWS
Další USB 802.11 – WiFi 802.15.4 – ZigBee (nedokumentováno)
SerialPort „totožné s plným Frameworkem“ méně metod
SPI
sériová sběrnice pro více zařízení čtyři vodiče (data-in, data-out, clock, chip-select) chip select přes GPIO
I2CDevice sériová sběrnice pro více zařízení dva vodiče (data, clock) adresovatelná zařízení
Ethernet HttpWebRequest, HttpWebResponse, HttpListener HTTP 1.1 SSL a X.509 certifikáty
DPWS WSDL 1.1, SOAP 1.2 WS-Adressing WS-MetadataExchange WS-Transfer, WS-Eventing, WS-Recovery Kompatibilní s WCF Soap binding Nástroje pro generování kódu z WSDL
802.15.4 zatím nedokumentováno
Spouštěcí impuls 10 ms
PIN 1
Impuls úměrný vzálenosti 100 ms – 25ms
PIN 2
Vytvářené uživatelského rozhraní Konfigurace komponent Vytváření komponent
Managed Application Emulator
Emulator Component
Emulator Component
Custom Emulator Components
Configuration Engine
Nahrávání „firmware“ do zařízení Náhrávaní aplikace do zařízení Konfigurace sítě Konfigurace specifických nastavení zařízení Ping zařízení Programovatelné rozhraní
SDK
Uživatelské aplikace a knihovny Knihovny
Porting Kit
CLR
Microsoft + Výrobce platormy
.NET
WPF
KOM.
...
Běhové Prostředí
Typový Systém
Garbage Collector
Interop
PAL
HAL
Génius (ISV)
Časovače
Ovladače
RAM
nebo Hardware
Microsoft + Výrobce platformy
I/O
Vybavení
Microsoft
OS
Microsoft + Výrobce platformy
Vše co potřebujete k rozběhání .NET MF na koncovém hardwaru Porting kit umožňuje Vytvářet vlastní drivery Vytvářet vlastní objektový model Modifikovat runtime
Podporuje hlavní vývojové nástroje ARM RVDS, Keil MDK, GCC, HEW, Visual DSP++ Obsahuje vzorové porty přímo od výrobců jako Atmel a NXP pro nejrozšířenější procesory
Typická Aplikace 1. Instalace Visual Studia 2. Instalace .NET Micro Framework SDK 3. Vývoj C# aplikace 4. Zakoupení hardwaru 5. Prodej výsledného produktu
Použití Interop 1. Využít Porting Kit 2. Získání BSP od partnera nebo z porting kitu 3. Napsání nativního kódu 4. Vytvoření interfejsu z managed do native 5. Vytvoření nové HAL/PAL vrstvy použitím nativního kompilátoru
Vlastní Hardware 1. 2. 3. 4.
5.
Vybrání procesoru Využít Porting Kit Využití „pomocníka“ pro tvorbu nové platformy Implementace HAL/PAL funkcí pro BSP Kompilace HAL/PAL nativním kompilátorem
.NET Micro Framework je dostupný pod licencí Apache 2.0 včetně zdrojového kódu (od 16.11.2009) Zdrojáky pro runtime, objektový model a drivery jsou dostupné zdarma TCP/IP stack smí být použit pouze ve spojení s .NET Micro Frameworkem Zdrojové kódy pro kryptografii nejsou dostupné
Pro profesionály i nadšence Komunitní vývoj
Microsoft dohlíží nad finální verzí společně s komunitní radou starších Komutní web pro výměnu kódu i zkušenností Microsoft oficiálně podporuje poslední verzi .NET MF Přispěvatelé jsou vítáni
HTTP(s) Verzování Rychlejší XML parser a kolekce Rychlejší grafické rozhraní Power level control TimeSync Neomezená velikost dipleje Atmel AT91SAM9RL64 ARM9 NXP LPC2478 ARM 7 Renesas SH2/A SH7619
Visual Studio Stačí Express edice!!!!
.NET Micro Framework SDK Knihovny Příklady Vzory projektů Nástroje Emulátor
Hardware
Meridian CPU i.MXS Freescale 100 MHz SDRAM 8 MB (32 MB) Flash 2 MB (4 MB) LCD Hitachi 320x240 16x GPIO 2x UART 1x SPI 1x I2C 1x PWM JTAG USB
Vývojová deska Tahoe II
http://www.devicesolutions.net
Literatura Embedded Programming with the Microsoft® .NET Micro Framework Expert .NET Micro Framework
Oficiální zdroje http://www.microsoft.com/netmf http://blogs.msdn.com/netmfteam http://www.netmf.com
Diskusní skupiny microsoft.public.dotnet.framework.microframework microsoft.public.dotnet.framework.microframework.porting
Komunita http://www.microframework.cz/ http://www.microframework.nl/ http://bansky.net/blog
© 2006 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.