参考1:(stm32分散加载文件.sct文件解析)http://news.eeworld.com.cn/mcu/2019/ic-news040143664.html
参考2:(分散加载博客目录)https://blog.csdn.net/weixin_39118482/category_7617016.html
1. 分散加载概念
- 分散加载文件(即scatter file,后缀为.scf)。分散加载文件是一个文本文件,通过编写一个分散加载文件来指定ARM连接器在生成映像文件时如何分配RO,RW,ZI等数据的存放地址。
2. 更改程序运行的基址
LR_IROM1 0x08001000 0x10000 { ; load region size_region 加载域地址为0x08001000 大小为0x10000
ER_IROM1 0x08001000 0x10000 { ; load address = execution address 运行域地址0x08001000
*.o (RESET, +First)
*(InRoot$$Sections)
.ANY (+RO)
}
RW_IRAM1 0x20000000 0x10000 { ; RW data 数据域地址0x20000000,大小0x10000
.ANY (+RW +ZI)
}
}
- 注意:改变完sct文件的内容后,如果不能运行,则说明和单片机默认的基址不一样。在单步模式下想要运行,可以更改.ini文件里的内容。
详情可参考链接里面的说明。
3.在分散加载文件中使用预处理(宏定义)
参考:(手把手教你写分散加载)https://blog.csdn.net/weixin_39118482/article/details/80392270
在分散加载文件的头部加入语句:#! armcc -E
关联知识点:JLinkSettings.ini文件解释
- 参考:keil软件里的帮助文档
- 参考:https://blog.csdn.net/u014783785/article/details/92581102
将.ini 文件添加到初始化文件中,KEIL 进入调试模式的时候,会自动加载这个文件,并执行里面的内容;
另外这个文件还可以在不退出调试模式的情况下更改内容,编译,然后执行里面的函数;