A guide to better embedded C++
[…]The motivation behind this post is pretty simple: there is a lot (A LOT) of bad embedded code. There are several reasons for that:
* No background programming experience or education. Very often electronics students are taught plain C or C with classes (watch Kate talk about that).
* Difficult debugging. Most embedded systems are slow and have very limited debug abilities (sometimes even none of them at all). This is not a problem per se but may lead to numerous hotfixes and spaghetti code.
* Exotic architectures (where the byte is 24 and 32 bit long) with various compilers. Previously it used to be mostly custom stuff, but now processor manufacturers tend to fork some GCC or LLVM version and build a custom toolchain. This leads to problems with code reuse and significantly slows down the new standards adoption.