Every time a new embedded software project starts, the air is electrified with energy, hope, and excitement. For engineers, there are few things on Earth as exciting as creating a new project and bringing together new and innovative ideas that have the potential to change the world. Unfortunately, shortly after project kick-off, engineers can quickly lose their passion as they are forced to dig into the nuts and bolts by once again writing microcontroller drivers, trying to integrate real-time operating systems (RTOSes) and third-party components. These repetitive project tasks can consume time, energy, and dampen product innovation. An interesting solution is beginning to arrive that could help developers -- embedded system platforms.
An embedded system platform contains all the building blocks that a developer needs to quickly get a microcontroller up and running in a short time period and direct their focus on the product. Too much time and money is wasted just trying to get a microcontrollers software up and running. The idea behind the platform is that drivers, frameworks, libraries, schedulers, and sometimes even application code are already provided so that developers can focus on their product features rather than the mundane and repetitive software tasks.
HAL Design for MCUs. The speed at which a developer is expected to write software often results in device drivers that are difficult to understand, hard to maintain, and difficult to port. Join Jacob Beningo at ESC Silicon Valley, Dec. 6-8, 2016 in San Jose, Calif., as he describes methods and techniques that can be used to develop a reusable hardware abstraction layer (HAL) that is easy to maintain and use across multiple projects and platforms. Register here for the event, hosted by Design News’ parent company, UBM.
Embedded software platforms provide developers with an opportunity to shave months from the development cycle by leveraging existing HALs and APIs. Becoming a microcontroller expert in all the little nuances is no longer required. HALs and APIs abstract the lower level hardware and make development similar to writing software on a PC, although developers still need to keep in mind that they are working in a resource-constrained environment. Make a simple call to that UART HAL and serial data can be transmitting in minutes rather than weeks.
There are many advantages to platform development that developers should keep in mind:
- Leveraging existing software to prevent reinventing the wheel
- Faster time to market
- Potential to decrease overall project costs
- Increased firmware robustness
There are certainly a few potential issues that developers should be concerned with, as well:
- Platform licensing models
- Cost to change platforms if direction changes in the future
- Becoming dependent upon a third-party platform
- Having too much free time due to smoothly moving projects
The truth is that embedded system development has become increasing complex in the past decade as microcontrollers have increased exponentially in their capability. That capability has been driven by mobile technologies and the need for more connectivity in our devices. The typical development time line has stayed roughly the same. With more to do, smaller budgets, and the same time to do it in, developers need to become smarter and find new methods and ways to develop their systems without compromising robustness, integrity, and features.
One possible solution is to use embedded platforms such as the Renesas Synergy Platform, Electric Imp, and Microchip Harmony, among others. (These are the platforms I've had the opportunity to explore with so far.) Platforms can vary from extending the traditional developers capabilities through radically transformational and different development techniques. In either case, given time, budget, and feature sets, it is very obvious that building embedded systems from the ground will very soon no longer be an option.
Jacob Beningo is an embedded software consultant who currently works with clients in more than a dozen countries to dramatically transform their businesses by improving product quality, cost and time to market. He has published more than 200 articles on embedded software development techniques, is a sought-after speaker and technical trainer and holds three degrees which include a Masters of Engineering from the University of Michigan. Feel free to contact him at [email protected], at his website www.beningo.com, and sign up for his monthly Embedded Bytes Newsletter here.