天嵌 ARM开发社区

 找回密码
 注册
查看: 2583|回复: 6

裸跑的所用2440init.s问题?

[复制链接]
hko3142 发表于 2010-4-25 21:48:59 | 显示全部楼层 |阅读模式
2440init.s程序中怎么没看到跳转到RAM指令的语句?整个代码看下来也就完成代码搬运之类的。
u-boot中还有个ldr pc start_armboot之类的语句。还请答复
 楼主| hko3142 发表于 2010-4-26 13:09:10 | 显示全部楼层
还是自己回答吧 唉 这论坛等个回答都这么难。。 搬运代码完后有句
InitRam       



1       
        cmp        r2,        r3
        strcc        r0, [r2], #4
        bcc        %B1
       
        ldr        pc, =%F2                ;goto compiler address
2就是将前面2数字跟着的程序的编译地址赋给PC 应该是main()函数的编译地址
编译地址跟ADS中RO的设置有关(资料上设置的是0X30000000)因此PC跳转到0X30000000+偏移量的某个地方去了,也就实现了跳转SDRAM的功能,之前看到这句一直没弄懂意思。汗!!
回复

使用道具 举报

yexin35 发表于 2010-4-27 11:52:52 | 显示全部楼层
请问%是什么含义
回复

使用道具 举报

 楼主| hko3142 发表于 2010-4-27 12:43:08 | 显示全部楼层
百度下撒
局部标注的定义,
一个标注的定义必须在一行的顶格书写。汇编器把所有不顶格的语句当成指令、保留字或宏。
汇编器把格式为:<N><name>的标注当成本地标注
其中<N>是一个0~99的整数
<name>是一个文本中可选的名字。
本地标注由ROUT关键字限定范围。
通过%{F|B}{|A|T}<N>{<name>}来引用一个本地标注。额外的前缀字母告诉如何去查找这个标注:
1.如果指定为前缀F,则汇编器向前(Forward)查找;
2.如果指定了前缀B,则汇编器向后(Backward)查找,否则汇编器先向后再向前查找。
3.如果指定了前缀T,则汇编器只查找当前的宏;
4.如果指定了前缀A,则汇编器查找所有级别的宏,否则汇编器先查找当前的宏,再查找更高级别的嵌套层的宏。
回复

使用道具 举报

jrh00102 发表于 2010-6-22 22:17:44 | 显示全部楼层
顶一下了!
回复

使用道具 举报

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

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号-2 )

GMT+8, 2025-6-17 21:16 , Processed in 2.058530 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表