我正在使用qemu模拟器来模拟MIPS系统。我写了一个非常简单的启动代码和主要功能。但是当我使用以下链接器脚本时,qemu模拟器给出了消息" qemu-system-mipsel:无法加载MIPS bios' bin / img.bin',并且没有指定-kernel参数&# 34;:
ENTRY(_Reset)
SECTIONS
{
.boottext 0xBFC00000 : { obj/startup.o(.text) }
.text 0xA0000000 : { *(.text) }
.data : { *(.data) }
.bss : { *(.bss) }
. = . + 0x1000; /* 4kB of stack memory */
.stack ALIGN( 16 ) :{ *(.stack) }
_stacktop = ALIGN(16);
}
当我将linkerscript更改为以下脚本时,qemu完美地运行了代码:
ENTRY(_Reset)
SECTIONS
{
.text 0xA0000000 : { *(.text) }
.data : { *(.data) }
.bss : { *(.bss) }
. = . + 0x1000; /* 4kB of stack memory */
.stack ALIGN( 16 ) :{ *(.stack) }
_stacktop = ALIGN(16);
.boottext 0xBFC00000 : { obj/startup.o(.text) }
}
所以,我的问题是:最终精灵和二进制文件中脚本部分顺序的影响是什么?为什么qemu会运行一个而不运行另一个?
提前谢谢
PS:用" qemu-system-mipsel -s -M malta -m 512M -bios bin / img.bin"
运行qemu