Mips 链接器脚本节顺序
我正在使用qemu模拟器来模拟MIPS系统。我编写了一个非常简单的引导代码和主函数。但是,当我使用以下链接器脚本时,qemu模拟器给出消息“qemu系统mipsel:无法加载MIPS bios'bin/img.bin',并且未指定-kernel参数”: 当我将linkerscript更改为以下脚本时,qemu完美地运行了代码:Mips 链接器脚本节顺序,mips,qemu,linker-scripts,Mips,Qemu,Linker Scripts,我正在使用qemu模拟器来模拟MIPS系统。我编写了一个非常简单的引导代码和主函数。但是,当我使用以下链接器脚本时,qemu模拟器给出消息“qemu系统mipsel:无法加载MIPS bios'bin/img.bin',并且未指定-kernel参数”: 当我将linkerscript更改为以下脚本时,qemu完美地运行了代码: ENTRY(_Reset) SECTIONS { .text 0xA0000000 : { *(.text) } .data : { *(.data)
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) }
}
所以,我的问题是:在最终的elf和二进制文件中,脚本中各部分的顺序有什么影响?为什么qemu运行一个而不运行另一个
先谢谢你
PS:使用“qemu系统mipsel-s-M malta-M 512M-bios bin/img.bin”运行qemu是。非常感谢。使用正确的脚本:
-rwxr-x 1 josemar josemar 8368 Nov 4 07:26 img.bin*-rwxr-x 1 josemar josemar 75960 Nov 4 07:26 img.elf*
使用错误的脚本:-rwxr-x 1 josemar josemar 532676644 Nov 4 07:28 img.bin*-rwxr-x 1 josemar josemar 133236 Nov 4 07:28 img.elf*
是。非常感谢。使用正确的脚本:-rwxr-x 1 josemar josemar 8368 Nov 4 07:26 img.bin*-rwxr-x 1 josemar josemar 75960 Nov 4 07:26 img.elf*
使用错误的脚本:-rwxr-x 1 josemar josemar 532676644 Nov 4 07:28 img.bin*-rwxr-x 1 josemar 133236 Nov 4 07:28 img.elf*
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) }
}