3007|4

72

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

请教几句2440 NBoot中的汇编代码 [复制链接]

    ; Set up the memory control registers.
    ;
    add     r0, pc, #SMRDATA - (. + 8)
    ldr                r1, =BWSCON             ; BWSCON Address.
    add                r2, r0, #52             ; End address of SMRDATA.
15      
    ldr                r3, [r0], #4   
    str                r3, [r1], #4   
    cmp                r2, r0               
    bne                %B15

问题1:
    add     r0, pc, #SMRDATA - (. + 8)这里的‘.’是什么意思 . + 8 是不是跟几级流水线有关系?


后面
SMRDATA DATA
       
    DCD (0+(B1_BWSCON<<4)+(B2_BWSCON<<8)+(B3_BWSCON<<12)+(B4_BWSCON<<16)+(B5_BWSCON<<20)+(B6_BWSCON<<24)+(B7_BWSCON<<28))
    DCD ((B0_Tacs<<13)+(B0_Tcos<<11)+(B0_Tacc<<8)+(B0_Tcoh<<6)+(B0_Tah<<4)+(B0_Tacp<<2)+(B0_PMC))   ;GCS0
    DCD ((B1_Tacs<<13)+(B1_Tcos<<11)+(B1_Tacc<<8)+(B1_Tcoh<<6)+(B1_Tah<<4)+(B1_Tacp<<2)+(B1_PMC))   ;GCS1
    DCD ((B2_Tacs<<13)+(B2_Tcos<<11)+(B2_Tacc<<8)+(B2_Tcoh<<6)+(B2_Tah<<4)+(B2_Tacp<<2)+(B2_PMC))   ;GCS2
    DCD ((B3_Tacs<<13)+(B3_Tcos<<11)+(B3_Tacc<<8)+(B3_Tcoh<<6)+(B3_Tah<<4)+(B3_Tacp<<2)+(B3_PMC))   ;GCS3
    DCD ((B4_Tacs<<13)+(B4_Tcos<<11)+(B4_Tacc<<8)+(B4_Tcoh<<6)+(B4_Tah<<4)+(B4_Tacp<<2)+(B4_PMC))   ;GCS4
    DCD ((B5_Tacs<<13)+(B5_Tcos<<11)+(B5_Tacc<<8)+(B5_Tcoh<<6)+(B5_Tah<<4)+(B5_Tacp<<2)+(B5_PMC))   ;GCS5
    DCD ((B6_MT<<15)+(B6_Trcd<<2)+(B6_SCAN))                                                        ;GCS6
    DCD ((B7_MT<<15)+(B7_Trcd<<2)+(B7_SCAN))                                                        ;GCS7
    DCD ((REFEN<<23)+(TREFMD<<22)+(Trp<<20)+(Trc<<18)+(Tchr<<16)+REFCNT)   
   
    DCD 0x31     ; SCLK power saving mode, BANKSIZE 128M/128M, 4-burst.

    DCD 0x30            ; MRSR6 CL=3clk.
    DCD 0x30            ; MRSR7.

问题2:
程序从NAND启动,运行到 add     r0, pc, #SMRDATA - (. + 8) 的时候,
pc的值应该对应在NAND中的某个位置吧。这时候#SMRDATA的值是多少?

也许这2个应该算同一个问题

最新回复

学习了   详情 回复 发表于 2010-4-1 16:14
点赞 关注

回复
举报

78

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
这个点是当前位置的意思,比如说 “b .”就是跳到当前的位置,相当于C语言的while(1);
从NAND启动的时候CPU会将NAND的前4K或者8K数据读到内部的RAM中再运行,所以#SMRDATA 是内部RAM的地址,RAM起始地址是0,至于是4K还是8K,不同的CPU不同。
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
同意楼上的
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

4
 
问题2:
程序从NAND启动,运行到 add r0, pc, #SMRDATA - (. + 8) 的时候,
pc的值应该对应在NAND中的某个位置吧。这时候#SMRDATA的值是多少?

纠正一下错误,不能说PC值在NAND中的某个位置,
你拿个板子实际单步调试一下不都全明了了
 
 
 

回复

60

帖子

0

TA的资源

一粒金砂(初级)

5
 
学习了
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表