Table of contents : Front Matter ....Pages i-xxii Concepts for Developing Portable Firmware (Jacob Beningo)....Pages 1-28 API and HAL Fundamentals (Jacob Beningo)....Pages 29-60 Device Driver Fundamentals in C (Jacob Beningo)....Pages 61-93 Writing Reusable Drivers (Jacob Beningo)....Pages 95-119 Documenting Firmware with Doxygen (Jacob Beningo)....Pages 121-148 The Hardware Abstraction Layer Design Process (Jacob Beningo)....Pages 149-165 HAL Design for GPIO (Jacob Beningo)....Pages 167-200 HAL Design for SPI (Jacob Beningo)....Pages 201-217 HAL Design for EEPROM and Memory Devices (Jacob Beningo)....Pages 219-241 API Design for Embedded Applications (Jacob Beningo)....Pages 243-256 Testing Portable Embedded Software (Jacob Beningo)....Pages 257-275 A Practical Approach to Code Reuse (Jacob Beningo)....Pages 277-299 Back Matter ....Pages 301-308