Embedded Software Design: A Practical Approach to Architecture, Processes, and Coding Techniques
- 7h
- Jacob Beningo
- Apress
- 2022
Design higher-quality embedded software from concept through production. This book assumes basic C and microcontroller programming knowledge and is organized into three critical areas: Software Architecture and Design; Agile, DevOps, and Processes; and Development and Coding Skills.
You'll start with a basic introduction to embedded software architecture and the considerations for a successful design. The book then breaks down how to architect an RTOS-based application and explore common design patterns and building blocks. Next, you'll review embedded software design processes such as TDD, CI/CD, modeling, and simulation that can be used to accelerate development. Finally, the book will examine how to select a microcontroller, write configurable code, coding strategies, techniques, and tools developers can’t live without.
Embedded systems are typically designed using microcontrollers to build electronic systems with a dedicated function and real-time responses. Modern systems need to carefully balance a complex set of features, manage security, and even run machine learning inferences while maintaining reasonable costs, scalability, and robustness. By the end of this book, you will have a defined development process, understand modern software architecture, and be equipped to start building embedded systems.
What You'll Learn
- Understand what sound embedded system design is and how to employ it
- Explore modern development processes for quality system
- Know where the bits hit the silicon: how to select a microcontroller
- Master techniques to write configurable, automated code
Who This Book Is For
Embedded software and hardware engineers, enthusiasts, or any stakeholders who would like to learn modern techniques for designing and building embedded systems.
About the Author
Jacob Beningo is an embedded software consultant with over 15 years of experience in microcontroller based real-time embedded systems. After spending over ten years designing embedded systems for automotive,defense and space industries, Jacob founded Beningo Embedded Group in 2009. Jacob has worked 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 who holds three degrees which include a Masters of Engineering from the University of Michigan. Jacob is an avid writer, trainer, consultant and entrepreneur who transforms the complex into simple and understandable concepts that accelerate technological innovation.
Jacob has demonstrated his leadership in the embedded systems industry by consulting and training at companies such as General Motors, Intel, Infineon and Renesas along with successfully completing over 50 projects. Jacob also speaks at and is involved in the embedded track selection committees at ARM Techcon, Embedded System Conferences and Sensor Expo. Jacob holds Bachelor’s degrees in Electrical Engineering, Physics and Mathematics from Central Michigan University and a Master’s degree in Space Systems Engineering from the University of Michigan.
In his spare time, Jacob enjoys spending time with his family, reading, writing, playing hockey and golf. In clear skies, he can often be found outside with his telescope, sipping a fine scotch while imaging the sky.
In this Book
-
Preface
-
Embedded Software Design Philosophy
-
Embedded Software Architecture Design
-
Secure Application Design
-
RTOS Application Design
-
Design Patterns
-
Software Quality, Metrics, and Processes
-
Embedded DevOps
-
Testing, Verification, and Test-Driven Development
-
Application Modeling, Simulation, and Deployment
-
Jump-Starting Software Development to Minimize Defects
-
Selecting Microcontrollers
-
Interfaces, Contracts, and Assertions
-
Configurable Firmware Techniques
-
Comms, Command Processing, and Telemetry Techniques
-
The Right Tools for the Job
-
Next Steps