Hallo zusammen,
ich habe ein Problem mit QEmu.
Wenn der Emulator startet, stürzt er mitfolgendem Status ab:
Ich vermute mal, dass es am Linker-Script liegt, da es vorher funktioniert hat.
Hier ist auch mal mein Linker-Script.
LD meldet allerdings keine Fehler oder Warnungen.
Woran kann es denn liegen?
Gruß,
rizor
ich habe ein Problem mit QEmu.
Wenn der Emulator startet, stürzt er mitfolgendem Status ab:
Code: [Auswählen]
qemu: fatal: Trying to execute code outside RAM or ROM at 0x000a0000
EAX=00004500 EBX=00000000 ECX=00000000 EDX=00000000
ESI=00000000 EDI=00000000 EBP=00000000 ESP=00009fe0
EIP=0000fdfb EFL=00000002 [-------] CPL=0 II=0 A20=1 SMM=0 HLT=0
ES =9000 00090000 0000ffff 00009300
CS =9020 00090200 0000ffff 00009b0f
SS =9000 00090000 0000ffff 00009300
DS =9000 00090000 ffffffff 00cf9300
FS =9000 00090000 0000ffff 00009300
GS =9000 00090000 0000ffff 00009300
LDT=0000 00000000 0000ffff 00008200
TR =0000 00000000 0000ffff 00008b00
GDT= 000c9a50 00000017
IDT= 00000000 000003ff
CR0=00000010 CR2=00000000 CR3=00000000 CR4=00000000
DR0=00000000 DR1=00000000 DR2=00000000 DR3=00000000
DR6=ffff0ff0 DR7=00000400
CCS=00004500 CCD=00004546 CCO=ADDB
FCW=037f FSW=0000 [ST=0] FTW=00 MXCSR=00001f80
FPR0=0000000000000000 0000 FPR1=0000000000000000 0000
FPR2=0000000000000000 0000 FPR3=0000000000000000 0000
FPR4=0000000000000000 0000 FPR5=0000000000000000 0000
FPR6=0000000000000000 0000 FPR7=0000000000000000 0000
XMM00=00000000000000000000000000000000 XMM01=00000000000000000000000000000000
XMM02=00000000000000000000000000000000 XMM03=00000000000000000000000000000000
XMM04=00000000000000000000000000000000 XMM05=00000000000000000000000000000000
XMM06=00000000000000000000000000000000 XMM07=00000000000000000000000000000000
Aborted
Ich vermute mal, dass es am Linker-Script liegt, da es vorher funktioniert hat.
Hier ist auch mal mein Linker-Script.
LD meldet allerdings keine Fehler oder Warnungen.
Code: [Auswählen]
ENTRY(boot) /* the entry-method for the kernel */
OUTPUT_FORMAT(elf32-i386) /* the linked code is x86-code */
ALIGNMENT = 0x1000; /* the alignment for the linker-parts */
LINK_ADDRESS = 0x100000; /* the link-address of the kernel */
SECTIONS
{
. = LINK_ADDRESS; /* load the kernel at LINK_ADDRESS */
/* elemental symbols for correct mapping */
__kernel_start = .; /* the method for the loaded entry */
__ro_data_start = .; /* the start of the read-only-data */
/* code-section from the c-code*/
.text : AT(ADDR(.text))
{
__text_start = .; /* the start of the text-section */
__mb_start = .;
*(.multiboot)
__mb_end = .;
*(.text)
__text_end = .; /* the end of the text-section */
}
/* read-only data */
.rodata : AT(ADDR(.rodata))
{
__ro_start = .; /* the start of the read-only-section */
*(.rodata)
__ro_end = .; /* the end of the read-only-section */
}
/* symbols for other kernel-modules */
.symbols : AT(ADDR(.symbols))
{
__symbols_start = .; /* the start of the symbols-section */
*(.symbols)
__symbols_end = .; /* the end of the symbols-section */
}
. = ALIGN(ALIGNMENT); /* align the code at the alignment-address */
__ro_data_end = .; /* the end of the read-only-data*/
__rw_data_start = .; /* the start of read-write-data */
/* initialized data */
.data : AT(ADDR(.data))
{
__data_start = .; /* the start of the data-section */
*(.data)
__data_end = .; /* the end of the data-section */
}
/* uninitialized data */
.bss : AT(ADDR(.bss))
{
__bss_start = .; /* the start of the bss-section */
*(.bss)
__bss_end = .; /* the end of the bss-section */
}
. = ALIGN(ALIGNMENT); /* expand the kernel to a new ALIGNED address */
__rw_data_end = .; /* the end of read-write-data */
__kernel_end = .; /* the method for the loaded end*/
}
Woran kann es denn liegen?
Gruß,
rizor

Übersicht
Wiki
Hilfe
Suche
Einloggen
Registrieren
Drucken

Gespeichert



