Embedded software has traditionally been developed as a one-off software development effort designed for an individual product. In recent years, embedded system complexity has dramatically increased and the microcontrollers capabilities have followed. What were once simple 8-bit computing machines running at a few dozen megahertz have now become full-fledged 32-bit processors executing at hundreds of megahertz's. Developing software from scratch or for use in a single application or processor has become extremely costly and problematic for design teams. This API standard for microcontrollers is an example hardware abstraction layer designed to help embedded software developers designing products with microcontrollers create reusable software that abstracts out the hardware. This API standard has been developed and used in production systems for more than half a decade in devices ranging from automotive and medical devices to space systems. Each iteration that it has gone through has helped create a standard that flexible for developers and meets many general real-time design needs. Using an API to abstract out the microcontroller has several major benefits to development teams such as: Removing the specialized need to master the microcontroller hardware Decreasing costs through reusable firmware Faster times to market Better planning and accuracy in the development cycle Portability and flexibility to handle numerous applications Undoubtedly there are many more benefits but in this book the goal is to provide the reader with the standard.
If you are interested in understanding how to develop reusable software and the processes that a developer would go through to create their own API's and HAL's, the companion book "Developing Reusable Firmware : A Practical Approach", can be found at www.beningo.com. Developing Reusable Firmware discusses the key ideas behind creating API's and HAL's along with the processes and design considerations that developers need to consider when creating their own. This standard example has gone through many iterations and has become very stable but there is always an opportunity that changes will be made in the future. In order to stay up to date and receive the latest information and also receive the associated API template files, please visit the associated webpage at https://www.beningo.com/api/index.
php to sign-up. When you sign-up you will receive Doxygen template source files that layout the entire standard in way that can be easily modified to implement in your own development cycle. I wish you the best of luck in using this standard and dramatically transforming the way in which you develop and reuse your embedded software.