Exploring and Overcoming the Challenges of 32-bit Embedded Software Development
Embedded systems are getting more complex with increased sophistication in both the end equipment and applications. With the proliferation of connected devices, developers are now required to make applications connect to and work across multiple display platforms. Studies have shown that software development accounts for 60% of the average design cycle. At the same time, designers are utilizing a variety of software with untested compatibility and from multiple sources. This can cause increased verification and debug time. Microchip’s MPLAB® Harmony framework reduces development time and costs by providing an integration framework that is flexible, pre-tested and modular. MPLAB Harmony provides a modular architecture with efficient integration of drivers, middleware and libraries.
Technology is advancing at a rapid pace. With ever-increasing connectivity options, security protocols and sophisticated human interfaces, the complexity of embedded system design is growing exponentially while the market pressures, with shrinking product refresh cycles, have been relentless. In essence, developers are expected to either adapt quickly to increasing application complexity or lose the time-to-market race and face revenue pitfalls.
Application Development Time (Expectation vs Reality): The average embedded consumer now requires top-of-the-line features that are connected to the internet at an affordable price and upgrades quickly to the next best product faster than before. From a product release perspective, the window of opportunity is shrinking, resulting in greater pressure on a product’s time to market.
The embedded developer is forced to align product rollouts to meet this narrow window of opportunity or risk losing market share. In order to meet reduced time to market, developers need to churn out products at a faster clip or, in other words, lower application development time to get to market faster (Fig. 1). However, making that expectation a reality is far more difficult than most developers anticipate.
The percentage of projects that are completed on time or ahead of schedule has been trending lower year over year (Fig. 2).
The survey results point to the challenges associated with increasing the sophistication and complexity of applications leading to increasing product development times, outweighing the narrow time-to-market window and negatively impacting on-time completion of projects. The next section discusses the challenges in embedded development that directly contribute to the reason why more than 60% of all projects are not completed on time. (Fig. 3)
Embedded Development Challenges:
In a recent embedded market survey, when the managers of leading embedded development firms were asked for the biggest concerns for product development, the top four reasons (87% of all responses) were meeting schedules, debugging, integration and managing complexity.
Studies have shown that more than 60% of the total effort spent in application development is for software. 60% of all software resources are spent on verification and bug fixes. So what justifies such a huge resource allocation when it is a non-revenue generating activity? The challenges faced by embedded developers today are as follows: (Fig. 3)
Complexity: The sophistication of applications is increasing at a rapid pace. With the emphasis on the Internet of Things (IoT), there is a growing demand to add connectivity features as a basic requirement to all applications. This necessitates adding security as well. Embedded developers are constantly seeking hardware and software solutions that help to integrate complex functionality in their application.
Re-work: Adding a new feature (security, connectivity) or a new component (changing RTOS, TCP/IP stack) to an application software ecosystem leads to re-work in terms of integration, fixing new bugs and other development efforts which stretch product development times.
Managing software inconsistency: Embedded developers are faced with the challenge of integrating RTOS, middleware, drivers and multiple third party software stacks, each with its unique API’s and coding styles, adding inconsistencies into one development platform.
Test-drag: Studies have shown that defects found in verification cost 10 times more than those found in design and post-production defects cost an additional 30% more than those found in the design phase. This is why 60% of software resources are allocated to verification and every new block or a complex feature causes significant verification effort.
Fragmentation: While developers like to have the flexibility to source software components from multiple vendors, integrating these blocks into single platform is a challenge, especially since developers generally only receive scattered or minimal support for the platform.
Obsolescence: With rapidly changing technology and market requirements, a software component could suddenly become obsolete. Developers not only have to quickly replace the obsolete component but also deal with integration issues with the new component.
These challenges are not new, but the current market dynamics have amplified their effects. The next section discusses a more permanent approach to address the challenges.
Software Integration Framework Approach to Accelerate Embedded Development:
Survey results (Fig. 4) have shown that the top two technological challenges addressed by embedded managers are integrating new technology and operating systems.
Embedded developers are looking for a modular software ecosystem that enables efficient integration of self-developed as well as third party components, minimizes testing/verification, facilitates application migration across operating systems and helps focus time and resources on application development.
Microchip’s award winning software framework, MPLAB Harmony (Fig. 5) is the solution that will accelerate 32-bit embedded development, bringing efficiency and modularity to the software ecosystem, reducing testing burden and, most importantly, reducing development time.
MPLAB Harmony is a comprehensive, interoperable and tested software development framework that supports the entire PIC32 family of products. It works within Microchip’s popular MPLAB X IDE and is fully supported by Microchip. The framework integrates both internal and third party middleware, drivers, peripheral libraries and real-time operating systems, to simplify and accelerate the 32-bit code development process.
Using the earlier embedded development challenges as a baseline (Fig. 3), MPLAB Harmony has been designed from the ground up to address potential roadblocks for the embedded developer (Fig. 6).
- Modularity: MPLAB Harmony is a modular framework. All the different software components, irrespective of whether it’s internally developed by Microchip or a third party provider, within an application can be viewed as interconnected modules and fully supported by Microchip. Because of its modular construct, obsolete modules can be swapped out easily without losing code integrity and saving testing/verification time.
- Interoperability: All modules within MPLAB Harmony are interoperable and pre-tested. This minimizes the need for repeated verification, thus reducing test drag.
- Compatibility: Through the MPLAB Harmony Configurator (MHC), a GUI-based configuration tool, the developer is able to select and configure only the modules or components required to exactly fit the application requirements. Once selected, the components are designed to work together efficiently, reducing the complexity of application development.
- Re-Usability: Once an application is built in the MPLAB Harmony framework, modifications to the applications, like changing microcontrollers or displays, can be done by merely changing the configuration settings and often without any code being written which eliminates a lot of re-work.
- Flexibility: The flexibility of the framework ensures that diverse components, each with its unique feature set and interface, can be integrated harmoniously in the application which helps manage the integration challenges due to software inconsistencies. The framework provides easy migration paths for changing OS’s, adding board support packages and giving control back to the developer to choose the implementation that fits the application.
In summary, MPLAB Harmony is a modular, flexible, pre-tested and an easy-to-use software integration framework that enables developers to build complex applications efficiently by accelerating software integration efforts, reducing test drag. Most importantly, the development effort can now be focused on where the actual value proposition is—the application.
Microchip has been at the forefront of providing innovative end-to-end solutions to overcome customer challenges. With the award-winning MPLAB Harmony framework, Microchip has now empowered 32-bit developers with a flexible and re-usable solution that helps tackle the increasing complexity in applications efficiently, saving both time and effort.