arm 启动 文件烧写地址

[复制链接]
2742|5
 楼主| 780653337378 发表于 2011-10-26 09:39 | 显示全部楼层 |阅读模式
arm在flash启动,bootloader烧写在flash的0x00000000处,启动过程中要将falsh的文件搬到sdarm中,然户在sdram中运行,main.c编译后的文件应该也是被搬运到sdram中了,请问在搬运之前,也就是main.c应该烧写在什么位置?
huang1shan 发表于 2011-10-26 11:32 | 显示全部楼层
LZ贴发错地方了,去ST版块发吧
ycz9999 发表于 2011-10-26 12:37 | 显示全部楼层
其实 你自己已经知道了答案呀
 楼主| 780653337378 发表于 2011-10-26 13:33 | 显示全部楼层
在sdram处,假设地址为0x80000000,b  main.c,执行后就会进入逻辑的00000000处,如果在这之前有地址重映射的话,对逻辑的00000000操作就是对0x80000000操作,而0x8000000处正好是拷贝的main.c,这样就可以进入main.c了,这样理解对吗?如果对的话,b  main.c,执行后就会进入逻辑的00000000处,这个是默认的吗
ycz9999 发表于 2011-10-26 22:35 | 显示全部楼层
4# 780653337378 其实 这个得看具体的芯片吧  但是有一点都是一样的   对于ARM 架构的CPU,上电PC便指向了0x0    MIPS架构的CPU指向的是0xbfc00000。
另外,CPU上电后第一条指令不是立即就跳转到main.c,还有一段用汇编写的启动代码。
具体细节,你可以参考下现在资料比较丰富的s3c2440a的启动过程。
还有有的CPU涉及的启动过程比较复杂了,比如有多级引导。
我也没学多久,我前段时间总结了一篇日志,就是关于ARM9(at91rm9200)的启动过程的。
链接:http://blog.21ic.com/user1/7903/archives/2011/86532.html
PS:希望对你有所帮助。
yinyangdianzi 发表于 2011-10-27 11:24 | 显示全部楼层
看答案
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

17

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部