3.5.1. The vector table

All ARM systems have a vector table. The vector table does not form part of the initialization sequence, but it must be present for any exception to be serviced. It must be placed at a specific address, usually 0x0. To do this you can use the scatter-loading +FIRST directive, see Example 3.4.

Example 3.4. Placing the vector table at a specific address

ROM_LOAD 0x0000 0x4000{  ROM_EXEC 0x0000 0x4000      ; root region  {    vectors.o (Vect, +FIRST)  ; Vector table    * (InRoot$$Sections)      ; All library sections that must be in a                              ; root region, for example, __main.o,                              ; __scatter*.o, __dc*.o, and * Region$$Table  }  RAM 0x10000 0x8000  {    * (+RO, +RW, +ZI)         ; all other sections  }}

The vector table for the microcontroller profiles is very different to most ARM architectures. For an example of the vector table for your processor, see:

Copyright © 2002-2010 ARM. All rights reserved.ARM DUI 0203J
Non-ConfidentialID101213