This preview shows page 1. Sign up to view the full content.
Unformatted text preview: ing the user registers and then using an instruction to restore the PC and the CPSR atomically. This may involve some adjustment of the PC value saved in rl4_exc to compensate for the state of the pipeline when the exception arose. This is described in more detail in Section 5.2 on page 108. 2.4 ARM development tools
Software development for the ARM is supported by a coherent range of tools developed by ARM Limited, and there are also many third party and public domain tools available, such as an ARM back-end for the gcc C compiler. Since the ARM is widely used as an embedded controller where the target hardware will not make a good environment for software development, the tools are intended for cross-development (that is, they run on a different architecture from the 44 The ARM Architecture one for which they produce code) from a platform such as a PC running Windows or a suitable UNIX workstation. The overall structure of the ARM cross-development toolkit is shown in Figure 2.4. C or assembler source files are compiled or assembled into ARM object format (.aof) files, which are then linked into ARM image format (.aif) files. The image format files can be built to include the debug tables required by the ARM symbolic debugger (ARMsd which can load, run and debug programs either on hardware such as the ARM Development Board or using a software emulation of the ARM (the ARMulator). The ARMulator has been designed to allow easy extension of the software model to include system features such as caches, particular memory timing characteristics, and so on. The ARM C compiler The ARM C compiler is compliant with the ANSI (American National Standards Institute) standard for C and is supported by the appropriate library of standard functions. It uses the ARM Procedure Call Standard (see Section 6.8 on page 175) for all externally available functions. It can be told to produce assembly source output instead of ARM object format, so the code can be inspected, or even hand optimized, and then assembled subsequently. The compiler...
View Full Document
- Spring '09