5085|13

70

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

Arm2410 : jump to ram? how to? 好困惑啊!!!!求助大家了 [复制链接]

  

ARM boot loader 的一段代码,如下 jump to ram 是怎么保证的呢?
=on_the_ram 是开始的那个‘steppingstone’缓存区 还是 SDRAM 的地址? 请教大家,谢谢

    bl    copy_myself

    @ jump to ram   //here********************
    ldr    r1, =on_the_ram
    add    pc, r1, #0
    nop
    nop
1:    b    1b        @ infinite loop

on_the_ram:

    @ get read to call C functions
    ldr    sp, DW_STACK_START    @ setup stack pointer
    mov    fp, #0        @ no previous frame, so fp=0
    mov    a2, #0            @ set argv to NULL

    bl    main            @ call main  
此帖出自ARM技术论坛

最新回复

on_the_ram假设处于偏移量0x1000的地方。 开始在stepstone的时候,这个on_the_ram实际处于stepstone的起始位置+0x1000的地方。 而当pc指向了sdram之后,再执行pc+0x1000,结果就是sdram里面的on_the_ram了。 汇编里的标识符都是偏移量,而不是绝对地址。  详情 回复 发表于 2009-1-11 20:38
点赞 关注
 

回复
举报

74

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
结帖率:125.00% 这么高斗没人回答啊
此帖出自ARM技术论坛
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
不太明白搂主什么意思
友情帮顶!
此帖出自ARM技术论坛
 
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

4
 
你的代码有点怪,2410的steppingstone没有这样的代码吧

————————————————————————————————————
steppingstone是2410硬件实现自动拷贝前4K flash数据到内部SRAM运行的。
on_the_ram 应该是内存。
此帖出自ARM技术论坛
 
 
 

回复

87

帖子

0

TA的资源

一粒金砂(初级)

5
 
引用 3 楼 gooogleman 的回复:


————————————————————————————————————
steppingstone是2410硬件实现自动拷贝前4K flash数据到内部SRAM运行的。
on_the_ram 应该是内存。


就是说steppingstone是一行代码都不用写,硬件实现了。
此帖出自ARM技术论坛
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

6
 
是啊
此帖出自ARM技术论坛
 
 
 

回复

63

帖子

0

TA的资源

一粒金砂(初级)

7
 
是啊,自己怎么能把自己拷到内存呢?
此帖出自ARM技术论坛
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

8
 
这是什么BOOT?反正不像WINCE的Eboot。

RAM是指SDRAM。将boot拷贝到SDRAM,然后跳转过去。
此帖出自ARM技术论坛
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

9
 
vivi里面的
我知道
steppingstone是一行代码都不用写,硬件实现了
这个bootloader开机运行后
有4k被2410硬件自动拷贝到了内部缓存ram中运行

然后这(开头的一段4k程序)又把整个bootloader(包括那四k)拷贝到sdram中去

我要问的ldr  r1, =on_the_ram 这句,他的意思是跳到sdram中执行
通过上面可知道 包含on_the_ram 这个标号的代码

在内部缓存ram中有一个,(我们当前代码就在这里执行,执行了ldr,r1,=on_the_ram    add pc ,r1,#0就到了下面sdram中了 )
在刚刚完成拷贝中sdram中也有一个,
我要问的就是它是如何保证跳到sdram中,而不是还留在这4k steppingstone 缓冲区中
此帖出自ARM技术论坛
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

10
 
on_the_ram这样的标志其实是以相对“起始点”的“偏移量”存在的。

在StepStone里时,“起始点”是StepStone的起点。

add pc,r1, #0已经到了sdram,这时“起始点”已经是sdram里面了,然后跳转就是以这个“起始点”找“偏移量”了,这样就确保是在sdram里面了。
此帖出自ARM技术论坛
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

11
 
唉 还是不明白啊
此帖出自ARM技术论坛
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

12
 
引用 10 楼 andykuo 的回复:
唉 还是不明白啊


你关键理解这个PC,PC是是程序执行到哪里的老大,你这个PC的值变成内存之后,程序自然会执行内存里面的程序了。
这个和单片机等都是一样的。
此帖出自ARM技术论坛
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

13
 
引用 10 楼 andykuo 的回复:
唉 还是不明白啊


你关键理解这个PC,PC是是程序执行到哪里的老大,你这个PC的值变成内存之后,程序自然会执行内存里面的程序了。
这个和单片机等都是一样的。
此帖出自ARM技术论坛
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

14
 
on_the_ram假设处于偏移量0x1000的地方。
开始在stepstone的时候,这个on_the_ram实际处于stepstone的起始位置+0x1000的地方。
而当pc指向了sdram之后,再执行pc+0x1000,结果就是sdram里面的on_the_ram了。

汇编里的标识符都是偏移量,而不是绝对地址。
此帖出自ARM技术论坛
 
 
 

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

查找数据手册?

EEWorld Datasheet 技术支持

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

 
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
快速回复 返回顶部 返回列表