keill默认对通过链接文件link.sct(分散加载文件)放到指定的位置。
分为加载区和执行区
加载区:程序复位和加载的代码和数据
执行区:程序执行过程中,从每个加载区可创建一个或多个执行区
; *************************************************************
; *** Scatter-Loading Description File generated by uVision ***
; *************************************************************
LR_IROM1 0x08000000 0x00100000 { ; load region size_region
ER_IROM1 0x08000000 0x00100000 { ; load address = execution address
*.o (RESET, +First)//这行的意思就是说,把所有目标文件.o结尾的代码,都放置在这里,但是要把标识为RESET段的代码放置在最前面
*(InRoot$$Sections)
.ANY (+RO)
}
RW_IRAM1 0x20000000 0x00020000 { ; RW data
.ANY (+RW +ZI)
}
}
LR_IROM1 0x08000000 0x00100000 对应:加载区名称,起始地址,偏移量
ER_IROM1 0x08000000 0x00100000对应:执行区名称,起始地址,偏移量
.o匹配所有目标, (或“.ANY”)匹配所有目标文件和库
RW_IRAM1 0x20000000 0x00020000对应:读写数据区,起始地址,偏移量