„.NET Micro Framework“ – Versionsunterschied
[gesichtete Version] | [gesichtete Version] |
KKeine Bearbeitungszusammenfassung |
Version von Wikidata |
||
(20 dazwischenliegende Versionen von 15 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
{{Veraltet|dieses Artikels|Seit 2010 keine substanzielle Erweiterung des Artikels. Z.B. fehlt die Übergabe des Codes an die Community gänzlich.|seit=2010}} |
{{Veraltet|dieses Artikels|Seit 2010 keine substanzielle Erweiterung des Artikels. Z. B. fehlt die Übergabe des Codes an die Community gänzlich.|seit=2010}} |
||
{{Infobox Software |
|||
{{Infobox_Software| |
|||
|Name= |
|||
|Screenshot= |
|Screenshot= |
||
|Beschreibung= |
|Beschreibung= |
||
|Hersteller= [[Microsoft]] |
|Hersteller= [[Microsoft]] |
||
|Erscheinungsjahr = ca. 2007 |
|||
|AktuelleVersion= |
|AktuelleVersion= <!-- Wikidata --> |
||
|AktuelleVersionFreigabeDatum= 10. Februar 2014 |
|||
|AktuelleEntwicklungsVersion= |
|||
|AktuelleEntwicklungsVersionFreigabeDatum= |
|||
|Betriebssystem= |
|Betriebssystem= |
||
|Kategorie= [[Plattform (Computer)|Plattform]] |
|Kategorie= [[Plattform (Computer)|Plattform]] |
||
|Lizenz= [[Apache-Lizenz 2.0]] |
|Lizenz= [[Apache-Lizenz 2.0]] |
||
|Deutsch= nein |
|Deutsch= nein |
||
|Website= [http://www. |
|Website= [http://www.netmf.com/ www.netmf.com/]<br />[http://netmf.github.io/ netmf.github.io/] <small>(ab Version 4.4)</small><br />[http://netmf.codeplex.com/ netmf.codeplex.com/] <small>(bis Version 4.3)</small> |
||
}} |
}} |
||
Das |
Das '''.NET Micro Framework''' von [[Microsoft]] ist ein Abkömmling des [[.NET Framework]]s zur Programmierung von [[Eingebettetes System|Embedded-Systemen]] mit geringen Ressourcen wie Getränkeautomaten oder Bordsystemen in Automobilen. |
||
==Überblick== |
== Überblick == |
||
So wird beispielsweise die MSN Watch mit dem .NET Micro Framework betrieben. Ein weiterer Einsatzbereich sind [[Windows SideShow|Sideshow Gadgets]], die von [[Microsoft Windows Vista|Windows Vista]] unterstützt werden. Die Firma Digi International hat im April 2007 mit ihrem Kommunikationsmodul |
So wird beispielsweise die MSN Watch mit dem .NET Micro Framework betrieben. Ein weiterer Einsatzbereich sind [[Windows SideShow|Sideshow Gadgets]], die von [[Microsoft Windows Vista|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-Sharp|C#]] zur Verwendung. |
Das Entwicklungskonzept basiert auf dem .NET Framework. Als Programmiersprache kommt jedoch nur [[C-Sharp|C#]] zur Verwendung. |
||
==Technische Einzelheiten== |
== Technische Einzelheiten == |
||
Die Entwicklung mit dem Micro Framework ist grundlegend anders als die Entwicklung für [[Windows CE]] mit dem [[.NET Compact Framework]]. Das Micro Framework |
Die 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-Compilierung|Just- |
Das Micro Framework ist kein [[Echtzeitsystem]]. Der Code wird nicht wie bei den anderen .NET Frameworks üblich mit Hilfe des [[Just-in-time-Compilierung|Just-in-time-Compilers]] zur Laufzeit kompiliert, sondern [[Interpreter|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 === |
|||
===Hardware Abstraction Layer=== |
|||
Die [[Hardwareabstraktionsschicht]] (HAL) kann mit Hilfe von Delegaten und Ereignissen mit der [[Common Language Runtime|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==== |
==== Treiber im HAL ==== |
||
Folgende Treiber sind im HAL bereits integriert: |
Folgende Treiber sind im HAL bereits integriert: |
||
* Gepufferter serieller [[ |
* Gepufferter serieller [[RS-232]] I/O |
||
* [[Serial Peripheral Interface|Serial Peripheral Interface (SPI)]] mit 13,8 MHz |
* [[Serial Peripheral Interface|Serial Peripheral Interface (SPI)]] mit 13,8 MHz |
||
* Monochrom [[ |
* Monochrom [[Flüssigkristallanzeige|LCD]] (120 × 96) |
||
* Batterieüberwachung (Temperatur, Spannung und Ladezustand) |
* Batterieüberwachung (Temperatur, Spannung und Ladezustand) |
||
* [[Bluetooth]] |
* [[Bluetooth]] |
||
Zeile 44: | Zeile 42: | ||
* [[Flash-Speicher|Flash]] (parallel) und [[EEPROM]] (seriell) Speicher |
* [[Flash-Speicher|Flash]] (parallel) und [[EEPROM]] (seriell) Speicher |
||
* Kalibrierte Zeit |
* Kalibrierte Zeit |
||
* Boolesche Ausgaben (Hintergrundbeleuchtung, Vibration |
* Boolesche Ausgaben (Hintergrundbeleuchtung, Vibration etc.) |
||
* Boolesche Eingänge (Schaltflächen etc.) |
* Boolesche Eingänge (Schaltflächen etc.) |
||
* [[Pulsweitenmodulation|PWM]]-Ausgänge ([[Piezolautsprecher]], Dimmer, Vibration) |
* [[Pulsweitenmodulation|PWM]]-Ausgänge ([[Piezolautsprecher]], Dimmer, Vibration) |
||
Zeile 50: | Zeile 48: | ||
Mit dem Micro Framework ist es weiterhin möglich, Treiber in [[Managed Code]] zu schreiben. |
Mit dem Micro Framework ist es weiterhin möglich, Treiber in [[Managed Code]] zu schreiben. |
||
===Multithreading=== |
=== Multithreading === |
||
Das 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. |
Das 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=== |
=== Garbage Collection === |
||
Auch 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 [[ |
Auch 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 [[Automatische Speicherbereinigung#Mark-and-Sweep-Algorithmus|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. |
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=== |
=== Klassenbibliothek === |
||
Das Micro Framework |
Das Micro Framework enthält eine Untermenge der Klassen des [[.NET Framework]]s. Bei der Auswahl der [[Namensraum|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<ref>Microsoft |
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<ref>Microsoft News Center: ''[https://news.microsoft.com/2002/11/17/microsoft-launches-smart-personal-object-technology-initiative/ Microsoft Launches Smart Personal Object Technology Initiative]''</ref> 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: |
Die vollständig oder teilweise ''geerbten'' Namensräume der .NET Base Class Libraries: |
||
Zeile 92: | Zeile 90: | ||
* Microsoft.SPOT.Presentation.Shapes |
* Microsoft.SPOT.Presentation.Shapes |
||
==Änderungen in Version 2.5== |
== Änderungen in Version 2.5 == |
||
Das .NET Micro Framework 2.5 wurde mit einem [[TCP/IP]]-[[Protokollstapel|Stack]] erweitert. Darauf aufbauend wurde ein [[Devices Profile for Web Services| |
Das .NET Micro Framework 2.5 wurde mit einem [[TCP/IP]]-[[Protokollstapel|Stack]] erweitert. Darauf aufbauend wurde ein [[Devices Profile for Web Services|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== |
== Technische Voraussetzungen == |
||
Aktuell unterstützt das Micro Framework [[ARM-Architektur|ARM7]] und ARM9 Prozessoren sowie [[Analog Devices]] [[Blackfin]]. Das Zielsystem muss über mindestens ~128 |
Aktuell unterstützt das Micro Framework [[ARM-Architektur|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. |
Für die Installation und das Debugging benötigt das Gerät eine serielle, USB- oder Netzwerkschnittstelle. |
||
==Entwicklungsumgebung== |
== Entwicklungsumgebung == |
||
Als [[Entwicklungsumgebung]] kommt Microsofts [[Microsoft Visual Studio|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. |
Als [[Integrierte Entwicklungsumgebung]] kommt Microsofts [[Microsoft Visual Studio|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 == |
== Siehe auch == |
||
Zeile 115: | Zeile 113: | ||
* [http://msdn.microsoft.com/en-US/netframework/bb267253.aspx .NET Micro Framework bei Microsoft] |
* [http://msdn.microsoft.com/en-US/netframework/bb267253.aspx .NET Micro Framework bei Microsoft] |
||
* [http://msdn.microsoft.com/de-de/embedded/bb278106.aspx Microsoft-Artikel: „What is .NET Micro Framework?“] |
* [http://msdn.microsoft.com/de-de/embedded/bb278106.aspx Microsoft-Artikel: „What is .NET Micro Framework?“] |
||
* [http://www.netmf.com Webportal zum .NET Micro Framework] |
* [http://www.netmf.com/ Webportal zum .NET Micro Framework] |
||
* [http://www.elektronikpraxis.vogel.de/themen/embeddedsoftwareengineering/implementierung/articles/92518/ Übersichtsartikel unabhängiger Autoren zu .NET Micro Framework] |
* [http://www.elektronikpraxis.vogel.de/themen/embeddedsoftwareengineering/implementierung/articles/92518/ Übersichtsartikel unabhängiger Autoren zu .NET Micro Framework] |
||
* [http://www.digi.com/products/embeddedsolutions/digiconnectme.jsp Produktwebseite des Digi Connect ME] |
|||
==Einzelnachweise== |
== Einzelnachweise == |
||
<references/> |
<references /> |
||
{{SORTIERUNG:Net Micro Framework}} |
{{SORTIERUNG:Net Micro Framework}} |
Aktuelle Version vom 2. Februar 2025, 11:43 Uhr
.NET Micro Framework
| |
---|---|
![]() | |
Basisdaten
| |
Entwickler | Microsoft |
Erscheinungsjahr | ca. 2007 |
Aktuelle Version | 4.4[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) |
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.
Überblick
[Bearbeiten | Quelltext bearbeiten]So 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
[Bearbeiten | Quelltext bearbeiten]Die 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
[Bearbeiten | Quelltext bearbeiten]Die 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
[Bearbeiten | Quelltext bearbeiten]Folgende 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
[Bearbeiten | Quelltext bearbeiten]Das 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
[Bearbeiten | Quelltext bearbeiten]Auch 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
[Bearbeiten | Quelltext bearbeiten]Das 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
[Bearbeiten | Quelltext bearbeiten]Das .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
[Bearbeiten | Quelltext bearbeiten]Aktuell 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
[Bearbeiten | Quelltext bearbeiten]Als 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
[Bearbeiten | Quelltext bearbeiten]Literatur
[Bearbeiten | Quelltext bearbeiten]- Jens Kuhner: Expert .NET Micro Framework. 2. Auflage 2009, Apress Verlag
Weblinks
[Bearbeiten | Quelltext bearbeiten]- .NET Micro Framework bei Microsoft
- Microsoft-Artikel: „What is .NET Micro Framework?“
- Webportal zum .NET Micro Framework
- Übersichtsartikel unabhängiger Autoren zu .NET Micro Framework
- Produktwebseite des Digi Connect ME
Einzelnachweise
[Bearbeiten | Quelltext bearbeiten]- ↑ Lorenzo Tessiore: .NET Micro Framework 4.4 is now available! 20. Oktober 2015.
- ↑ Microsoft News Center: Microsoft Launches Smart Personal Object Technology Initiative