Simplifying Concepts.
Accelerating Innovation.

Jacob's Blog

Jacob Beningo
|

Book: Embedded Software Design

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 Software Design

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.

You will:

  • 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

Pre-Order Now!

 

* * *

Struggling to keep your development skills up to date or facing outdated processes that slow down your team, raise costs, and impact product quality?

Here are 4 ways I can help you:

  • Embedded Software Academy: Enhance your skills, streamline your processes, and elevate your architecture. Join my academy for on-demand, hands-on workshops and cutting-edge development resources designed to transform your career and keep you ahead of the curve.
  • Consulting Services: Get personalized, expert guidance to streamline your development processes, boost efficiency, and achieve your project goals faster. Partner with us to unlock your team's full potential and drive innovation, ensuring your projects success.
  • Team Training and Development: Empower your team with the latest best practices in embedded software. Our expert-led training sessions will equip your team with the skills and knowledge to excel, innovate, and drive your projects to success.
  • Customized Design Solutions: Get design and development assistance to enhance efficiency, ensure robust testing, and streamline your development pipeline, driving your projects success.

Take action today to upgrade your skills, optimize your team, and achieve success.

Similar Posts

3 Comments

  1. 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.”.

    1. 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.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.