|This article needs additional citations for verification. (May 2012)|
|Company / developer||Mark Butcher|
|OS family||embedded operating system|
|Latest stable release||V1.4 / August 2009|
|Marketing target||Embedded systems|
|Supported platforms||Coldfire, Kinetis, ARM7, ARM9, ARM Cortex-M3 / M4, AVR32, HCS12|
|License||Free for non-commercial use/µTasker support license for commercial use|
µTasker is an embedded operating system (with simulation environment) specifically targeting smaller single-chip Internet-enabled embedded processors (with internal Ethernet controller, internal SRAM and FLASH). It is small footprint but still offers comfortable development and powerful features as typically required in control type applications.
The µTasker project started in November 2004. The main impetus was the introduction of the new Freescale 68HC12 16 bit processor MC9S12NE64, which includes an integrated Ethernet MAC and PHY. The idea was to use this as test vehicle for a bottom-up development project starting with an MC9S12NE64 demo board and data sheet, and ending with a fully understood project suitable for use in embedded development projects for typical real-world embedded Internet applications.
Development started with learning the instruction set of the HCS12 and its debugging possibilities. Fortunately the MC9S12NE64 demo board included a pre-installed serial loader, allowing also some debugging capabilities based on a simple serial protocol, as well as a one-wire debug-module (BDM) built into the chip. After programming an experimental assembler and disassembler for the CPU, the tasks of programming the device via the serial interface, setting break points, reading registers and stepping code was achieved by developing a simple Windows program called NE64_Deb.exe.
These first steps were educational and encouraging but did not represent the main project goal; they were rather necessary tools to start more serious developments. Assembly language was not an alternative for project development since the HCS12 was just a test vehicle for what was envisaged as being a more universal, processor independent solution, and so the GNU compiler from the GNU Compiler Collection was used to start project programming work. Working with the linker map file, the NE64_Deb.exe was however still very useful for stepping through the instructions on the target - it is worth mentioning at this point that it was the only method used on the real target for debugging during development of the µTasker V1.0 project including TCP/IP stack with FTP, µFileSystem  and web server.
There were and are of course various quality tools available which would have enabled source level debugging but these were not used due to three main reasons:
- although an improvement on assembler level debugging - they still represented a bottle-neck in embedded development work (the tedious download procedures with additional disadvantages when breaking during protocol development work - causing TCP connections to timeout, etc.).
- the fact that the various solutions usually require a new learning curve for each new processor used.
- the vision was to develop something new to allow the majority of this work to be performed in a simulator based on a world-class software development environment (Microsoft Visual Studio C++). This part of the development stood in the foreground and was to be used to solve main weaknesses in traditional embedded development work.
The µTasker simulator was not designed with the goal of simulating the CPU of the used processor(s) but rather to allow the programmer to exercise the project code (application, drivers, interrupt routines) on a simulated target device. The simulator allows the code to interact with the peripherals and the real-world, enabling a very high degree of verification to be performed without the need to work on the hardware. Coupled with other various advantages of Microsoft Visual Studio C++, such as its quality editor and run-time checks (like stack verification and monitoring of uninitialized variables) it aided in increasing embedded development efficiency when testing, debugging and solving problems. The standardized development environment also meant that it is inherently processor independent, allowing much easier movement between target processors.
By adding the capability for the simulator to read Ethernet recordings from Ethereal (now Wireshark), the capacity to simulate Ethernet sequences through the entire code (from Ethernet interrupt, through driver, TCP/IP stack and up to the application brought the project closer to its design goals; it was already possible to efficiently develop Ethernet based protocols in a comfortable environment, requiring minimal tests on the final hardware and already with greatly reduced development times. By mid-2005 the µTasker V1.1 project was finding first use in NE64 based embedded Internet projects and a MC9S12NE64 DEMO could be converted to a web browser based BDM module, to achieve programming and assembler level debugging via the network.
The µTasker operating system used for the project is a simple but very efficient and reliable co-operative scheduler. Its features were extended to suit the types of projects that the µTasker was pre-destined for, and the TCP/IP stack functionality and NE64 device drivers were further enhanced over the next period of development. The use of the WinPCap library to hook in the PC's Ethernet controller (NIC) to the simulator extended its capabilities to simulating the NE64 device in real-time network operation.
The foundations for the further development of the µTasker project had thus been laid. The vision of creating a new development environment optimized for efficient embedded project development on small-footprint, single-chip Internet-enabled devices was becoming true - the project continues to be developed as shown by the following milestones:
- In early 2006 the µTasker project and its simulator were made available for free non-commercial use in the version V1.2 - at the time still only for the MC9S12NE64. Commercial licensing was offered at an attractive price (royalty-free with personal email support during the support period).
- In mid-2006 ports for the ATMEL AT91SAM and the Freescale Coldfire M5223X (effectively the replacement of the one-off MC9S12NE64 with internal EMAC and EPHY) were made available and the µTasker V1.3 was released.
- Late 2006 the µTasker 'Bare-minimum' boot loader  was added to the project, allowing firmware uploads via Ethernet/Internet from a standard browser - optionally encrypted.
- In 2007 a Beta port for the STR91XF was introduced. In July 2007 the µTasker forum support was taken into operation.
- In 2008 Beta ports for the NXP Semiconductors LPC2000 (including LPC21XX and LPC23XX) and the Luminary Micro LM3Sxxxx were released and USB device was add to the project.
- In 2009 µTasker V1.4 and a new AVR32 port were released, with new uGLCDLIB graphical library/simulator (presently V1.1). A powerful Modbus extension pack was added for industrial users including multiple serial ASCII/RTU/RS-485 and MODBUS/TCP with flexible bridging, gateway and routing capabilities.
- 2010 utFAT (FAT32 File Allocation Table compatible module specifically for SD and HCSD cards) added to packages.
- 2011 Freescale KINETIS port released. USB mass-storage device class support added, including a boot loader mode based on this.
- 2012 Advanced IPv6 support added including 6in4 tunnelling solution for working with global IPv6 addressing behind legacy IPv4 routers.
The µTasker project is presently available for the following devices:
- AVR32 (AT32UC3A, AT32UC3B, AT32UC3C)
- Coldfire V2 MCU (M521XX, M5221X, M5222X, M5223X, M5225X, M520X, M521X, M528X, M523X)
- KINETIS (K10 to K70)
- MC9S12NE64 (not recommended for new designs)
- Luminary Micro
- LPC2000 (LPC21XX, LPC23XX, LPC24XX)
- LPC17XX (LPC1788)
- STR91XF (STR910, STR911, STR912) (not recommended for new designs)
- STM32 (STM32F1xx, STM32F2xx, STM32F4xx)
All devices can be simulated in the µTasker simulator. A µTasker project tutorial is available for each device family. The project is completely free for non-commercial use, including forum support. Royalty-free commercial licensing, including personal email support period is available at very attractive prices.
The µTasker project is suitable for commercial projects where reliability, small-footprint, simple design and efficient development is important.
It is also very suitable for use by educational establishments (teaching of processor and protocol stacks) because the µTasker simulator allows students to comfortably test and analyze the involved software without the need for dedicated hardware platforms. It is also popular for use in senior project work.
Since the µTasker project is open-code based and is also free for non-commercial use it has also found use in semiconductor manufacturers' application notes. The fact that the project can be optionally licensed and is fully supported for commercial work also doesn't restrict such project evolution to products where this then becomes an important aspect. A notable example is the choice by the MCU Wireless Systems Solutions Group at Atmel Corp., Colorado Springs to base their Route Under MAC (RUM) stack on the µTasker project.
The µTasker project is recognized by Freescale as resource for working with their ColdFire and Kinetis devices , by Luminary Micro (Texas Instruments) for their Stellaris micro-controllers, and by ATMEL for their SAM7X and AVR32 products.
Various suppliers of demo boards reference the µTasker project resources as complimentary project sources.
The simulation environment has been combined with other tools such as WinPCap to allow Ethernet interaction. Also CAN bus interaction together with TotalPhase's USB/CAN analysers  is possible.
Real-Time EtherNet/IP has been demonstrated on resource-constricted platforms using the µTaskerOS and TCP/IP stack as reported by researchers at the Emerging Technologies & Factory Automation (ETFA), 2011 IEEE 16th Conference.
The µTasker operating system has been approved by EMVCo as Level 2 Contact Approved Application Kernel  in the payment terminal "Verdi"  (alis Primus), manufactured by PayTec AG, which are installed in every post office in Switzerland as well as many major stores and banks.
Fans of U2 who attended one of their U2 360° Tour concerts would have experienced their huge 52 ton video screen. The UK company Kinesys designed and supplied the motion control system that moves and shapes the 'transforming' video screen which uses 40 of their precision variable speed chain hoist controllers, using the µTasker operating system for its display and user interface. Other products in their portfolio also use the µTasker OS as heart together with its MODBUS and graphics capabilities.
Some projects using the µTasker are listed at its project page, with links to the users.
- ↑ Systemeinbindung eines MMI-Panels Senior project at the Technical High School - North-West Switzerland - german
- ↑ Data Logger for model vehicles with WLAN interface Technical project by Uwe Schmerbach and Benjamin Hirth from Gottlieb-Daimler- Schule II, Sinderfingen; Germany - german
- ↑ RUM is a highly flexible stack solution with support for IPv6 and 6LoWPAN for low power and low cost wireless sensor network applications. See ATMEL application note AVR2070
- ↑ Freescale Third Part Vendors
- ↑ Coldfire Development Tools
- ↑ Stellaris 3rd Party Products
- ↑ AVR32 3rd Party
- ↑ Adapt9S12NE64 Module
- ↑ USB/CAN analyser/simulation
- ↑ ETFA
- ↑ EMVCo Level 2 Contact Approved Application Kernel
- ↑ Verdi payment terminal
- ↑ U2 360° video screen project
- ↑ EVO - precision variable speed chain hoist controller
- ↑ Digihoist
- ↑ Project page
| This article uses material from the Wikipedia article UTasker, that was deleted or is being discussed for deletion, which is released under the Creative Commons Attribution-ShareAlike 3.0 Unported License.