I have the responsibility to teach a course code SPH336 – Computing Laboratory II which encompasses embedded systems programming skills transfer as well as training on systems modeling and simulation in C++ using systemC library. As such, I have began a manhunt of the richest and easiest-to-read technical texts that cover important topics for a beginner embedded developer. The following books are definitely worth a reading or two.
Embedded Systems on a Shoestring
By: Lewin A.R.W. Edwards, Published: 2003, 244 pages
This is a book which dives into the technical jargon and makes it ease out by explaining the nitty gritty of writing firmware for an embedded system. My favorite part is chapter 3, which covers the GNU tool-chain. I love working with open-source tools and the fact that this book has covered the GNU tool-chain is awesome. The general form in which sections of this book are written is perfect for a quick but concise read. If you want to understand the details of building bare-metal ARM firmware without reading over 250 pages book, this is the book for you. It has details about the assembler, the linker and the compiler in a summarized and straight to the point manner.
The main objective of the book is to help those coming from old 8-bit platforms switch to more powerful 16 and 32-bit embedded platforms which are now becoming more available and cheaper. A strong secondary objective is to help those who are used to clicking IDE/GUI learn how to work the details on a command line interface using free, libre, open-source tools.
The Designer’s Guide to the Cortex-m Processor Family. A Tutorial Approach
By: Trevor Martin, Published 2013, 318 pages, ISBN: 978-0-08-098296-0
I love the structure of this book. Its a typical modern microprocessor architecture syllabus with a tutorial approach. I like the fact that its so much summarized and only highlights the most important practical aspects of the ARM architecture without boggling your mind with implementation details. I am after texts that I can recommend to beginners and still use as a reference for teaching.
Note: The following summary text about this book was copy-pasted (and edited) from the beginning of the book 😛 .
This book is useful for students, beginners, and advanced and experienced developers alike. However, it is assumed that you have a basic knowledge of how to use microcontrollers and that you are familiar with the instruction set of your preferred microcontroller. On the down side, it requires some basic knowledge on how to use the μVision debugger and IDE for some sections.
Chapter 1 provides an introduction and feature overview of each processor in the Cortex-M family.
Chapter 2 introduces you to the basics of building a C project for a Cortex-M processor.
Chapter 3 provides an architectural description of the Cortex-M3 and its differences to the other Cortex-M processors.
Chapter 4 introduces the CMSIS programming standard for Cortex-M processors.
Chapter 5 extends Chapter 3 by introducing the more advanced features of the Cortex-M architecture.
Chapter 6 introduces the use of an RTOS on a Cortex-M processor.
Chapter 7 looks at the math and DSP support available on the Cortex-M4 and how to design real-time DSP applications.
Chapter 8 provides a description of the CoreSight debug system and its real-time features.
The Definitive Guide to ARM Cortex -M3 and Cortex-M4 Processors – Third Edition
By: Joseph Yiu, Published 2014, 1015 pages, ISBNe13: 978-0-12-408082-9
I have not read this book, but looks like a load of goodness from browsing through. 1015 pages are pretty intimidating for me to read it first, I am starting with smaller, more direct and highly summarized ones.
Making Embedded Systems: Design patterns for Great Software
By Elicia White, published 2011, 314 pages
Currently reading… its bigger and more about design patterns than tools 🙁 . I am a tools kinda guy. will update soon.