概述
有时候需要将某个源文件放置在某个地址里面,此时需要设置特殊的方式将指定的源文件放置到地址里面。
参考方法
1、设置内存空间
Memory
{
PFLASH_USER_CODE (rx!p) : org= 0x801FFFE0 ,len = 32K
x1 (rx!p) : org= 0xyyyyyyyy ,len = 0xzzzz
.......
xn (rx!p) : org= 0xuuuuuuuu ,len = 0xvvvv
}
USER_CODE :ALIGN(4)
{
PROVIDE(__USER_CODE_START = .)
*(.text.User_code*);
*File1.o(.text*);
*File2.o(.text*);
PROVIDE(__USER_CODE_END = .)
} > PFLASH_USER_CODE
2、内容解析
*File1.o(.text*) 最前面的*表示所有文件
*File1.o(.text*) 里面的*File1.o表示 所有文件里面末尾字符串为File1.o的 可以是xxxFile1.o 也可以是 yyyFile1.o
*File1.o(.text*) 里面的(.text*) 表示File1.c里面属于text相关段的代码
注意一个点
*File1.o(.text*) 里面的(.text*) 表示File1.c里面属于text相关段的代码 这句话里面是属于text相关段的代码,有时候某一段代码我们会自己定义段名,例如下图
.ResetPoint :ALIGN(4);
{
*(.start_code);
.= ALIGN(4);
} > PFLASH_STARTUP
注意另一个点
.=ALIGN(4) 里面的.表示地址,也就是在 *(.start_code);存储之后看下是不是按照4字节对齐的,不够的话需要在 *(.start_code);补足4字节对齐,假设剩下3字节,就补上3字节,剩下2个就补2个。