Programmers seeking information about real-time performance or advanced knowledge of the C++ language will delight in this book. The reader is led along the arduous road of templates, generic metaprogramming, and object-oriented techniques using a diverse collection of code examples. The ultimate goal of implementing real-time embedded microcontroller systems using C++ is brilliantly achieved, opening the door for extension to real-time applications.
The book is very well written and uses an interdisciplinary approach to present real-time C++ development in three main parts. The first part introduces language technologies ranging from compile-time initializations to lambda expressions and variadic templates of C++11. The second part continues the discussion of preliminary startup code, interrupt function attributes, and the thread support library migrated from Boost to C++11. The last part dives into implementation details of both floating-point and fixed-point mathematics, always with efficiency in mind, providing directions for C++ programming that enlighten the reader.
Throughout the book, the author masterfully balances sentence length in each chapter, employing short sentences in sequence for simple notions while favoring clarity over brevity when needed. Chapter 1 introduces a light-emitting diode (LED) circuit program as an example to introduce basic concepts of C++. Chapter 2 builds the hardware board for the first example, aiming for compilation and execution of the chapter 1 program on it. In chapter 3, the author introduces additional concepts for C++ with many examples, with a focus on the standard template library (STL) classes and algorithms. Chapter 4 discusses object-oriented techniques using the base LED program, and different tools, such as dynamic polymorphism and pure virtual functions. Chapter 5 enters the realm of templates and template scalability in the context of C-style code. Chapter 6 presents insights on optimization strategies, taking into account algorithm complexity, code size, and runtime, and makes suggestions for when to use assembly. In chapters 7 to 11, the book returns to microcontroller programming and the LED program example in a development crescendo.
Chapters 12 through 15 finish with more complex functionalities, using arithmetic as an example and defining new data types for calculations. In chapter 14, the author compares the efficiency of coding in C++ with assembly-level programming.
In summary, the book provides excellent reading for advanced programmers, while beginners are advised to spend some time with C and C++ before tackling it.
More reviews about this item: Amazon