本文介绍: 这是代码的加载域,从Target的配置看,ROM的起始地址和范围分别就是0x08000000 0x00040000,而LR_IROM1为加载域名称,代表这块存储区域。*.o表示选择所有的.o文件,均放在这里,RESET为节区名,+First表示将RESET节区放在最前面。keil编译器在链接的时候,是根据分散加载(.scf后缀的文件)来确定程序的加载域和运行域的。表示将剩下的,所有的RO(readeonly,只读的)属性的节区放这里。这是将标准库里,有使用到的相关文件或节区,放到这里,挨着上面的*.o。
1 SCF文件
keil编译器在链接的时候,是根据分散加载(.scf后缀的文件)来确定程序的加载域和运行域的。
2 SCT分散加载文件
打开一个STM32的工程,找到工程配置的入口,选择Target。
再选择Linker
我们去掉第一个勾,看到Scatter File那一行可以修改和编辑,以下是分散加载文件的具体内容:
分号后面是注释。
这是代码的加载域,从Target的配置看,ROM的起始地址和范围分别就是0x08000000 0x00040000,而LR_IROM1为加载域名称,代表这块存储区域。
加载域括起来的,为执行域。本文件有两个执行域:ER_IROM1和RW_IRAM1。类似的,0x08000000和0x00040000为ER_IROM1的起始地址和大小。
*.o表示选择所有的.o文件,均放在这里,RESET为节区名,+First表示将RESET节区放在最前面。RESET在启动文件.s文件可以看到。
3 SCF文件编写
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。