
Start execution in SPIFI(ROM) and at startup, code from ROM is copied to RAM and shadow pointer is modified to RAM. So at end all the code and vector table is executed from RAM.
The firmware is set up for compilation with the GCC toolchain available here: https://code.launchpad.net/gcc-arm-embedded