Book review of Real-Time C++, Second edition by Christopher Kormanyos
A lightning talk about the book "Real-Time C++, Second edition" by Christopher Kormanyos. Presented as a lightning talk at SwedenCPP Meetup. (https://www.youtube.com/watch?v=mxLyQE89i4I)
The Book Finale Book review Real-Time C++, Second Edition Christopher Kormanyos Stefan Petersen Stockholm C++ Meetup (part of SwedenCpp), 2019 Released under Creative Commons BY-NC-SA 3.0 CC BY: $ \ C Stefan Petersen Book review
The Book Finale Who am I and why do I care? Electronics designer and embedded programmer Graduated KTH Elektro 1998 My own business since 2008, AB since 2012 (Ciellt AB) Programming microcontrollers since 1995 Started open source project gerbv (gEDA) The quest for a “safer C” led me to C++ 1-2 years ago. Stefan Petersen Book review
The Book Finale Embedded microcontrollers Limits in CPU speed ==> most common 8-32 MHz Limits in RAM ==> 4 kb-384 kb (usually 10-16 kb) Limits in flash (program memory) ==> 16 kb-512 kb (usually 16-64 kb) Simple, direct connection to hardware (lights, buttons etc) ==> programming “close to the metal” Limited IO ==> serial port if you’re lucky, displays are special Stefan Petersen Book review
The Book Finale Embedded microcontrollers Limits in CPU speed ==> most common 8-32 MHz Limits in RAM ==> 4 kb-384 kb (usually 10-16 kb) Limits in flash (program memory) ==> 16 kb-512 kb (usually 16-64 kb) Simple, direct connection to hardware (lights, buttons etc) ==> programming “close to the metal” Limited IO ==> serial port if you’re lucky, displays are special Stefan Petersen Book review
The Book Finale Embedded microcontrollers Limits in CPU speed ==> most common 8-32 MHz Limits in RAM ==> 4 kb-384 kb (usually 10-16 kb) Limits in flash (program memory) ==> 16 kb-512 kb (usually 16-64 kb) Simple, direct connection to hardware (lights, buttons etc) ==> programming “close to the metal” Limited IO ==> serial port if you’re lucky, displays are special Stefan Petersen Book review
The Book Finale Embedded microcontrollers Limits in CPU speed ==> most common 8-32 MHz Limits in RAM ==> 4 kb-384 kb (usually 10-16 kb) Limits in flash (program memory) ==> 16 kb-512 kb (usually 16-64 kb) Simple, direct connection to hardware (lights, buttons etc) ==> programming “close to the metal” Limited IO ==> serial port if you’re lucky, displays are special Stefan Petersen Book review
The Book Finale Embedded microcontrollers Limits in CPU speed ==> most common 8-32 MHz Limits in RAM ==> 4 kb-384 kb (usually 10-16 kb) Limits in flash (program memory) ==> 16 kb-512 kb (usually 16-64 kb) Simple, direct connection to hardware (lights, buttons etc) ==> programming “close to the metal” Limited IO ==> serial port if you’re lucky, displays are special Stefan Petersen Book review
The Book Finale Embedded microcontrollers Limits in CPU speed ==> most common 8-32 MHz Limits in RAM ==> 4 kb-384 kb (usually 10-16 kb) Limits in flash (program memory) ==> 16 kb-512 kb (usually 16-64 kb) Simple, direct connection to hardware (lights, buttons etc) ==> programming “close to the metal” Limited IO ==> serial port if you’re lucky, displays are special Stefan Petersen Book review
The Book Finale Embedded microcontrollers Limits in CPU speed ==> most common 8-32 MHz Limits in RAM ==> 4 kb-384 kb (usually 10-16 kb) Limits in flash (program memory) ==> 16 kb-512 kb (usually 16-64 kb) Simple, direct connection to hardware (lights, buttons etc) ==> programming “close to the metal” Limited IO ==> serial port if you’re lucky, displays are special Stefan Petersen Book review
The Book Finale Embedded microcontrollers Limits in CPU speed ==> most common 8-32 MHz Limits in RAM ==> 4 kb-384 kb (usually 10-16 kb) Limits in flash (program memory) ==> 16 kb-512 kb (usually 16-64 kb) Simple, direct connection to hardware (lights, buttons etc) ==> programming “close to the metal” Limited IO ==> serial port if you’re lucky, displays are special Stefan Petersen Book review
The Book Finale Embedded microcontrollers Limits in CPU speed ==> most common 8-32 MHz Limits in RAM ==> 4 kb-384 kb (usually 10-16 kb) Limits in flash (program memory) ==> 16 kb-512 kb (usually 16-64 kb) Simple, direct connection to hardware (lights, buttons etc) ==> programming “close to the metal” Limited IO ==> serial port if you’re lucky, displays are special Stefan Petersen Book review
The Book Finale Embedded microcontrollers Limits in CPU speed ==> most common 8-32 MHz Limits in RAM ==> 4 kb-384 kb (usually 10-16 kb) Limits in flash (program memory) ==> 16 kb-512 kb (usually 16-64 kb) Simple, direct connection to hardware (lights, buttons etc) ==> programming “close to the metal” Limited IO ==> serial port if you’re lucky, displays are special Stefan Petersen Book review
The Book Finale What does this give? Optimise program use No exceptions No RTTI Use interrupts and DMA’s Precalculate as much as possible, maybe tables? Do not use dynamic memory Avoid dynamic bindings Stefan Petersen Book review
The Book Finale What does this give? Optimise program use No exceptions No RTTI Use interrupts and DMA’s Precalculate as much as possible, maybe tables? Do not use dynamic memory Avoid dynamic bindings Stefan Petersen Book review
The Book Finale What does this give? Optimise program use No exceptions No RTTI Use interrupts and DMA’s Precalculate as much as possible, maybe tables? Do not use dynamic memory Avoid dynamic bindings Stefan Petersen Book review
The Book Finale What does this give? Optimise program use No exceptions No RTTI Use interrupts and DMA’s Precalculate as much as possible, maybe tables? Do not use dynamic memory Avoid dynamic bindings Stefan Petersen Book review
The Book Finale What does this give? Optimise program use No exceptions No RTTI Use interrupts and DMA’s Precalculate as much as possible, maybe tables? Do not use dynamic memory Avoid dynamic bindings Stefan Petersen Book review
The Book Finale What does this give? Optimise program use No exceptions No RTTI Use interrupts and DMA’s Precalculate as much as possible, maybe tables? Do not use dynamic memory Avoid dynamic bindings Stefan Petersen Book review
The Book Finale Split into three sections I Language Technologies for Real-Time C++ II Components for Real-Time C++ III Mathematics and Utilities for Real-Time C++ Stefan Petersen Book review
The Book Finale Language Technologies for Real-Time C++ Getting Started with Real-Time C++ Working with a Real-Time C++ Program on a Board An Easy Jump-Start in Real-Time C++ Object-Oriented Techniques for Microcontrollers C++ Templates for Microcontrollers Optimised C++ Programming for Microcontrollers Stefan Petersen Book review
The Book Finale Components for Real-Time C++ Accessing Microcontroller Registers The Right Start Low-Level Hardware Drivers in C++ Custom Memory Management C++ Multitasking Stefan Petersen Book review
The Book Finale Mathematics and Utilities for Real-Time C++ Floating-Point Mathemathics Fixed-Point Mathemathics High-Performance Digital Filters C++ Utilities Extending the C++ Standard Library and the STL Stefan Petersen Book review
The Book Finale Appendices A A Tutorial for Real-Time C++ B A Robust Real-Time C++ Environment C Building and Installing GNU GCC Cross Compilers D Building a Microcontroller Circuit Stefan Petersen Book review
The Book Finale Conclusions Good book if you want to use C++ on a microcontroller. Have lots of example code. Is not a CS book. A basic knowledge of microcontrollers is good. Experience in programming these things helps. Short on details, often refers to other books. Stefan Petersen Book review
The Book Finale Conclusions Good book if you want to use C++ on a microcontroller. Have lots of example code. Is not a CS book. A basic knowledge of microcontrollers is good. Experience in programming these things helps. Short on details, often refers to other books. Stefan Petersen Book review
The Book Finale Conclusions Good book if you want to use C++ on a microcontroller. Have lots of example code. Is not a CS book. A basic knowledge of microcontrollers is good. Experience in programming these things helps. Short on details, often refers to other books. Stefan Petersen Book review
The Book Finale Conclusions Good book if you want to use C++ on a microcontroller. Have lots of example code. Is not a CS book. A basic knowledge of microcontrollers is good. Experience in programming these things helps. Short on details, often refers to other books. Stefan Petersen Book review
The Book Finale Conclusions Good book if you want to use C++ on a microcontroller. Have lots of example code. Is not a CS book. A basic knowledge of microcontrollers is good. Experience in programming these things helps. Short on details, often refers to other books. Stefan Petersen Book review
The Book Finale Conclusions Good book if you want to use C++ on a microcontroller. Have lots of example code. Is not a CS book. A basic knowledge of microcontrollers is good. Experience in programming these things helps. Short on details, often refers to other books. Stefan Petersen Book review
The Book Finale Other Sources “Getting Started with C++ in Embedded Systems”, Michael Barr & Michael Wilk (Barr Group), https://vimeo.com/170004397 “Hands-On Embedded Programming with C++17”, Maya Posch, Packt Publishing Limited (www.packtpub.com) Stefan Petersen Book review
The Book Finale Questions Thank you! Real-Time C++, Second edition, Christopher Kormanyos Efficient Object-Oriented and Template Microcontroller Programming Questions? Contact: spe (at) ciellt (dot )se Stefan Petersen Book review