Embedded Software Design:
Embedded Software Design will teach you how to design higher-quality embedded software from concept through production. Embedded systems are typically designed using microcontrollers to build electronic systems with a dedicated function and real-time responses. Modern systems must carefully balance a complex set of features, manage security, and even run machine learning inferences while maintaining reasonable costs, scalability, and robustness. This book is organized into three critical areas:
- Software Architecture and Design
- Agile, DevOps, and Processes
- Development and Coding Skills
Embedded System Design starts with a basic introduction to embedded software architecture and the considerations for a successful design. We then explain how to architect an RTOS-based application and explore common design patterns and building blocks. Next, we discuss embedded software design processes such as TDD, CI/CD, modeling, and simulation that can be used to accelerate development. Finally, we will discuss how to select a microcontroller, write configurable code, coding strategies, techniques, and tools developers can’t live without. 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.
- Learn how to design and build embedded systems in a practical manner
- Understand what sound embedded system design is and how to employ it
- Explore modern development processes for quality systems
- Know where the bits hit the silicon: how to select a microcontroller
- Master techniques to write configurable, automated code
Embedded Software Design Chapter Index:
Chapter 0 – Successful Delivery
Part 1 – Embedded Software Architecture and Design
Chapter 1 – Embedded Software Design Philosophy
Chapter 2 – Embedded Software Architecture Design
Chapter 3 – Secure Application Design
Chapter 4 – RTOS Application Design
Chapter 5 – Design Patterns
Part 2 – Agile, DevOps, and Processes
Chapter 6 – Software Quality, Metrics, and Processes
Chapter 7 – Embedded DevOps
Chapter 8 – Testing, Verification, and Test-Driven Development
Chapter 9 – Application Modeling, Simulation, and Deployment
Chapter 10 – Jump Starting Software Development to Minimize Defects
Part 3 – Development and Coding Skills
Chapter 11 – Selecting Microcontrollers
Chapter 12 – Interfaces, Contracts, and Assertions
Chapter 13 – Configurable Firmware Techniques
Chapter 14 – Comms, Command Processing, and Telemetry Techniques
Chapter 15 – The Right Tools for the Job
Part 4 – Next Steps
Chapter 16 – Next Steps
Appendix A – Security Terminology Definitions
Appendix B – 12 Agile Software Principles
Appendix C – Hands-On – CI/CD using Gitlab
Appendix D – Hands-on TDD
Release Date: October 21, 2022
Just placed my order… Looking forward to reading and applying!
I’ll check it out when available. It would be nice to have a couple of sentences to point out how it’s different from “Reusable Firmware Development”.
Also, this doesn’t really have anything to do with you, but I’m not a fan of APress moving to “SpringerLink.”.
Reusable Firmware Development focused in on low-level code reuse. How you design a HAL and API’s. Examples of how to do so with GPIO, SPI, and other drivers.
Embedded Software Design looks at three important aspects of software design:
1) Software Architecture and Design
2) Agile, DevOps, and Processes
3) Development and Coding Skills
There is very little to no repeat in concepts between the two books.