2、下面我简单介绍几个功能,详细请参考 EWARM_DevelopmentGuide
2.1 添加额外的region
比如我要添加另一个名为ROM2的ROM区域,大小是256bytes,起始地址是0x80000.
define region ROM = Mem:[from 0x80000 size 0x100];
2.2 教你怎样放置SECTION
如果你要把你的只读常量放置在你指定的域而不是编译器默认的位置,你就得按如下操作了:
define region CONST_region = Mem:[from 0x100 size 0x100];
place in CONST_region{readonly section .rodata}
2.3 把一个段放置在指定位置
place at address Mem:[0] {readonly section .intvec} //--将向量表放置在地址0处。
Note:之前在看启动代码时,老在想这个向量表示怎么放到地址0处的呢,查了一下reference
__vector_table是编译器专有字符,表示出处开始放置向量表。
在代码开始处就声明了此段为.intvec。链接的时候在依据icf把它放到地址0处。
2.4 将需要从RAM中运行的代码搬到RAM中
Initialize by copy {section .textrw}
二、下面是我对generic_cortex.icf的注解
|