The
.NET Micro Framework (NETMF) is an
Open SourceThe term open source describes practices in production and development that promote access to the end product's source materials. Some consider open source a philosophy, others consider it a pragmatic methodology...
.NET platform for resource-constrained devices with at least 256 KBytes of flash and 64 KBytes of
RAM-Animals:*Ram, an uncastrated male sheep*Ram cichlid, a species of freshwater fish endemic to Colombia and Venezuela-Military:*Battering ram*Ramming, a military tactic in which one vehicle runs into another...
. It includes a small version of the .NET
CLRThe Common Language Runtime is the virtual machine component of Microsoft's .NET framework and is responsible for managing the execution of .NET programs. In a process known as just-in-time compilation, the CLR compiles the intermediate language code known as CIL into the machine instructions...
and supports development in C#,
Visual Basic .NETVisual Basic .NET , is an object-oriented computer programming language that can be viewed as an evolution of the classic Visual Basic , which is implemented on the .NET Framework...
, and debugging (in an emulator or on hardware) using
Microsoft Visual StudioMicrosoft Visual Studio is an integrated development environment from Microsoft. It is used to develop console and graphical user interface applications along with Windows Forms applications, web sites, web applications, and web services in both native code together with managed code for all...
. It also features a subset of the .NET base class libraries (about 70 classes with about 420 methods), a
GUIIn computing, a graphical user interface is a type of user interface that allows users to interact with electronic devices with images rather than text commands. GUIs can be used in computers, hand-held devices such as MP3 players, portable media players or gaming devices, household appliances and...
framework loosely based on
Windows Presentation FoundationDeveloped by Microsoft, the Windows Presentation Foundation is a computer-software graphical subsystem for rendering user interfaces in Windows-based applications. WPF, previously known as "Avalon", was initially released as part of .NET Framework 3.0. Rather than relying on the older GDI...
(WPF), and additional libraries specific to embedded applications.
The .NET Micro Framework aims to make embedded development easier, faster, and less expensive by giving embedded developers access to the modern technologies and tools used by desktop application developers. Additionally, it allows desktop .NET developers to use their skills in the embedded world, enlarging the pool of qualified embedded developers.
Features
The unique features of the .NET Micro Framework (relative to other .NET platforms) are:
- A memory footprint of about 300 KB; for comparison, the next smallest .NET implementation, the .NET Compact Framework
The Microsoft .NET Compact Framework is a version of the .NET Framework that is designed to run on resource constrained mobile/embedded devices such as personal digital assistants , mobile phones, factory controllers, set-top boxes, etc...
running on Windows CEMicrosoft Windows CE is an operating system developed by Microsoft for embedded systems. Windows CE is a distinct operating system and kernel, rather than a trimmed-down version of desktop Windows...
, needs about 12 MB
- Can run directly "on the metal" without an operating system; running on an OS is also possible
- Supports common embedded peripherals and interconnects, including flash memory
Flash memory is a non-volatile computer storage chip that can be electrically erased and reprogrammed. It was developed from EEPROM and must be erased in fairly large blocks before these can be rewritten with new data...
, EEPROMEEPROM stands for Electrically Erasable Programmable Read-Only Memory and is a type of non-volatile memory used in computers and other electronic devices to store small amounts of data that must be saved when power is removed, e.g., calibration...
, GPIOGeneral Purpose Input/Output is a generic pin on a chip whose behavior can be controlled through software....
, I2C, SPIThe Serial Peripheral Interface Bus or SPI bus is a synchronous serial data link standard named by Motorola that operates in full duplex mode. Devices communicate in master/slave mode where the master device initiates the data frame. Multiple slave devices are allowed with individual slave select ...
, USB
- Optimized for energy-efficiency in battery-powered devices
- Does not require a memory management unit
A memory management unit , sometimes called paged memory management unit , is a computer hardware component responsible for handling accesses to memory requested by the CPU...
- Provides multithreading support even when running on single-threaded operating systems
- A hardware abstraction layer allows porting to additional architectures
- A managed device driver model allows drivers for many devices to be written in C#
- Execution constraints to catch device lockups and crashes
- Transparent support for storing objects in non-volatile memory
Due to the constraints under which it operates, the .NET Micro Framework does have some limitations beyond those imposed by its slimmed-down libraries. For example, the platform does not support
symmetric multi-processingIn computing, symmetric multiprocessing involves a multiprocessor computer hardware architecture where two or more identical processors are connected to a single shared main memory and are controlled by a single OS instance. Most common multiprocessor systems today use an SMP architecture...
, multi-dimensional arrays, machine-dependent types, or unsafe instructions. The CLR is an interpreter rather than a just-in-time compiler, and uses a simpler mark-and-sweep
garbage collectorIn computer science, garbage collection is a form of automatic memory management. The garbage collector, or just collector, attempts to reclaim garbage, or memory occupied by objects that are no longer in use by the program...
rather than a generational approach. Interoperation between managed and native code currently has a number of limitations. The .NET Micro Framework does not support any .NET languages other than C# at this time.
Support
The .NET Micro Framework is currently supported on
ARM architectureARM is a 32-bit reduced instruction set computer instruction set architecture developed by ARM Holdings. It was named the Advanced RISC Machine, and before that, the Acorn RISC Machine. The ARM architecture is the most widely used 32-bit ISA in numbers produced...
processors (including ARM7 and ARM9) and on
Analog DevicesAnalog Devices, Inc. , known as ADI, is an American multinational semiconductor company specializing in data conversion and signal conditioning technology, headquartered in Norwood, Massachusetts...
BlackfinThe Blackfin is a family of 16- or 32-bit microprocessors developed, manufactured and marketed by Analog Devices. The family is characterized by their built-in, fixed-point digital signal processor functionality supplied by 16-bit Multiply–accumulates , accompanied on-chip by a small and...
. The Porting Kit is now available along with the source code as a free download under the Apache 2.0 license at the Microsoft Download Center..
The .NET Micro Framework has its roots in Microsoft's
SPOTSmart Personal Object Technology was developed by Microsoft to personalize household electronics and other everyday devices, through "smart" software and hardware that would make their uses more versatile....
initiative and was used in
MSN DirectMSN Direct is an FM radio-based digital service which allows 'SPOT' portable devices to receive information from MSN services. Devices that support MSN Direct include wristwatches, desktop clocks, in-car GPS satellite navigation units, and even small appliances such as coffee makers...
products such as smart watches before being made available to third-party developers early in 2007. It is a common platform for
Windows SideShowWindows SideShow is a technology introduced in Windows Vista that enables Windows PCs to drive a variety of auxiliary display devices connected to the main PC. These devices can be separate from or integrated into the main PC , enabling access to information and media even when the PC is turned off...
devices and has seen adoption in other markets, such as energy management, healthcare, industrial automation, and sensor networks.
Microsoft allows developers to create applications using the .NET Micro Framework without charge, and makes an SDK available for free download that can be used with all version of Visual Studio, including the free Express editions.
In November 2009, Microsoft released the source code of the framework to the development community under the Apache 2.0 license.
In January 2010, Microsoft launched a community development site to coordinate the ongoing development of the core implementation with the open source community.
Open source
On 16 November 2009, Microsoft announced they would make the source for the .NET Micro Framework 4.0 available under the
Apache LicenseThe Apache License is a copyfree free software license authored by the Apache Software Foundation . The Apache License requires preservation of the copyright notice and disclaimer....
2.0.
On 9 January 2010, GHI Electronics announced FEZ Domino, the first member of the product line called FEZ (Freakin' Easy!), a combination of open source hardware with a proprietary closed-source version of .NET Micro Framework.
On 3 August 2010, Secret Labs announced the Netduino, the first 100% open source electronics platform using the .NET Micro Framework.
In February 2011, Novell posted a preview of the Mono 2.12 C# compiler, the first open source compiler for .NET Micro Framework.
.NET Micro Framework 4.1
.NET Micro Framework 4.1 is the currently stable version, and was released August 24, 2010.
Netduino by Secret Labs
Netduino is an open source electronics platform using the .NET Micro Framework..
GHI Electronics
GHI Electronics makes several modules that support the .NET Micro Framework.
- EMX Module.
- ChipworkX Module
- USBizi144 Chipset and USBizi140, whose only difference is the lack of USB host support in the USBizi100
GHI also makes the ".NET FEZ" line of very small open source hardware boards with proprietary firmware, targeted for beginners. They are based on the USBizi chipset and all its features. The FEZ Domino board offers USB host. Even though FEZ is targeted for beginners, it's also a low-cost starting point for professionals wanting to explore NETMF (.NET Micro Framework).
netmfdevices
Netmfdevices is an open source electronics platform using FEZHacker and .NET Micro Framework..
See also
- DirectBand
DirectBand is a North American wireless datacast network owned and operated by Microsoft. It uses FM radio broadcasts in over 100 cities to constantly transmit data to a variety of devices, including portable GPS devices, wristwatches and home weather stations....
- .NET Compact Framework
The Microsoft .NET Compact Framework is a version of the .NET Framework that is designed to run on resource constrained mobile/embedded devices such as personal digital assistants , mobile phones, factory controllers, set-top boxes, etc...
- .NET Framework
The .NET Framework is a software framework that runs primarily on Microsoft Windows. It includes a large library and supports several programming languages which allows language interoperability...
External links