Embedded Systems Firmware Demystified

So what have you learned? You have stepped through a basic CPU schematic and gained a general understanding of how the microprocessor, the RAM, and ROM all work together. You have successfully taken source code from a familiar, well-understood environment (a PC or Unix workstation) and molded it (through cross-compilation) into the raw binary data that is needed by the CPU on the circuit board. The bytes in the final file that we transferred to the device programmer a few chapters ago are the exact bytes that the CPU wants to see. They represent the instructions and data needed by the CPU to carry out the task that the C program suggests.
You ve stepped through a fairly generic approach that deals with the tough problem of booting an embedded system for the first time. The approach presented in this text is useful on a wide range of CPUs. MicroMonitor provides a good set of development tools and is useful with a variety of RTOSs and hardware platforms. You ve learned about some different types of debugging strategies, and you ve seen, step by step, what s involved in porting the monitor to a new platform. What s left?
I recall in my second semester of college calculus asking my professor Is there any other math stuff after this? If she had any coffee in her mouth at the time, I would have been soaked!
An overview like this is only the beginning. Embedded systems programming involves a lot of decision-making. Some solutions might be...