找回密码
 注册
搜索
查看: 2777|回复: 14

[资料] scat*.txt 怎么看,怎么调整!

[复制链接]
发表于 2007-4-6 17:36:03 | 显示全部楼层 |阅读模式
有那个大哥知道mtk 上scat*.txt怎么看,怎么调整啊,怎样去分析flash 分配有没有!
在着先谢谢了啊!
发表于 2007-4-7 10:38:17 | 显示全部楼层

请看看这个文件吧

【文件名】:0747@52RD_分散加载文件应用实例.rar
【格 式】:rar
【大 小】:7K
【简 介】:
【目 录】:


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
点评回复

使用道具 举报

 楼主| 发表于 2007-4-7 14:04:02 | 显示全部楼层
谢谢!
点评回复

使用道具 举报

发表于 2007-6-16 19:15:57 | 显示全部楼层
haha
点评回复

使用道具 举报

发表于 2007-8-17 14:17:23 | 显示全部楼层
这个文件一定要自己改吗
点评回复

使用道具 举报

发表于 2008-2-18 17:32:12 | 显示全部楼层
我晕!买不起呀!
点评回复

使用道具 举报

发表于 2008-3-6 21:29:34 | 显示全部楼层
要从原理上掌握一下
点评回复

使用道具 举报

发表于 2008-8-4 14:16:17 | 显示全部楼层
买一个学习学习
点评回复

使用道具 举报

发表于 2008-8-5 09:33:27 | 显示全部楼层
学习一下!!!看看!!!
点评回复

使用道具 举报

发表于 2008-8-7 14:01:56 | 显示全部楼层
研究一下
点评回复

使用道具 举报

发表于 2009-7-18 11:27:01 | 显示全部楼层
以下是引用henry_he在2008-8-7 14:01:56的发言:
研究一下
点评回复

使用道具 举报

发表于 2009-7-18 14:23:17 | 显示全部楼层
资料不错,配合下面看会更好.
简单应用时可以不写.scf文件。而在"Output"页中选择"Simple".然后填写"RO Base"和"RW Base"的起始地址。在"Lay Out"页中,填写Object/Symble: Startup.o, Section: Start.编写启动文件:Startup.s.

在"Option"页里的"Image Entry Point"填入起始地址。
--------------------------------------------------------------------------------

Scatter-Load Description File的结构:

".scf"文件中的"+RW"对应".s"源文件中的"READWRITE".
".scf"文件中的"+ZI"对应".s"源文件中的"NOINIT".
".scf"文件中的"+RO"对应".s"源文件中的"READONLY".

在".s"源文件中有:
AREA area_name CODE/DATA,READONLY/NOINIT/READWRITE
END


".scf"的例子

内容   注解
ROM_LOAD 0x80000000
{   Name of Load Region, Start Address for Load Region and Maximum size of Load Region(省略了)
  ROM_EXEC 0x80000000 0x20000
{ 片外存储区,从0x80000000开始,最多0x20000字节。
  Startup.o(Vector,+First) Startup模块的Vector段放在最前面。注1
  *(+RO) 其他所有模块中的所有代码和只读的数据放在这里。
  }  
  IRAM 0x40000000 0x00004000
{ 片内RAM区,从0x40000000开始,最多0x4000字节
  Startup.o(MyStacks,+first) 指定Startup.o中MyStacks放在最前面。
  Startup.o(+RW,+ZI) Startup.o中的其他+RW/+ZI段。注1
  os_cpu_a.o(+RW,+ZI)  
  }  
  STACKS 0x40004000 UNINIT
{ 片内16K RAM的顶端,存放不需要被"C library"初始化的段。
  Stack.o(+ZI) 注2
  }  
  ERAM 0x80040000
{  
  *(+RW,+ZI)  
  }  
  HEAP +0 UNINIT
{ "+0"表示接着上一段"ERAM"的结尾,继续安排存储区。
  Heap.o(+ZI) 注3
  }  
}    



下面是在scf文件中引用过的源文件示意: "Startup.s"
code 32
area Vectors,CODE,READONLY
entry
...
end 注1:在"Startup.o"里面会生成名为"Vectors"的段,段的属性为"READONLY"
"Stack.s"
area Stacks, DATA, NOINIT
export StackUsr
StackUsr SPACE 1
end 注2: 在"Stack.o"里面会生成名为"Stacks"的段,段的属性为"NOINIT",该属性对应scf文件中的"+ZI". 该段不需要初始化或者可以被初始化为"0".
"Heap.s"
area Heap,DATA,NOINIT
export bottom_of_heap
bottom_of_heap SPACE 1
end 注3: "Heap.o"里面名为"Heap"的段。


在Scatter文件中最好每一个Region都加一个Maximum参数,这样当编译时如果实际使用的空间大于Maximum Size,会有Error:16220E: Excution region xxx size (xxx bytes) exceeds limit (xx bytes)。如果地址有重复,会有Error: 16221E: Excution region xxx overlaps with excution region xxx。前一个Region的首地址 + Maximum > 后一个Region的首地址时不一定有Error。只有当一分配的内存出现覆盖时才会有Error。

Region的"UNINIT"之类的参数要放在"Maximum size"参数之前。
点评回复

使用道具 举报

发表于 2009-10-10 20:17:02 | 显示全部楼层

好东东,谢谢了

好东东,谢谢了
点评回复

使用道具 举报

发表于 2009-12-7 16:55:05 | 显示全部楼层
了解下,谢谢,支持
点评回复

使用道具 举报

发表于 2009-12-9 00:14:53 | 显示全部楼层
不错不错
点评回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

Archiver|手机版|小黑屋|52RD我爱研发网 ( 沪ICP备2022007804号-2 )

GMT+8, 2025-1-24 08:55 , Processed in 0.069194 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表