我构建了在自定义地址加载的不同固件(引导加载程序和可加载的固件)。
引导加载程序从0x0开始,可加载固件从0x3000开始。
所以我有两个链接器文件,用于引导加载程序:
/* ... */
MEMORY
{
interrupts (rx) : ORIGIN = 0x00000000, LENGTH = 0xC0
cfmprotrom (rx) : ORIGIN = 0x00000400, LENGTH = 0x10
text (rx) : ORIGIN = 0x00000800, LENGTH = 128K - 0x800
data (rwx) : ORIGIN = 0x1FFFF000, LENGTH = 16K /* SRAM */
}
SECTIONS
{
/* ... */
}
除了一些具有偏移量(0x3000)的存储区之外,另一个完全相同。
由于两个链接器文件几乎相同,我只想使用一个,从命令行指定偏移地址。
我知道链接器INCLUDE
命令在这里很有用,但它不是动态的。
我不知道这是否是常用方法,但是可以从命令行为这些区域指定偏移地址,还是使用INCLUDE
是正确的方法?