Getting Started with Cortex-M3 Development

This chapter focuses on the factors that makes Cortex-M3's products different from another processor. Since revision 0 of the Cortex-M3 does not have a double word stack alignment feature in its exception sequence, some compiler tools, such as ARM RealView Development Suite (RVDS) and the KEIL RealView Microcontroller Development Kit, have special options to allow software adjustment of stacking, which allows the developed application to be EABI compliant. This is important if it has to work with other EABI-compliant development tools. To determine which revision of the Cortex-M3 processor is used inside the microcontroller or SoC, one can use the CPU ID Base Register in the NVIC. Individual debug components inside the Cortex-M3 processor also carry their own ID registers, and the revision field might also be different between revision 0 and revision 1. Furthermore, a number of C compiler suites and development tools are already available for the Cortex-M3. The GNU C Compiler from CodeSourcery provides a free solution. At this writing, the main GNU C Compiler (GCC) does not have Cortex-M3 support; however, this support will be merged into the main GCC in the near future. One can also get evaluation versions of some commercial tools such as RealView-MDK