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

请教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管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版