Programming Embedded Systems: With C and GNU Development Tools