Programming Embedded Systems in C and C++