Externally indexed torrent
If you are the original uploader, contact staff to have it moved to your account
Textbook in PDF format
Learn how to create and release an embedded system in a fast and reliable manner. This book will help you build and release a commercially viable product that meets industry standards for quality. The book is not just about code: it covers non-code artifacts such as software processes, requirements, software documentation, continuous integration, design reviews, and code reviews.
While specifically targeting microcontroller applications, the processes in this book can be applied to most software projects, big or small. Additionally, the book provides an open-source C framework that can be used to quick start any embedded project. This framework has an OSAL (OS Abstraction Layer) and essential middleware that is needed for many embedded systems. Using a hands-on approach of building-and-testing the software application first allows you to develop a significant amount of production quality code even before the hardware is available, dramatically reducing the start-to-release duration for a project.
As you follow the recipes in this book, you will learn essential software development processes, perform just in time design, create testable modules, and incorporate continuous integration (CI) into your day-to-day developer workflow. The end-result is quality code that is maintainable and extensible, and can be reused for other projects, even when presented with changing or new requirements.
The Embedded Project Cookbook is focused on the how of developing embedded software. For a discussion of the why, readers are invited to refer to the optional companion book Patterns in the Machine: A Software Engineering Guide to Embedded Development.
The example code and framework code in this cookbook are written in C and C , but mostly in C . Nevertheless, if you have experience writing software in C, or a strongly typed programming language, you should be able to follow the examples. If you’re skeptical about using C in the embedded space, consider that the Arduino UNO framework—written for an ATmega328P microcontroller with only 32KB of flash and 2KB of RAM—is implemented in C . Nevertheless, there is nothing in the processes presented in this book that requires a specific implementation language. All the example code and framework code in this book are available on GitHub, and the numerous appendixes in this book contain examples of all prescribed documents.
What You Will Learn:
Separate software architecture from software design
Write software documents that are intrinsically resistant to going out-of-date.
Identify the processes, workflows, and best practices for the team to follow.
Initiate code reviews before code is checked intoa stable branch.
Design testable modules and implement automated unit testing that doesn’t require hardware.
Incorporate continuous integration into the day-to-day developer workflow, including automated integration testing.
Create a code base that can be reused on other projects.
Preface
Introduction
Requirements
Analysis
Software Development Plan
Preparation
Foundation
Building Applications with the Main Pattern
Continuous Integration Builds
Requirements Revisited
Tasks
Just-in-Time Detailed Design
Unit Tests, and Pull Requests
Integration Testing
Board Support Package
Drivers
Release
Appendixes