;/****************************************Copyright (c)************************************************** ;** Guangzou ZLG-MCU Development Co.,LTD. ;** graduate school ;** http://www.zlgmcu.com ;** ;**--------------File Info------------------------------------------------------------------------------- ;** File Name: men_c.scf ;** Last modified Date: 2004-09-17 ;** Last Version: 1.0 ;** Descriptions: Scatter File ;** ;**------------------------------------------------------------------------------------------------------ ;** Created By: Chenmingji ;** Created date: 2004-09-17 ;** Version: 1.0 ;** Descriptions: First version ;** ;**------------------------------------------------------------------------------------------------------ ;** Modified by: ;** Modified date: ;** Version: ;** Descriptions: ;** ;********************************************************************************************************/
ROM_LOAD 0x0 { ROM_EXEC 0x00000000 { Startup.o (vectors, +First) * (+RO) }
IRAM 0x40000000 { Startup.o (MyStacks) * (+RW,+ZI) }
HEAP +0 UNINIT { Startup.o (Heap) }
STACKS 0x40002000 UNINIT { Startup.o (Stacks) } }
==================================================================== Q1:ROM_LOAD 0x0 是机器上电(或复位)后跳到该处吗?如果是,紧接着就跳到 ROM_EXEC 0x00000000,也就是将RO程序代码放在0X00000000开始地址处。此时还有一个问题, Startup.o (vectors, +First),语法如何理解?还有下面的一个*,是表示什么意思?
Q2:然后将可读写的数据段,以及未初始段放在0x40000000开始处。对吗?
Q3: HEAP +0 UNINIT 是表示在放完数据段和未初始段内容后的后面吗?+0是不是表示地址向上增长的方向放置?
Q4: STACKS 0x40002000 UNINIT, 这段是表示堆地址的上限地址是0x40002000吗?如果是的,如何判断出来的呢?
可能是太基础了,或者是问的有点肤浅,但是我恳请你的回复!谢谢~!
|