How Open-Source and Community-Backed Initiatives Unlock the MCU Versatility to Meet Modern Development Needs

0
13
How Open-Source and Community-Backed Initiatives Unlock the MCU Versatility to Meet Modern Development Needs

Members can download this article in PDF format.

What you’ll learn:

  • The problems facing developers and engineers when designing software for MCU deployment.
  • How open-source solutions are transforming MCU development.
  • The collaboration behind NXP MCUXpresso and the engineering community.

 

Developers throughout the world know the value of microcontrollers (MCUs). From their first introduction to the simplest of applications, MCUs have followed a never-ending course of feature advancement. Today, such devices underpin all aspects of our lives, from industrial applications such as automation and the industrial Internet of Things (IIoT) to personal applications like health trackers and smart home devices.

Engineers developing solutions utilizing MCUs face several technical barriers slowing the deployment rate—variations in development platforms, the sheer breadth of hardware devices, and the constant demand for increasing levels of functionality are all constant challenges.

The current market only amplifies these issues. With many hardware solutions evolving incredibly quickly, new standards emerging constantly, and novel applications appearing every day, bringing a product to market quickly is vital for its success. But what can we do to mitigate these issues and help engineers deliver innovative solutions at the speed the market demands?

The answer is often a more open approach, with collaboration being essential, utilizing open-source solutions like the Zephyr OS. But with so many options out there, what solutions are proving popular and delivering the gains needed?

The Challenges of Developing Embedded Software

Many factors affect the challenges associated with embedded software when it comes to MCU-based designs. Issues such as limited code portability, lack of open or easily accessible support systems, proprietary platforms, and fragmentation of development flows can all hinder the design process.

For a singular project, those factors slow teams down, with engineers having to dedicate time getting to grips with new environments and hitting walls when the limited support systems fail. But the issues are compounded further when developing derivative or follow-on products, where engineers essentially must repeat tasks due to variations in the generations of underlying MCU platforms.

Perhaps the most easily recognizable challenge for many MCU software developers is being locked into one platform. Development is often trapped with a single vendor. And even when porting is available, issues can occur, resulting in being reliant on that single vendor’s support for assistance.

With embedded hardware naturally limited in capacity, there’s also no place for largely un-optimized code. Even in instances where enough resource headroom allows code bases to be ported across products, nuances created by hardware dissimilarities can often mean large swathes of the original code are no longer fit for purpose.

Proprietary or closed software solutions rely on support from the originating source, be that a software provider or a semiconductor company. With the wealth of MCU applications continuously expanding, silicon vendors might struggle to supply enough reference code and documentation to support every project. For smaller customers, there might not be anywhere to get reference code to meet their needs at all.

While hardware processing power and memory have expanded, the demand for greater functionality means developers must not only produce more code than ever before, but it must also be optimized and with the capability to be updated and maintained. For many developers, open, community-backed solutions with widespread vendor support and good engagement can have a significant positive impact on their projects, providing a greater pool of collective resources and ongoing enhancements to take advantage of the latest hardware.

Open-Source and Real-Time Operating Systems

As the complexity of many MCU implementations keeps evolving to add increased levels of functionality, the embedded software has advanced. Historically, MCU developers implemented software applications around state machines and sequential processing loops. However, as the number of parallel tasks increases, this approach needs to change.

More MCUs now utilize real-time operating systems (RTOSes), allowing for greater complexity, more interrupt sources, and expansive communication interface options. Use of an RTOS is becoming increasingly essential as time-critical tasks from different elements of a system are more likely to conflict with each other. One example is a controller application with a GUI that’s simultaneously managing a wireless stack and running control algorithms on a single MCU.

With the complexity of code on the rise, open-source, community-backed solutions like Zephyr are coming to the fore. Built from the ground up to meet the latest demands of MCU deployments such as edge solutions and IoT, Zephyr is headed by a panel comprising not only leading silicon vendors, e.g., Intel and NXP, but also powerhouse OEMs like Google and Meta. The project has already seen major application contributions from these OEMs, such as Google’s submission of a complete compute platform code base.

Zephyr’s functionality is designed to meet the many prominent challenges head-on with high flexibility, modular design and hardware abstraction, making it easy for developers to get started and share support across its growing community. It features the highest number of contributors and upstream commits per month of any other RTOS (Fig. 1), demonstrating the platform’s ability to solve and adapt to changes.

LEAVE A REPLY

Please enter your comment!
Please enter your name here