The Internet of Things (IoT) promises to add Internet connectivity to innumerable devices that aren’t traditionally associated with that capability, such as a home appliance or a watch. The coming IoT revolution will bring changes to fields such as medical devices, industrial process control, automotive, and much more.
In many cases, adding connectivity involves adding a microcontroller—and its entire accompanying software infrastructure—to a previously “dumb” device. As well as the application code itself, the microcontroller contains a Real-Time Operating System (RTOS), low-level device drivers, the TCP/IP stack, security features such as encryption and authentication, and a number of other modules. The broader software ecosystem encompasses a range of development tools such as compilers, editors, debuggers, emulation tools, and more.
Figure 1: The Internet of Everything—coming soon to your favorite product (Source: Texas Instruments)
Traditionally these development tools have been sourced from a combination of microcontroller supplier software and software from independent providers. This approach allows for maximum flexibility, but carries with it the risk of interoperability and integration issues. In addition, many low-level functions such as device drivers may have to be written from scratch for the particular microcontroller chosen. Issues such as these are likely to take up development time—and don’t add product differentiation in the eyes of the end user—even before the first line of application code has been written.
Software development is already a major contributor to the product cycle. In the context of the competitive IoT environment, adding unnecessary development time could be the difference between success and failure.
Recognizing this, and wanting to give customers a pain-free development cycle and minimize their time-to-market (and not coincidentally, shorten their own time-to-revenue), microcontroller manufacturers are investing heavily in developing end-to-end software development tools. Two ways they’re investing include: beefing up internal software teams and investing in, or acquiring, independent software companies.
Sourcing all of the development software from the hardware supplier means the development environment can be optimized to the selected microcontroller. In addition, microcontroller vendors can use their intimate knowledge of the device architecture to provide tested pieces of code for low-level functions such as I/O drivers, or algorithms that require tight interaction with the hardware, such as graphics engines, encryption or authentication.
The MPLAB X programming platform from Microchip runs on a PC (Windows, Mac OS or Linux) to speed development of applications for Microchip devices. Compatible with all of Microchip’s microcontrollers and digital signal controllers, MPLAB X is newly redesigned and based on the open-source NetBeans IDE from Oracle.
MPLAB X supports multiple versions of the same compiler; users can assign a different compiler to each project. In addition, support for multiple simultaneous debuggers gives engineers the ability to debug more than one target at the same time using a single MPLAB X installation.
In addition to its IDE products, Microchip also offers RTOS for their products and software for applications such as Bluetooth, digital filters, CODEC and compression algorithms, AES, symmetric encryption and Ipv4/v6 TCP/IP stacks.
The Code Warrior (CW) family of products from Freescale covers all of their microcontrollers and DSPs—the 8-bit S08/RS08 and 16-bit S12(X) families, the Kinetis ARM-based µCs, 32-bit Qorivva and ColdFire, the DSP families and numerous others. Code Warrior suites contain an array of features including: an Integrated Development Environment (IDE), a full-featured debugger, simulators, a build tool to fine-tune compiler output, performance analysis tool, and more.
CW suites are available in basic, standard and professional versions with increasingly powerful feature sets and allowable code sizes. There is also a set of CW suites specifically for networked applications; these support multiple architectures and add an array of network-focused tools such as SerDes validation and packet analysis.
To help decide which one is most suitable, evaluation editions are available for free download with limited-time operation. Fully functional special editions are also available—these are likewise free to download, but have restrictions on code size. The non-restricted families can be purchased via a subscription or a perpetual license.
The CrossCore Embedded Studio is an IDE for the Analog Devices Blackfin and SHARC processor families. Running on Windows, the Eclipse-based IDE provides C/C++ and assembly language editing, code generation and debug support.
CrossCore Embedded Studio also offers Blackfin and SHARC developers integrated add-in support for drivers, services and algorithmic software modules. These include driver support for on-chip and off-chip peripherals, stacks for Ethernet and USB, an RTOS and file system.
To help evaluate the product, a 90-day free download is available. A variety of purchase options are offered, ranging from a single-user license to a corporate license that allows unlimited users on a specified corporate network.
Atmel’s Studio 6 is an integrated development platform (IDP) for developing and debugging their ARM Cortex-M and Atmel AVR microcontroller-based applications written in C/C++ or assembly code. Studio 6.2, the latest version, includes advanced debugging features such as data and interrupt trace, improved RTOS integration and a better ability to debug code that has been optimized. It is also free of charge.
Studio 6 components include: an integrated editor with visual assist C/C++ code completion tool, a debugger, a performance test application, full-chip simulation, and in-system programming with an interface to all Atmel in-circuit programmers.
The IDP is integrated with the Atmel Software Framework (ASF)—a library of free source code with 1,600 ARM and AVR project examples. ASF helps designers shorten the development cycle by providing access to ready-to-use code that minimizes much of the low-level design required for projects. The company also offers Atmel Spaces: a cloud-based collaborative workspace where engineers can securely share embedded design and track progress of projects with their colleagues.
In addition to their in-house offerings, microcontroller vendors are also helping developers by certifying code for various applications. For example, Texas Instruments’ SafeTI functional safety software development process is certified as suitable for development of ISO 26262- and IEC 61508-compliant software components to ASIL D and SIL 3 levels of safety integrity.
The company also maintains a list of SafeTI Partners that provide tools, software, and consultation services which are targeted specifically for functional safety systems and support SafeTI components.