分散加载文件的使用

参考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. 更改程序运行的基址

  • 参考:https://blog.csdn.net/weixin_39118482/article/details/80066566
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 进入调试模式的时候,会自动加载这个文件,并执行里面的内容;
    另外这个文件还可以在不退出调试模式的情况下更改内容,编译,然后执行里面的函数;

你可能感兴趣的:(stm32,嵌入式技术)