你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

请教SCATTER文件格式

[复制链接]
netlhx 提问时间:2015-9-1 08:10 /
SCATTER文件可以用来设置代码及变量的位置,只是不太清楚这种语法的格式


LR_IROM1 0x08000000 0x00100000  {    ; load region size_region
  ER_IROM1 0x08000000 0x00100000  {  ; load address = execution address
   *.o (RESET, +First)
   *(InRoot$$Sections)
   .ANY (+RO)
  }
  RW_IRAM1 0x20000000 0x00050000  {  ; RW data
   .ANY (+RW +ZI)
   }
}   
哪位有这方面的介绍资料或直接就上面的代码解释一番么?


收藏 评论8 发布时间:2015-9-1 08:10

举报

8个回答
creep 回答时间:2015-9-1 08:58:20
LR_IROM1 0x08000000 0x00100000  是加载域(load region size_region),一般程序下载HEX/BIN就是下载到这个地方。
下面的是运行域(execution address)了,一般的加载域和运行域起始地址相同,也有不同的比如SDRAM等外设运行代码时。运行域中的代码存放顺序就是first放reset向量,下面的放*(InRoot$$Sections)用于复制一些代码相当于启动文件中的_main(),再下面就是只读的存放了。
ER_IROM1 0x08000000 0x00100000  {  ; load address = execution address
   *.o (RESET, +First)
   *(InRoot$$Sections)
   .ANY (+RO)
  }

下面的就是RAM的设置了,放读写和初始化为0的变量
  RW_IRAM1 0x20000000 0x00050000  {  ; RW data
   .ANY (+RW +ZI)
   }

版主是不是想设置F7的flash运行地址使用TCM接口的ART加速或者走AXI接口利用L1-cache,这个官方好像有个例子,也可以设置不同堆栈ram运行地址。


至于分散加载的详细说明好像keil网站上有个文档讲解:Linker User Guide  ,第七章专门说的就是Scatter-loading Features
yanhaijian 回答时间:2015-9-1 09:11:02
你百度搜索分散加载。
moyanming2013 回答时间:2015-9-1 10:41:38
Mandelbrot_Set 发表于 2015-9-1 08:57
refer
http://www.keil.com/support/man/docs/armlink/armlink_pge1362075656353.htm

正解。。。
netlhx 回答时间:2015-9-1 11:48:50
Mandelbrot_Set 发表于 2015-9-1 08:57
refer
http://www.keil.com/support/man/docs/armlink/armlink_pge1362075656353.htm

感谢啊
netlhx 回答时间:2015-9-1 11:49:01
creep 发表于 2015-9-1 08:58
LR_IROM1 0x08000000 0x00100000  是加载域(load region size_region),一般程序下载HEX/BIN就是下载到这 ...

感谢啊
netlhx 回答时间:2015-9-1 11:49:22
yanhaijian 发表于 2015-9-1 09:11
你百度搜索分散加载。

感谢啊
netlhx 回答时间:2015-9-1 11:49:30

感谢啊

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版