Я делал вот так:
Код
extern char __etext, __data_start__, __data_end__, __bss_start__, __bss_end__, __vtab_start__;
// copy to RAM for execution
int src = 0;
int dst = 0x20000000;
int len = (int)(&__etext + (&__data_end__ - &__data_start__));
memcpy((void*)dst, (void*)src, len);
RCC->APB2ENR |= RCC_APB2ENR_SYSCFGEN;
SYSCFG->MEMRMP = 3; // map RAM at 0
Правда, у меня STM32F4 и GNU Arm Embedded.
Но вообще цель сомнительная. Не надо делать код, который должен быть предсказуем по времени выполнения.