- 论坛徽章:
- 0
|
初学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 编辑 ] |
|