如何把代码放在RAM区域
1.如果需要把某个函数放在RAM中运行,首先在sct文件中增加一个RAMCODESECTION
LR_IROM1 0x08000000 0x00010000 { ; load region size_region
ER_IROM1 0x08000000 0x00010000 { ; load address = execution address
*.o (RESET, +First)
*(InRoot$$Sections)
.ANY (+RO)
}
RW_IRAM1 0x20000000 0x0000FFC0 { ; RW data
*.o (RAMCODESECTION)
.ANY (+RW +ZI)
}
}
接着在程序中把RAMCODESECTION作为某个函数的前缀,则这个函数就会运行在RAM中,例如
__attribute__( ( section ( "RAMCODESECTION" ) ) ) void run_in_ram( void )
{
__nop( ) ;
}
|
把代码放到RAM区,实际上还是要保存在FLASH区的,任何在RAM里变量,要占用FLASH区,上电后载入到RAM