打印

关于EBOOT,再请教一个问题

[复制链接]
1585|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xiang_5288|  楼主 | 2011-3-22 15:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
头文件不写了,主要是蓝色部分
                STARTUPTEXT
                DCB             "CRUS"
                LEAF_ENTRY      StartUp
;
;  Kill watch dog timer. Before any thing else.
;
                ldr             r0, =0x80940000
                ldr             r1, =0xAA55
                str             r1, [r0]

;
; ensure SVC32 mode with IRQ and FIQ disabled
;
                mov             r0, #0xd3
                msr             cpsr_c, r0
;set eboot run flag
                ldr             r0, =0x80930040
    ldr    r1, =EBOOT_RUN_FLAG
                str             r1, [r0]
; When Programming SDRAM clear clkset1 so the delay loop have proper
; delays.
;
                str             r1, [r0]
                ldr             r0, =0x80930020
                ldr             r1, =0x0
                str             r1, [r0]

;
; Configure SDRAM
;
                bl              SdramCfg

;
; Copy the image to RAM
;
                ldr             r0, =0x60000000
                ldr             r1, =0x40000   
                ldr             r11, =0x60000     ;128K
;这个地方为什么是从FLASH复制到地址0x40000到0x60000处?而不是0x00处?
;我FLASH是接在;0X60000000处,SDRAM是接在0x00处
EbootCopyLoop   ldmia           r0!, {r2-r9}      ;32byte once
                stmia           r1!, {r2-r9}
                cmp             r1, r11
                bne             EbootCopyLoop
               
                ldr             pc, =ExecuteFromRam;从这个地方开始的下一条代码取址是否就从ExcuteFromRam处执行呢?如果是,那么肯定不是从0x40000这个地址吧
ExecuteFromRam              

                ldr             sp, =EbootStack
                bl              SysconSetup
以上两个疑问还请知道的朋友指点,感谢!

相关帖子

沙发
xiang_5288|  楼主 | 2011-3-23 11:47 | 只看该作者
没人知道呢还是我这个问题太低级了呢,呵呵!自己来回答一下,不知道是否正确了!
第一个问题:这个地方为什么是从FLASH复制到地址0x40000到0x60000处?而不是0x00处?
;我FLASH是接在;0X60000000处,SDRAM是接在0x00处

其实复制到0x40000处还是复制到0x50000处应该是一样的,只要不超出SDRAM的地址范围就可以
第二个问题:从这个地方开始的下一条代码取址是否就从ExcuteFromRam处执行呢?如果是,那么肯定不是从0x40000这个地址吧是从ExcuteFromRam这个地址执行的,肯定不会是0x40000,因为EBOOT复制到0x40000这个起始地址,0x40000处开始放的是“CRUS”
不知是否正确,知道的人哪怕您只要回答一个字,错或者对就可以!

使用特权

评论回复
板凳
xiang_5288|  楼主 | 2011-3-25 08:44 | 只看该作者
哎,问的人多,回答的人少啊!
是不知道呢,还是我提问题的方式不对呢。
大家说点自己的想法也可以啊!

使用特权

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

本版积分规则

23

主题

97

帖子

2

粉丝