免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3226 | 回复: 5
打印 上一主题 下一主题

bootloader疑问 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-07-23 21:10 |只看该作者 |倒序浏览
初学2410,尝试写了一个BOOTLOADER。可在stage1跳转stage2的时候出现问题。代码如下:

stage1用汇编写的,代码就是初始化CPU等等,最后用
b main        
进行跳转

lds代码:
SECTIONS
{
        firtst 0x00000000:
        {
                  head.o
                  copy_myself.o
          }
          second 0x33f00000:
          AT(4096)
          {
                  main.o
                  *.o
          }
}

makeflie代码:
kboot: head.S nand_flash.c string.c uart.c main.c
        arm-linux-gcc -g -c -o head.o head.S
        arm-linux-gcc -g -c -o nand_flash.o nand_flash.c
        arm-linux-gcc -g -c -o string.o string.c
        arm-linux-gcc -g -c -o uart.o uart.c
        arm-linux-gcc -g -c -o main.o main.c
        arm-linux-ld -Tboot.lds -g head.o nand_flash.o string.o uart.o main.o -o kboot.o
        arm-linux-objcopy -O binary -S kboot.o kboot
clean:
        rm -f *.o
        rm -f kboot


编译器使用的是arm-linux-gcc  3.4.1
fc6  LINUX
提示错误:
arm-linux-ld -Tboot.lds -g head.o nand_flash.o string.o uart.o main.o -o kboot.o
head.o(.text+0xa4):/root/workspace/kboot/head.S:89: relocation truncated to fit: R_ARM_PC24 main

我用 ldr  pc, =main
能编译通过。不过不能跳转,我的stage2就是打印一个o.

那位高手帮帮忙。谢谢。

[ 本帖最后由 jlu3389 于 2007-7-24 15:24 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2007-07-24 10:09 |只看该作者
可能是寻址范围问题。

论坛徽章:
0
3 [报告]
发表于 2007-07-24 15:21 |只看该作者
我无法用JTAG调试,也没有仿真器。
所以不知道那里寻址错误。

论坛徽章:
0
4 [报告]
发表于 2007-07-24 15:59 |只看该作者
b指令系列的寻址范围为当前指令的+-32M。如果你指令的跳转跨度大于32M,可用大范围寻址指令,或直接向pc赋值。

论坛徽章:
0
5 [报告]
发表于 2007-07-24 19:58 |只看该作者
原帖由 sep 于 2007-7-24 15:59 发表
b指令系列的寻址范围为当前指令的+-32M。如果你指令的跳转跨度大于32M,可用大范围寻址指令,或直接向pc赋值。



我尝试过给PC寄存器赋值,编译通过,可烧写到板子上还是没有反映,这里我可以肯定驱动方面没有问题,因为我曾经尝试使用vivi的lds,结果是bl main可以成功跳转,可在我再增加string.c的时候提示 no enougth room ,我不知道为什么了。

论坛徽章:
0
6 [报告]
发表于 2007-10-23 08:52 |只看该作者
寻址范围大于了32M,所以直接用b main是不能实现的,所以只能通过改变pc来实现

还有一个方法就是,在bl main之前就跑内存,而不是片内ram中跑.但是还是需要通过改变pc来实现
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP