ARM启动文件请教
我刚刚看到那个LPC22XX的工程摸板,里面有几个后缀名为.scf的文件我也看了是对应的加载位置,但是mem_a.scf是对应的FLASH.RAM.还是片外的,能不能分别说明下,还有我看了语句Startup.o(MyStacks),这个是个什么啊!函数还是,这个起什么作用,希望得到清楚明白的回答,谢谢! 帅哥哥,你贴一些代码呀。我从来没见过你说的那个Startup.o。 ;********************************************************************************************************/
ROM_LOAD 0x0
{
ROM_EXEC 0x00000000
{
Startup.o (vectors, +First)
* (+RO)
}
IRAM 0x40000000
{
Startup.o (MyStacks)
}
STACKS_BOTTOM +0 UNINIT
{
Startup.o (StackBottom)
}
STACKS 0x40004000 UNINIT
{
Startup.o (Stacks)
}
ERAM 0x80000000
{
* (+RW,+ZI)
}
HEAP +0 UNINIT
{
Startup.o (Heap)
}
HEAP_BOTTOM 0x80080000 UNINIT
{
Startup.o (HeapTop)
}
}
呵呵,就是上面的! 这是链接脚本,我也就明白这些了,帮顶。 呵呵!感谢! 建议你看一下zlg的深入浅出arm7,里面有详细介绍 传说中这个叫 分散加载文件
ROM_LOAD 为加载区的名称,其后面的0x00000000 表示加载区的起始地址(存放程序代码的起始地址)
ROM_LOAD 0x0
{;ROM_EXEC 描述了执行区的地址,放在第一块位置定义
ROM_EXEC 0x00000000
{;从起始地址开始放置向量表(即Startup.o(vectors, +First),其中Startup.o 为Startup.s 的目标文件)
;+First表示Vector段放在最前面 Startup.o (vectors, +First);接着放置其它代码(即* (+RO)),* 是通配符,类似WINDOW下搜索用的通配符
* (+RO)
};变量区IRAM 的起始地址为0x40000000
IRAM 0x40000000
{;放置Startup.o (MyStacks)
Startup.o (MyStacks)
};+0表示接着上一段,UNINIT 表示不初始化
STACKS_BOTTOM +0 UNINIT
{;放置AREA StackBottom, DATA, NOINIT
Startup.o (StackBottom)
};接着从0x40004000 开始,放置 AREA Stacks, DATA, NOINIT,UNINIT 表示不初始化
STACKS 0x40004000 UNINIT
{
Startup.o (Stacks)
};外部RAM从0x80000000开始为变量区
;如果片外RAM起始地址不为0x8000 0000,则需要修改mem_.scf文件
ERAM 0x80000000
{
* (+RW,+ZI)
};+0表示接着上一段,UNINIT 表示不初始化
HEAP +0 UNINIT
{;放置堆底, AREA Heap, DATA, NOINIT
Startup.o (Heap)
};接着在外部0x80080000 放置堆顶
;这个地址是片外RAM 的结束地址,根据实际情况修改 HEAP_BOTTOM 0x80080000 UNINIT
{
Startup.o (HeapTop)
}
}
;重定向__user_initial_stackheap 函数
;分配新的bottom_of_heap地址等,R0-R3是函数必须的返回值,返回bottom_of_heap的值
;通过分散加载描述文件,重定向其位置,bottom_of_heap等已经在Startup.s中定义为DATA类型
__user_initial_stackheap
LDR r0,=bottom_of_heap
; LDR r1,=StackUsr
LDR r2,=top_of_heap
LDR r3,=bottom_of_Stacks
MOV pc,lr
--------------------------------------------------------------------------------------------
我摘自网上,自己没深入研究过
刚开始的时候我也是想从底层一直搞到顶层的, 后来发现这有点行不通
只需要知道改哪里就可以了。 谢谢,非常感谢! 启动文件,纠结!
页:
[1]