Software support meets the challenges of complexity

As device complexity increases to meet the demands for connectivity, power management, raw data handling and compute performance, the embedded processing engineer is looking for the vibrancy of an open source software approach, backed by comprehensive support.

The increased adoption of automation in buildings, homes and factories, enabled by the proliferation of connected devices, often referred to as the Internet of Things (IoT), is driving increases in equipment complexity. The smarts (brains) of such equipment are mostly 32-bit microcontrollers with multiple Central Processing Units (CPUs), sophisticated sets of interfaces, various connectivity options and other subsystems. The key challenges for product (equipment) development teams are achieving maximum utilization (entitlement) of the microcontroller platform and providing sufficient product differentiation, while executing the project on time and within its cost budget.

Software is a critical component of these systems. Zoran Mladenovic, Chief Technology Officer (CTO), Embedded Software and Tools, Embedded Processing at Texas Instruments reports that the company’s embedded processing customers are finding their Research and Development (R&D) costs are dominated by software development. “It is not only the cost of initial product development,” he notes. “It is also the cost of maintaining, hardening and improving the product software.”

The Role of Software

A robust software platform is essential to allow design engineers to focus their time and effort on differentiation to ensure their product stands out in a competitive marketplace. That software platform should provide production ready software enabling all or most of the microcontroller’s capabilities. This software must be based on standards and open source Application Programming Interfaces (APIs), inherently communicating to the development engineers in the language they fully understand. The software should also reduce overall product development time and effort.

Each project needs, for example, drivers for on-chip peripherals, an executable kernel and networking stacks, but these do not necessarily contribute to the final product’s differentiation. “It is,” says Mladenovic, “important for Texas Instruments to make sure its devices are supported with these essential components, making them easily accessible and available from TI or in open source communities, so they can be accessed and leveraged by all.”

“A robust software platform also helps us understand how future devices will need to be designed to improve performance, or to know what the proper hardware/software design trade-offs are,” explains Mladenovic.

Open Source and Standards

The more that the software components are based on standards (e.g. POSIX) or open source projects, the better the experience for customers. The benefits are better abstraction and improved portability of the application code, the precious IP on which the product developers are working, as well as the ability to leverage new functionality developed by various open source communities.

The methodology of engaging with open source communities, and ensuring that their devices are properly supported, is one of the key challenges for the silicon manufacturers.

Mladenovic says: “People often jump on it because it is free, in monetary terms. This is not really the point. There is quite a lot of cost associated with open source, but why people really like it is that it is ‘free’ as in ‘freedom’. Many open source projects have vibrant communities that help drive innovation while maintaining robustness. There is a realization that we need to participate in and contribute to those communities. Enabling support for devices within these communities is therefore critical,” he concludes.

“Developers want to leverage open source and other types of industry standards to create compatible solutions that can be more easily integrated as customer needs change,” agrees Henry Wiechman, Product Manager for TI’s Connected MCU Software and Tools.

Software Development Kit Support

Most TI SDKs include the Operating System (OS), the drivers and all the components necessary for developing a product. The majority have a Berkeley Standard Distribution (BSD) software license, which is a permissive, open source license, observes Mladenovic.

The company released the Processor SDK and introduced the SimpleLink™ SDK in March this year, at Embedded World, in Nuremberg, Germany.

The Processor SDK is a unified software platform for processor families. It has an Android™, Linux™ or TI-Real-Time Operating System (TI-RTOS) kernel, board support and drivers, power management, documentation and examples. The freedom of open source means customers can log on to for Linux-based open source products and find compatible solutions that are not tailored for a single silicon vendor. Mladenovic admits it is “our responsibility to provide software components that are good quality and which have performance benchmarks that customers can trust”.

SimpleLink SDK

Building on the success of the Processor SDK with a its focus on functional APIs and appropriate levels of hardware abstraction, the SimpleLink SDK is the new addition to the software platforms from the company, and covers all devices that are part of the SimpleLink wired and wireless ARM® 32-bit MCU platform. (See Figure 1.)

Figure 1: The SimpleLink SDK provides a unified software platform across the SimpleLink family.

TI Drivers’ functional (APIs) help ensure compatibility across SimpleLink MCUs, working with the DriverLib hardware abstraction layer. Examples and relevant middleware are included to jump-start application development, including security support. SDK plug-ins provide additional system support, including Bluetooth and Wi-Fi connectivity, and external components such as sensors and actuators. The plug-ins allow the developer to easily integrate, for example, an analogue sensor, which works with the SDK’s APIs to plug in directly to the foundation SDK that the host controller may be using. There is also plug-in support for Apple Homekit, Amazon Web Service and Microsoft Azure.

The SDK also supports the Portable Operating System Interface (POSIX). This IEEE standard API allows applications to be ported easily to different POSIX-compatible kernels. Customers often prefer using industry APIs to avoid being locked into proprietary offerings tied to a single vendor.

Texas Instruments integrates its POSIX-compatible TI-RTOS kernel in the SimpleLink SDK. As an industry standard, it is easy to switch immediately and port an application between different silicon platforms and TI-RTOS. But if a customer prefers another POSIX-compatible RTOS, the developer can easily integrate it into the SDK.

“Typically, an RTOS has its own proprietary APIs,” explains Mladenovic, “Switching from silicon to silicon, a developer has to redo the application layer interfacing with the silicon or RTOS. This is an extra cost and a burden – the performance has to be tested, verified and re-measured,” he continues. The savings in time and effort can be used for building differentiation into the product.

The Platform Advantage

The SDK’s functionality set helps developers building an application, while the shared frameworks and libraries enable scalability and reuse. SimpleLink (SDK) targets a broad range of embedded systems. “Our objective is to provide what every customer needs. The company takes a purposeful approach, providing tried and tested products, with the support of a large company, where it is meaningful and will add a lot of value. We are diligent in that we take the longest term support version of the kernel, so our processor is updated every year,” says Mladenovic.

“We bring together a robust foundation in a common development environment, leveraging industry standard APIs across a comprehensive portfolio of devices with 100% application code portability…swapping components, moving code between devices and using a variety of compatible plug-ins enable quick creation of different types of complementary products,” says Wiechman.

A typical example is a simple, connected thermostat with a centralized gateway that communicates with sensors and interfaces. The project is a mix of MCU capability, with a centralized processor to control gateway traffic as well as 32-bit performance for the endpoint nodes.

This example, in a home or industrial environment for instance, could use a centralized controller to ‘talk’ to multiple sensors, perhaps with individual control relaying data back to the central controller. A common baseline application, or set of codes, can be used across the devices and are supported by a common development environment and a common SDK.

“A common software infrastructure enables code to be ported very easily,” says Wiechman. It is possible to use the initial foundation to develop the initial application quickly and reuse that knowledge to develop different endpoint nodes, such as sensors or door locks.

It is common to have a number of different hardware devices with radios that are capable of supporting different communication standards. The stacks and underlying foundation use compatible APIs for easy movement and seamless integration, to develop future products. “With the SimpleLink platform, the common development environment, and a common SDK, the application code portability simplifies product adaptation,” says Wiechman.

He says that the previous view of CPUs as ‘islands’ has changed – now they are all connected to gather data from the end nodes. Focusing on the common platform makes it easy to create not only different end products but to connect them in different combinations with ease.

Figure 2: SimpleLink SDK provides a unified platform across which code can be ported to meet an application’s requirements.

Development Tools and Support

There is a rich development tool ecosystem to provide customer support. This ranges from the free-to-download Code Composer Studio Integrated Development Environment (IDE), used to develop and debug the company’s microcontrollers and embedded processors, to third party tools, such as the IAR Embedded Workbench toolchain. (See Figure 3.)

Figure 3: Cloud and desktop tools are available to guide the developer from the start to the optimization of a design.

A suite of tools can also be accessed to learn, evaluate, prototype, debug and optimize a design, before release to market. Resource Explorer brings together the different resources available for one device in a single view. The user can see all the software, tools and documentation available. Within Resource Explorer, there is SimpleLink Academy, for online training. Project Zero is the starting point of a design, including basic examples as well as optimization techniques to fine tune the design. At the other end of the scale, there are examples to show the complexities of data flow in typical examples, such as the connected thermostat.

Debug tools have embedded trace to provide insight into the system operation during debug, while the Energy Trace utility provides details on power consumption and will allow a developer to optimize code to reduce the overall system power.

For the hobbyist or maker community, Energia, a fork of the Arduino/Wiring framework is compatible with SimpleLink SDK. A “multi-threaded version is particularly useful for 32-bit SimpleLink devices,” points out Wiechman.

A list of online tools (both Cloud-based and those that can be downloaded to the desktop) can be found at: while information on the SimpleLink platform can be found at

The collection of embedded software and tools in a unified platform allows greater flexibility for developers. Recognizing the pressures of increased performance challenges and connectivity needs, this portfolio affords developers the opportunity to focus talent and energy on differentiation of a product to meet emerging market demands.

SimpleLink is a trademark of Texas Instruments. Android is a trademark of Google Inc. All other trademarks and registered trademarks are the property of their respective owners.

Share and Enjoy:
  • Digg
  • Sphinn
  • Facebook
  • Mixx
  • Google
  • TwitThis