u-boot2013.01 smdk2410 确定sp的值是多少

确定_main:
    中    
ldr    sp, =(CONFIG_SYS_INIT_SP_ADDR) 

    CONFIG_SYS_INIT_SP_ADDR的大小
方案1:直接查看推导
        #define PHYS_SDRAM_1        0x30000000 /* SDRAM Bank #1 */
        #define CONFIG_SYS_SDRAM_BASE    PHYS_SDRAM_1
        GENERATED_GBL_DATA_SIZE 这个数值在不运行代码的时候,无法进行确定。

     
   #define CONFIG_SYS_INIT_SP_ADDR    (CONFIG_SYS_SDRAM_BASE + 0x1000 - \
                        GENERATED_GBL_DATA_SIZE)

方案2:反汇编 u-boot

        arm-linux-objdump -D u-boot >u-boot.dis
        
        反汇编得到 u-boot.dis
        找到
        label:__main 所在的一行
        00000768 <_main>:
 768:                e59fd074        ldr    sp, [pc, #116]    ; 7e4 <clbss_l+0x24>
<pre name="code" class="html"> 内存地址                机器码     反汇编                         注释<pre name="code" class="html">                                                   
 
 
     pc = pc +8  

     计算:  sp = 0x768+#116   = 1986  + 8 +116 = 2020  = 0x7e4
   查看信息:
     7e4:    30000f80     andcc    r0, r0, r0, lsl #31
     ==> 0x7e4 单元对应的机器码  30000f80
     
     ==>  CONFIG_SYS_INIT_SP_ADDR
     执行完ldr    sp, =(CONFIG_SYS_INIT_SP_ADDR)

     后的sp  =   30000f80  

参考:韦东山毕业班视频

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值