UTasker
Encyclopedia
µ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.

History

Work started on the µTasker project in November 2004. The main impetus was the introduction of the new Freescale 68HC12
Freescale 68HC12
The 68HC12 is a microcontroller family from Freescale Semiconductor with an 8-bit ALU and 16-bit linear addressing. Originally introduced in the mid 1990s, the architecture is an enhancement of the Freescale 68HC11. Programs written for the HC11 are usually compatible with the HC12, which has a...

 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.

The exact development started with getting to know 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
Assembly language
An assembly language is a low-level programming language for computers, microprocessors, microcontrollers, and other programmable devices. It implements a symbolic representation of the machine codes and other constants needed to program a given CPU architecture...

 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
GNU Compiler Collection
The GNU Compiler Collection is a compiler system produced by the GNU Project supporting various programming languages. GCC is a key component of the GNU toolchain...

 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 http://www.utasker.com/docs/uTasker/uTaskerFileSystem_3.PDF 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
    Microsoft Visual Studio
    Microsoft 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...

     C++). This part of the development stood in the foreground and was to be used to solve main weaknesses in traditional embedded development work.


Simulator

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
Microsoft Visual Studio
Microsoft 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...

 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
Ethernet
Ethernet is a family of computer networking technologies for local area networks commercially introduced in 1980. Standardized in IEEE 802.3, Ethernet has largely replaced competing wired LAN technologies....

 recordings from Ethereal (now Wireshark
Wireshark
Wireshark is a free and open-source packet analyzer. It is used for network troubleshooting, analysis, software and communications protocol development, and education...

), 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.

Operating System

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
    Atmel
    Atmel Corporation is a manufacturer of semiconductors, founded in 1984. Its focus is on system-level solutions built around flash microcontrollers...

     AT91SAM
    AT91SAM
    AT91SAM are a family of Atmel chips based on the 32-bit RISC microprocessors from ARM. Some are targeted as applications processors, with external memory busses used to access RAM and flash, and large sets of integrated peripherals...

     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 http://www.utasker.com/docs/uTasker/uTaskerBoot_003.PDF 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
    LPC2000
    LPC2000 is a series of 32-bit microcontrollers from NXP Semiconductors. They are based on a 1.8 V ARM7TDMI-S core operating at up to 80 MHz together with a variety of peripherals including serial interfaces, 10-bit ADC/DAC, timers, capture compare, PWM, USB interface, and external bus options...

     (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
    AVR32
    The AVR32 is a 32-bit RISC microprocessor architecture designed by Atmel. The microprocessor architecture was designed by a handful of people educated at the Norwegian University of Science and Technology, including lead designer Øyvind Strøm, PhD and CPU architect Erik Renno, M.Sc in Atmel's...

     port were released, with new uGLCDLIB graphical library/simulator (presently V1.1). A powerful Modbus
    Modbus
    Modbus is a serial communications protocol published by Modicon in 1979 for use with its programmable logic controllers . Simple and robust, it has since become one of the de facto standard communications protocols in the industry, and it is now amongst the most commonly available means of...

     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
    File Allocation Table
    File Allocation Table is a computer file system architecture now widely used on many computer systems and most memory cards, such as those used with digital cameras. FAT file systems are commonly found on floppy disks, flash memory cards, digital cameras, and many other portable devices because of...

     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.


Present state

The µTasker project is presently available for the following devices:
  • Freescale Coldfire V2 MCU (M521XX, M5221X, M5222X, M5223X, M5225X, M520X, M521X, M528X)
  • Freescale KINETIS (K60 K40)
  • ATMEL AT91SAM7X
  • ATMEL AVR32 (AT32UC3A and AT32UC3B)
  • Luminary Micro LM3SXXXX
  • NXP LPC2XXX (LPC21XX, LPC23XX, LPC24XX) LPC17XX
  • ST STR91XF (STR910, STR911 and STR912) STM32
    STM32
    STM32 is a family of multiple series of microcontroller ICs, by STMicroelectronics , based on the 32-bit RISC Cortex-M3 and Cortex-M4F cores from ARM Holdings...

     connectivity
    as Beta
  • Freescale MC9S12NE64 (not recommended for new designs)

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.

Uses

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
Atmel
Atmel Corporation is a manufacturer of semiconductors, founded in 1984. Its focus is on system-level solutions built around flash microcontrollers...

 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 devices, by Luminary Micro for their Stellaris micro-controllers, and by ATMEL
Atmel
Atmel Corporation is a manufacturer of semiconductors, founded in 1984. Its focus is on system-level solutions built around flash microcontrollers...

 for their SAM7X and AVR32
AVR32
The AVR32 is a 32-bit RISC microprocessor architecture designed by Atmel. The microprocessor architecture was designed by a handful of people educated at the Norwegian University of Science and Technology, including lead designer Øyvind Strøm, PhD and CPU architect Erik Renno, M.Sc in Atmel's...

 products.

Various suppliers of demo boards reference the µTasker project resources as complimentary project sources.

Goals for 2011

Short-term: Integration of IPv6
IPv6
Internet Protocol version 6 is a version of the Internet Protocol . It is designed to succeed the Internet Protocol version 4...

, extension of USB to include host and USB On-The-Go
USB On-The-Go
USB On-The-Go, often abbreviated USB OTG, is a specification that allows USB devices such as digital audio players or mobile phones to act as a host allowing a USB Flash Drive, mouse, or keyboard to be attached.- Architecture :...

, with particular emphasis on mass-storage.

Mod-term: Additional Cortex M3 processors support

Long-term: To be decided based on user feedback

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK