你的問的應該是要把code放置RAM上做執行吧
以efm32為例,使用GCC語法
會在程式上加__attribute__((section(".ram")))
例如
__attribute__((section(".ram")))
void foo(int a, int b)
{
int i;
}
加上後當boot開做.init時,就會把程式搬進ram上,
之後程式呼叫會以ram執行的型態去執行,這種方法通常會用在bootloader上,
加快程式的執行速度,在Linker時期會依據.icf的設定去放置並排序,
程式foo的進入點你看應該會看到它ram上執行,
而且所有相對應的呼叫也會指到ram的進入點位置。