.NET Micro Framework
Das .NET Micro Framework von Microsoft ist ein Abkömmling des .NET Frameworks zur Programmierung von Embedded-Systemen mit geringen Ressourcen wie Getränkeautomaten oder Bordsystemen in Automobilen.
.NET Micro Framework
| |
---|---|
Basisdaten
| |
Entwickler | Microsoft |
Erscheinungsjahr | ca. 2007 |
Aktuelle Version | 4.4 (ca. Okt. 2015[1]) |
Betriebssystem | Microsoft Windows |
Programmiersprache | C++ |
Kategorie | Plattform |
Lizenz | Apache-Lizenz 2.0 |
deutschsprachig | nein |
www.netmf.com/ netmf.github.io/ (ab Version 4.4) netmf.codeplex.com/ (bis Version 4.3) |
Überblick
BearbeitenSo wird beispielsweise die MSN Watch mit dem .NET Micro Framework betrieben. Ein weiterer Einsatzbereich sind Sideshow Gadgets, die von Windows Vista unterstützt werden. Die Firma Digi International hat im April 2007 mit ihrem Kommunikationsmodul Digi Connect ME die erste Ethernet-Netzwerklösung vorgestellt.
Das Entwicklungskonzept basiert auf dem .NET Framework. Als Programmiersprache kommt jedoch nur C# zur Verwendung.
Technische Einzelheiten
BearbeitenDie Entwicklung mit dem Micro Framework ist grundlegend anders als die Entwicklung für Windows CE mit dem .NET Compact Framework. Das Micro Framework selbst fungiert als Betriebssystem direkt auf der Hardware. Eine entsprechende Hardwareabstraktionsschicht ist im Micro Framework integriert.
Das Micro Framework ist kein Echtzeitsystem. Der Code wird nicht wie bei den anderen .NET Frameworks üblich mit Hilfe des Just-in-time-Compilers zur Laufzeit kompiliert, sondern interpretiert. Die damit einhergehenden Geschwindigkeitseinbußen können jedoch kompensiert werden, indem die performancekritischen Codesegmente als nativer Code implementiert und über Interop aufgerufen werden.
Hardwareabstraktionsschicht
BearbeitenDie Hardwareabstraktionsschicht (HAL) kann mit Hilfe von Delegaten und Ereignissen mit der Common Language Runtime (CLR) kommunizieren. Somit ist es möglich, das Gerät in einen Schlafzustand zu versetzen, jedoch immer noch in der Lage zu sein, auf bestimmte Ereignisse zu reagieren.
Treiber im HAL
BearbeitenFolgende Treiber sind im HAL bereits integriert:
- Gepufferter serieller RS-232 I/O
- Serial Peripheral Interface (SPI) mit 13,8 MHz
- Monochrom LCD (120 × 96)
- Batterieüberwachung (Temperatur, Spannung und Ladezustand)
- Bluetooth
- 802.15.4 low-rate Wireless Personal Area Networking (WPAN)
- Flash (parallel) und EEPROM (seriell) Speicher
- Kalibrierte Zeit
- Boolesche Ausgaben (Hintergrundbeleuchtung, Vibration etc.)
- Boolesche Eingänge (Schaltflächen etc.)
- PWM-Ausgänge (Piezolautsprecher, Dimmer, Vibration)
Mit dem Micro Framework ist es weiterhin möglich, Treiber in Managed Code zu schreiben.
Multithreading
BearbeitenDas Micro Framework stellt Multithreading bereit, selbst wenn die zu Grunde liegende Hardware dies nicht unterstützt. Genau betrachtet handelt es sich bei der Execution Engine nicht um eine multithread-fähige Engine. Vielmehr kann diese als Simulator einer solchen betrachtet werden. Der Kontextwechsel erfolgt in 20-ms-Abständen, Threads sind priorisierbar und unterstützen Unterbrechungen.
Garbage Collection
BearbeitenAuch der Garbage Collector hat einige Änderungen erfahren. Auf Grund des meistens sehr kleinen Arbeitsspeichers auf den Zielsystemen wurde auf einen hierarchischen Garbage Collector verzichtet. Stattdessen wird ein Mark-And-Sweep-Algorithmus benutzt. Dieser wird zusätzlich durch Ablage von Metadaten auf dem Heap optimiert.
Um die Nutzung des Arbeitsspeichers weiter zu verbessern, wurde der Garbage Collector dahingehend erweitert, dass er Daten in nicht flüchtigen Speicher auslagern kann, wenn die zugehörige Anwendung inaktiv ist.
Klassenbibliothek
BearbeitenDas Micro Framework enthält eine Untermenge der Klassen des .NET Frameworks. Bei der Auswahl der Namensräume wurde darauf geachtet, lediglich die Teile in das Micro Framework zu integrieren, die für den Betrieb kleiner, autonomer Geräte nötig sind.
Neben den Namensräumen des .NET Frameworks wurde der Namensraum SPOT hinzugefügt, der lediglich im Micro Framework zur Verwendung kommt. SPOT bedeutet Smart Personal Objects Technology[2] und ist die Microsoft-Terminologie für elektronische Geräte wie Uhren, Wecker, Schlüsselanhänger etc., die deren Besitzer Informationen zugänglich machen.
Die vollständig oder teilweise geerbten Namensräume der .NET Base Class Libraries:
- System
- System.Collections
- System.Diagnostics
- System.Globalization
- System.IO
- System.Net
- System.Net.Sockets
- System.Reflection
- System.Resources
- System.Runtime.CompilerServices
- System.Runtime.InteropServices
- System.Runtime.Remoting
- System.Runtime.Text
Die neu hinzugefügten Namensräume für intelligente persönliche Objekte:
- Microsoft.SPOT
- Microsoft.SPOT.Cryptography
- Microsoft.SPOT.Hardware
- Microsoft.SPOT.Input
- Microsoft.SPOT.Net.NetworkInformation
- Microsoft.SPOT.Presentation
- Microsoft.SPOT.Presentation.Controls
- Microsoft.SPOT.Presentation.Media
- Microsoft.SPOT.Presentation.Shapes
Änderungen in Version 2.5
BearbeitenDas .NET Micro Framework 2.5 wurde mit einem TCP/IP-Stack erweitert. Darauf aufbauend wurde ein DPWS-Stack in das Micro Framework integriert. Dieser DPWS-Stack wurde eigens für das Micro Framework in Managed Code entwickelt und trägt den Namen MFDPWS. Er stellt eine Untermenge des DPWS-Standards dar. Durch den DPWS-Stack ist es nun möglich, Web-Services for Devices (WSD) zu nutzen. Dabei kommunizieren die Netzwerkteilnehmer über SOAP und können Dienste des jeweils anderen Teilnehmers nutzen.
Technische Voraussetzungen
BearbeitenAktuell unterstützt das Micro Framework ARM7 und ARM9 Prozessoren sowie Analog Devices Blackfin. Das Zielsystem muss über mindestens ~128 kB RAM und 512 kB Flash/ROM zur Entwicklung verfügen. Im laufenden Betrieb hat das Micro Framework mindestens eine Größe von 390 kB. Die Größe ist abhängig von der Menge der verwendeten Funktionen.
Für die Installation und das Debugging benötigt das Gerät eine serielle, USB- oder Netzwerkschnittstelle.
Entwicklungsumgebung
BearbeitenAls Integrierte Entwicklungsumgebung kommt Microsofts Visual Studio 2008 oder höher in Verbindung mit dem .NET Micro Framework SDK zum Einsatz. Außerdem benötigt man das Board Support Package für das jeweilige Gerät.
Siehe auch
BearbeitenLiteratur
Bearbeiten- Jens Kuhner: Expert .NET Micro Framework. 2. Auflage 2009, Apress Verlag
Weblinks
BearbeitenEinzelnachweise
Bearbeiten- ↑ .NET Micro Framework 4.4 is now available! ( vom 11. Dezember 2015 im Internet Archive)
- ↑ Microsoft News Center: Microsoft Launches Smart Personal Object Technology Initiative