打印

arm 启动 文件烧写地址

[复制链接]
1959|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处,这个是默认的吗

使用特权

评论回复
5
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:希望对你有所帮助。

使用特权

评论回复
6
yinyangdianzi| | 2011-10-27 11:24 | 只看该作者
看答案

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

17

帖子

1

粉丝