打印
[嵌入式linux]

u-boot移植问题

[复制链接]
2763|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Pingo_zp|  楼主 | 2009-12-7 22:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
s3c2410,u-boot 从nandflash启动
现在的问题是:在start.s中完成u-boot自拷贝到内存之后,从什么时候或者说什么地方跳转到内存开始执行。
因为从Nandflash启动时u-boot第一阶段是在cpu内部的4KB ram中执行的,具体从什么时候开始跳转到外部的SDRAM中的33f80000开始执行!
请指教!先谢了!

相关帖子

沙发
icecut| | 2009-12-8 15:30 | 只看该作者
最近直接在内存仿真.还没注意这个问题.看一下start.s吧

使用特权

评论回复
板凳
Pingo_zp|  楼主 | 2009-12-8 18:41 | 只看该作者
ls的意思是你直接将u-boot下载到内存中执行,我也试过,好像不可以啊。我移植的u-boot1.3.4在nandflash启动没有问题,不过直接下载到内存,go ...的话好像不行

使用特权

评论回复
地板
icecut| | 2009-12-9 08:51 | 只看该作者
你注释掉内存初始化部分.就可以了.那个是绝对地址flash寻址.

bl到c中才时候,就跳到内存中了.
start.s是基于0链接的.而c语言的代码基于TEXT_BASE的内存地址.网上搜吧有解释

使用特权

评论回复
5
arm9-11| | 2009-12-16 12:15 | 只看该作者
记得是在进入c语言的同时,就进入了SDRAM,你把U-Boot镜像反汇编看看。

使用特权

评论回复
6
sodwell| | 2009-12-18 08:48 | 只看该作者
拷贝完就跳到内存执行了,就在START.S里面就可以看到跳转程序,注意看拷贝后面那几行

使用特权

评论回复
7
jzy23| | 2009-12-23 18:31 | 只看该作者
start.S里
执行
     ldr        pc, _start_armboot

_start_armboot:        .word start_armboot
就是跳转到SDRAM里面了,
因为通过对start_armboot链接后已经把这个函数地址已经绑定在RAM中,当执行完ldr pc, label 指令,程序将从标号绑定地址开始执行,

查看u-boot.map可以知道start_armboot标号的地址值:
.text          0x33f810d4      0x300 lib_arm/libarm.a(board.o)
                0x33f811bc                hang
                0x33f811cc                start_armboot
                0x33f810d4                sbrk

使用特权

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

本版积分规则

6

主题

18

帖子

0

粉丝