不能使用0x40000000, DDR内存起始地址为0x80000000, 加上openSBI保留内存, 应该使用 0x80200000作为加载地址
我是打算直接运行rvos到vf2的ddr上,但貌似试了tftp加载到0x80200000这个地址,然后尝试bootelf启动是失败的,请教下是什么原因呢?elf文件也是rv64架构的StarFive # tftpboot 0x80200000 GROL.elf
ethernet@16030000 Waiting for PHY auto negotiation to complete… done
Using ethernet@16030000 device
TFTP from server 192.168.20.90; our IP address is 192.168.20.149
Filename ‘GROL.elf’.
Load address: 0x80200000
Loading: #
116.2 KiB/s
done
Bytes transferred = 12640 (3160 hex)
StarFive # bootelf
Starting application at 0x80000000 …
Unhandled exception: Illegal instruction
EPC: 0000000080000000 RA: 00000000f7f116e2 TVAL: 00000000f14022f3
EPC: ffffffffc82f4000 RA: 00000000402056e2 reloc adjusted
SP: 00000000f76fba00 GP: 00000000f76fbdd0 TP: 0000000000000001
T0: 000000008000119a T1: 00000000f7f0cfb2 T2: c783fe843783fa5f
S0: 0000000000000000 S1: 0000000000000001 A0: 0000000000000000
A1: 00000000f7724328 A2: 000000000000000a A3: fffffffffffffffe
A4: 0000000000000001 A5: 0000000080000000 A6: 00000000f7f8d568
A7: 000000000000002e S2: 0000000000000000 S3: 00000000f7724328
S4: 0000000000000000 S5: 0000000000000001 S6: 0000000000000000
S7: 0000000000000000 S8: 0000000000000000 S9: 0000000000000000
S10: 00000000f7724ec0 S11: 0000000000000000 T3: 00010001f3ed0007
T4: 80826105644260e2 T5: 00010800e4221141 T6: 0000000080001188
Code: ffff ffff ffff ffff ffff ffff ffff ffff (22f3 f140)
resetting …
alen@alen-virtual-machine:~/os_riscv/GROL-OS/01/build$ riscv64-linux-gnu-objdump -f GROL.elf
GROL.elf: 文件格式 elf64-littleriscv
体系结构:riscv:rv64, 标志 0x00000112:
EXEC_P, HAS_SYMS, D_PAGED
起始地址 0x0000000080000000
你这个问题好像是由于用E24核加载运行引起的,至于为什么,怎么协调使用u74和E24,我不知道。 ![]()