tianj03 发表于 2011-9-20 10:17:43

请教高手!从sd启动的问题

版主及各位高手好!
在下在实验OK6410从sd卡启动的时候碰到一个问题,向大家请教。
我从sd卡启动一段程序,就简单的点亮了led。但是期间碰到以下疑惑。
在从汇编跳到c入口的时候使用bl _main可以正常执行,但是用
_start_arm_boot
    DCD _main
然后ldr pc, _start_arm_boot, 本来我觉得效果应该一样,但是这样不能正常执行。
我的链接地址设定是0x0c000000(stepping stone),堆栈设置的是(0x0c000000 + 0x00002000)(换成0x00001000也不行)。
我的理解是从sd启动,我的程序会被拷贝到stepping stone中,所以就把链接地址设置成了上述的样子,不知道是否理解错了。请各
位高手帮帮忙啊!
还有我接上jlink,然后从sd卡启动,然后查看0x0c000000(stepping stone)中的内容根本不是我的代码,开头就是个0x0000000,
所以我觉得是不是从sd卡启动代码根本没有被拷贝到0x0c000000处啊,或者stepping stone的地址不是0x0c000000啊。我本想在
开始执行的时候将pc值保存在一个指定寄存器中然后通过jlink看一下程序到底被加载到哪了,可是好像jlink说机器没停下来不能看寄存器,
我用h命令也不能停下来,所以郁闷啊,烦请高手指点,不胜感激。
不知道是不是硬件的问题,我的板子掉到地上一次,上面还洒了点水,我对硬件就是个小白,所以也不能确定是不是坏了。如果一键烧录
飞凌提供的linux啊都正常的,所以我觉得硬件应该没问题吧,请斑竹帮忙啊。

tianj03 发表于 2011-9-20 10:21:33

还有补充一下,我自己从jlink下载程序到0x0c000000地址是可以正常执行的。还有我的编译工具是mdk4.1
,会不会因为ARM11和ARM9的流水线不一样,导致编译的代码时候那个pc的偏移不一样而出的问题啊?

tianj03 发表于 2011-9-20 11:25:54

怎么没人理呢,:(。自己顶一下!

tianj03 发表于 2011-9-20 19:14:12

看起来是有版主的,为什么不帮我解答一下呢。是我问的问题太白痴了还是怎么地啊!:(

zk212139 发表于 2011-9-20 23:35:05

tianj03 发表于 2011-9-21 09:41:57

你的硬件没有问题,不会这么容易坏的
关于你的理解,我很详细地看过资料了,也是没有问题的
对于这句话“ ...
zk212139 发表于 2011-9-20 23:35 http://bbs.witech.com.cn/images/common/back.gif


    谢谢啊!我是在使用bl _main跳转而且灯可以亮的时候看的0x0c000000处得内存的,所以我才觉得程序正常但是好像不是被拷贝到
0x0c000000处了。而使用ldr pc, _arm_boot_start这样指令出错的原因可能就是地址不对造成的。我不知道从jlink里面看到的数据
到底对不对!哎,自己太菜了,版主有不管,悲剧啊!
页: [1]
查看完整版本: 请教高手!从sd启动的问题