链接器脚本部分顺序

时间:2016-11-04 14:19:53

标签: mips qemu linker-scripts

我正在使用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

0 个答案:

没有答案