3300|8

79

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

如何跳转到绝对地址 [复制链接]

小弟用9263的板子,自己做了bootloader,可是到了最后跳到NK在sdram的绝对地址就飞了。
首先做了个实验,跳到0x0000, (程序一开始就点灯)用了很多种方法(绝对运行了一下命令):
b    0x0     
mov  pc, #0x0  
ldr  pc, =0x0
总是飞了,
希望大家指点指点
如何跳转到绝对地址啊!!

最新回复

好像是地址的问题 在bootloader启动后马上就有这么一句 加上后就可以了 ldr  r0, =0x00300000 - 4 add  pc,pc,r0 9263的板子,sram地址是0x300000 具体为什么我还得多看看资料,谢谢大家了  详情 回复 发表于 2009-11-24 09:22
点赞 关注

回复
举报

69

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
MMU开了没
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
应该是MMU引起的
1.由bootloader跳到nk的时候用物理地址跳,不要用虚拟地址跳
2.明确你的物理地址和虚拟地址的映射关系
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

4
 
开启了MMU,要看内存映射表,MMU地址是多少?
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

5
 
看看lz的实验代码在哪添加~

引用 2 楼 guopeixin 的回复:
应该是MMU引起的
1.由bootloader跳到nk的时候用物理地址跳,不要用虚拟地址跳
2.明确你的物理地址和虚拟地址的映射关系
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

6
 
引用 4 楼 amorous 的回复:
看看lz的实验代码在哪添加~

引用 2 楼 guopeixin 的回复:
应该是MMU引起的
1.由bootloader跳到nk的时候用物理地址跳,不要用虚拟地址跳
2.明确你的物理地址和虚拟地址的映射关系


只用汇编,暂时不管NK,9263的板子
;Put the CPU in Supervisor mode (SVC) and disable IRQ and FIQ interrupts.
                ldr     r0, =0xD3 ;         11010011b
                msr     cpsr_c, r0

;Disable the MMU, caches, and write-buffer and flush.
                ldr     r0, =0x00000078
                mcr     p15, 0, r0, c1, c0, 0
.....(灯)
ldr  pc, =0x0
然后我就点灯,延时后熄灯(这一步已经点亮),再跳转到 0x00000000,也就是再来一遍,可是就飞了(如果没有飞,那么肯定是循环点灯)
thank u
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

7
 
nk在内存中的绝对地址也不会是0呀,应该跳到nk的jump address才对
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

8
 
引用楼主 whichuang 的回复:
小弟用9263的板子,自己做了bootloader,可是到了最后跳到NK在sdram的绝对地址就飞了。
首先做了个实验,跳到0x0000, (程序一开始就点灯)用了很多种方法(绝对运行了一下命令):
b? ? 0x0? ?
mov? pc, #0x0?
ldr? pc, =0x0
总是飞了,
希望大家指点指点
如何跳转到绝对地址啊!!


MMU没开时,绝对地址和虚拟地址一致,
MMU开时,ARM跑虚拟地址,有虚拟地址影射到绝对地址上。
也可以认为ARM由始至终都跑虚拟。
首先你要搞清楚你所访问的虚拟地址是否有影射的绝对地址。没有的话,自然会飞。
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

9
 
好像是地址的问题
在bootloader启动后马上就有这么一句
加上后就可以了
ldr  r0, =0x00300000 - 4
add  pc,pc,r0
9263的板子,sram地址是0x300000
具体为什么我还得多看看资料,谢谢大家了
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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

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

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

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