Can anyone recommend me a good book or online resource for embedded system's software design? Preferably a book that is either written for ARM or platform independent. I am already familiar with C programming and how to program microcontrollers (UART, SPI, timers, registers, volatile, assembly, etc..). I'm finding that the books I am coming across are geared too much towards beginners. What I am looking for is a book(s) that covers things like design methodologies, data structures and algorithms, and structuring software. I am working on building a robot that will do path finding autonomously, and I'm finding that I am really lacking in software design knowledge. For reference, I am a 4th year EE student and have taken one class on embedded systems, and I'm going on a year long internship before going back to school to finish my degree and take a second embedded course. Some topics I would be interested in: -Software design methodologies and how to structure embedded programs -Control algorithms (PID and path finding). -Data structure applications for embedded systems -Debugging -Written for ARM, or platform independent -Programming for robots (working with sensors..) If anyone knows of some good resources for me, It would make me very happy. :D Thank you!