U-BOOT下运行裸机程序崩溃,cpu重启
在U-BOOT环境下使用TFTP命令传输.bin文件,编译和连接没有问题,直接使用go命令执行程序时直接崩溃,报错如下:go 0x91000000
## Starting application at 0x91000000 ...
## Application terminated, rc = 0x91000030
"Synchronous Abort" handler, esr 0x02000000
elr: 00000000820b83b4 lr : 00000000820b83b4 (reloc)
elr: 00000000f7be53b4 lr : 00000000f7be53b4
x0 : 0000000000000001 x1 : 00000000f7be9000
x2 : 0000000000032aa0 x3 : 0000000000000001
x4 : 0000000000000000 x5 : 0000000000000030
x6 : 00000000f7bb9525 x7 : 000000000000000f
x8 : 00000000ffffffd0 x9 : 0000000000000008
x10: 0000000000000010 x11: 00000000f7930318
x12: 0000000000000004 x13: 0000000000000200
x14: 00000000f7925a1c x15: 00000000ffffffff
x16: 0000000000002080 x17: 0000000021201896
x18: 00000000f7928d68 x19: 00000000f7925d80
x20: 00000000f7b4d6f0 x21: 0000000000000000
x22: 00000000f792de60 x23: 0000000000000002
x24: 00000000f7be53b4 x25: 0000000000000000
x26: 0000000000000000 x27: 0000000000000000
x28: 00000000f792caa0 x29: 0000000000000000
Resetting CPU ...
### ERROR ### Please RESET the board ###
我们这边没有使用1028跑过裸机程序,没有办法给您提供解决思路,不过看着像应用程序的问题 hai 发表于 2022-10-13 08:24
我们这边没有使用1028跑过裸机程序,没有办法给您提供解决思路,不过看着像应用程序的问题
程序就是简单的显示输出,我这边贴出来:
void (*show)(char *,...)=0x8207b124;//uboot的printf函数接口位置
int main(void)
{
show("hello.world\n");
return 0;
}
makefile:
hello.bin:hello.o
aarch64-linux-gnu-ld -Ttext=0x91000000 hello.o -o hello.elf
aarch64-linux-gnu-objcopy -O binary hello.elf hello.bin
aarch64-linux-gnu-objdump -d hello.elf > hello.dls
hello.o:hello.c
aarch64-linux-gnu-gcc -c hello.c -o hello.o -nostdlib
clean:
rm hello.bin hello.o hello.elf hello.dls
然后tftp下载到0x91000000位置上再执行go命令就出现报错
DKD 发表于 2022-10-13 11:00
程序就是简单的显示输出,我这边贴出来:
void (*show)(char *,...)=0x8207b124;//uboot的printf函数接 ...
我们这边没有测试过裸机程序,还需要您自己排查一下,非常抱歉
页:
[1]