Embedded Systems Design

Fast and effective embedded systems design - Applying the ARM mbed


  • Authors: Rob Toulson, Tim Wilmshurst
  • ISBN: 978-0-08-097768-3

Official book summary

  • A hands-on introduction to the field of embedded systems;
  • A focus on fast prototyping of embedded systems;
  • All key embedded system concepts covered through simple and effective experimentation;
  • An understanding of ARM technology, one of the world’s leaders;
  • A practical introduction to embedded C;
  • Applies possibly the most accessible set of tools available in the embedded world.

This book is an introduction to embedded systems design, using the ARM mbed and C programming language as development tools.

The mbed provides a compact, self-contained and low-cost hardware core, and the on-line compiler requires no download or installation, being accessible wherever an internet link exists. The book further combines these with a simple "breadboard" approach, whereby simple circuits are built up around the mbed, with no soldering or pcb assembly required.

The book adopts a "learning through doing" approach. Each chapter is based around a major topic in embedded systems. The chapter proceeds as a series of practical experiments; the reader sets up a simple hardware system, develops and downloads a simple program, and immediately observes and tests the outcomes. The book then reflects on the experimental results, evaluating the strengths and weaknesses of the technology or technique introduced, explores how precise the link is between theory and practice, and considers applications and the wider context.

  • The only book that explains how to use ARM’s mbed development toolkit to help the speedy and easy development of embedded systems.
  • Teaches embedded systems core principles in the context of developing quick applications, making embedded systems development an easy task for the non specialist who does not have a deep knowledge of electronics or software
  • All key concepts are covered through simple and effective experimentation

ARM Microcontrollers (pt1) - 35 projects for beginners


Dit boek is ook beschikbaar in het Nederlands (ARM microcontrollers - 35 projecten voor beginners)

Ce livre est disponible aussi en Français (Microcontrôleurs RISC 32 bits à architecture ARM - 35 projets d’initiation en C avec la carte mbed NXP LPC 1768)

Official book summary

The perfect book for hobbyists, students and engineers who want to learn C and how to use an mbed ARM microcontroller in an easy and fun way, without the need for cumbersome software installations.

The projects in this book are meant for beginners in C and ARM microcontrollers. That doesn't mean the projects are simple, but it does mean that they are easy to understand. We use for example USB communications, a subject that is made so easy by the mbed that it is suitable for a beginners book.

Features of this book

  • Learn how to program an mbed ARM microcontroller using cloud technology. No complicated software installation on your PC needed.
  • Learn programming in C by doing fun and interesting projects. No previous experience or knowledge required.
  • Examples of projects in this book: flashing light, timer, light activated switch, digital thermometer, people detector, USB communication, talking microcontroller, debugging, sound switch, and much more - 35 projects in total.
  • Examples of C subjects in this book: variables, commands, functions, program execution, pointers (introduction).

C/C++ Programming

The C Programming Language


  • Author: Brian W. Kernighan and Dennis M. Ritchie
  • ISBN: 978-0131103627

Amazon Review

Just about every C programmer I respect learned C from this book. Unlike many of the 1,000 page doorstops stuffed with CD-ROMs that have become popular, this volume is concise and powerful (if somewhat dangerous)--like C itself. And it was written by Kernighan himself. Need we say more?

From the Back Cover

This book is meant to help the reader learn how to program in C. It is the definitive reference guide, now in a second edition. Although the first edition was written in 1978, it continues to be a worldwide best-seller. This second edition brings the classic original up to date to include the ANSI standard.

From the Preface

We have tried to retain the brevity of the first edition. C is not a big language, and it is not well served by a big book. We have improved the exposition of critical features, such as pointers, that are central to C programming. We have refined the original examples, and have added new examples in several chapters. For instance, the treatment of complicated declarations is augmented by programs that convert declarations into words and vice versa. As before, all examples have been tested directly from the text, which is in machine-readable form.

As we said in the first preface to the first edition, C "wears well as one's experience with it grows." With a decade more experience, we still feel that way. We hope that this book will help you to learn C and use it well.

Thinking in C++


Official book summary

Fully revised and beefed up with plenty of new material on today's Standard C++, the new edition of Bruce Eckel's Thinking in C++: Volume I is an excellent tutorial to mastering this rich (and sometimes daunting) programming language, filled with expert advice and written in a patient, knowledgeable style. The effective presentation, along with dozens of helpful code examples, make this book a standout. The text first sets the stage for using C++ with a tour of what object-oriented programming is all about, as well as the software design life cycle. The author then delves into every aspect of C++, from basic keywords and programming principles to more advanced topics, like function and operator overloading, virtual inheritance, exception handling, namespaces, and templates. C++ is a complex language, and the author covers a lot of ground using today's Standard C++, but without getting bogged down in excessive detail.

The emphasis here is on practical programming, so there's basic advice on using header files, preprocessor directives, and namespaces to organize code effectively. Each chapter ends with exercises (usually about two dozen), and the entire text of the book is available on the accompanying CD-ROM. (So is the second volume, which tours Standard C++ classes and other advanced topics.)

Topics covered: Introduction to objects, inheritance, composition, polymorphism, exception handling, analysis and design fundamentals, advantages of C++, transitioning from C, compiling and building programs, writing C++ functions, flow control, C++ operators, data types, casting, debugging tips, pointers to functions, designing reusable C++ classes, conditional compilation and header files, access specifiers, constructors and destructors, function overloading and default arguments, using const and static effectively, inlining, namespaces, references, copy constructors, operator overloading, using new and delete for dynamic objects, virtual functions, abstract classes, introduction to templates, and iterators.

ARM Cortex-M

The Definitive Guide to the ARM Cortex-M3


Official book summary

This user's guide does far more than simply outline the ARM Cortex-M3 CPU features; it explains step-by-step how to program and implement the processor in real-world designs. It teaches readers how to utilize the complete and thumb instruction sets in order to obtain the best functionality, efficiency, and reuseability. The author, an ARM engineer who helped develop the core, provides many examples and diagrams that aid understanding. Quick reference appendices make locating specific details a snap!

The Definitive Guide to the ARM Cortex-M0

M0 book

Official book summary

This is the first book to explain ARM’s new Cortex M0 architecture and how to program it from ARM’s leading engineer, Joseph Yiu, author of the successful The Definitive Guide to the ARM Cortex-M3. As well as being packed with examples on how to use the M0 architecture, the book gives detailed information on the processor architecture, an overview of the software development flow, and information on how to locate problems in the program code and software porting. This book is ideal for embedded software developers, embedded product designers, students taking an embedded systems design course where the Arm Cortex- M0 is used, and electronics hobbyists.

ARM Assembly Language: Fundamentals and Techniques


Official book summary

Written by the director of ARM’s worldwide academic program, this volume gives computer science professionals and students an edge, regardless of their preferred coding language. For those with some basic background in digital logic and high-level programming, the book examines code relevant to hardware and peripherals found on today's microcontrollers and looks at situations all programmers will eventually encounter.

The book’s carefully chosen examples teach easily transferrable skills that will help readers optimize routines and significantly streamline coding, especially in the embedded space.

This book is easily adaptable for classroom use. Instructors can access features that include a solutions manual, assembly language basics, problems, and actual code. The book also provides access to a fully functional evaluation version of the RealView Microcontroller Development Kit from Keil.

While it is still an important skill, getting good instruction in assembly language is not easy. The availability of languages such as C and Java foster the belief that engineers and programmers need only address problems at the highest levels of a program's operation. Yet, even modern coding methods, when done well, require an understanding of basic assembly methods such as those gained by learning ARM. Certain features that are the product of today’s hardware, such as coprocessors or saturated math operations, can be accessed only through the hardware’s native instructions. For that matter, any programmer wishing to achieve results as exact as his or her intentions needs to possess a mastery of machine code basics as taught in the pages of this book.

Of the 13 billion microprocessor-based chips shipped in the last year, nearly 3 billion were ARM-based, making operational knowledge of ARM an essential component of any programmer’s tool kit.