The following section describes the role of the target specific startup code.

When you create a new project to produce an executable file using a target specific project template, a file containing the default startup code for the target will be added to the project. Initially a shared version of this file will be added to the project, if you want to modify this file you should select the file in the project explorer and then select Import to copy the file to your project directory.

The target startup file typically consists of the following:

- _vectors - This is the exception vector table. It is put into it's own .vectors section in order to ensure that it is always placed at address 0x00000000.
- reset_handler - This is the main reset handler function and typically the main entry point of an executable. The reset handler will usually carry out any target specific initialisation and then jump to the _start entry point. In a C system the _start entry point is in the crt0.s file.
- undef_handler - This is the default undefined instruction exception handler. This has been declared as a weak symbol to allow the user to override the implementation.
- swi_handler - This is the default software interrupt exception handler. This has been declared as a weak symbol to allow the user to override the implementation.
- pabort_handler - This is the default prefetch abort exception handler. This has been declared as a weak symbol to allow the user to override the implementation.
- dabort_handler - This is the default data abort exception handler. This has been declared as a weak symbol to allow the user to override the implementation.
- irq_handler - This is the default IRQ exception handler. This has been declared as a weak symbol to allow the user to override the implementation.
- fiq_handler - This is the default FIQ exception handler. This has been declared as a weak symbol to allow the user to override the implementation.