Beiträge anzeigen

Diese Sektion erlaubt es dir alle Beiträge dieses Mitglieds zu sehen. Beachte, dass du nur solche Beiträge sehen kannst, zu denen du auch Zugriffsrechte hast.


Nachrichten - aMen

Seiten: [1]
1
Ahhh

Vielen Dank, das hat mir sehr weiter geholfen!

Mfg aMen
2
Juchuu

Im Wiki findet sich Hexadezimalzahlen mit "LL".
also Beispielsweiße :
0xffffLL
oder
0xffffffLL
Ich hab jedoch noch nie eine Hexadezimalzahl gefunden die ein "L" enthält.

Google findet nur verweiße auf diese Seite oder Foren, die sich auf diese Seite beziehen.

Aber was heißt dieses "LL"?


Danke schonmal

MFG
3
So fehler gefunden,

mein Linkscript hat nur ein punkt an der stelle:
    .text : {
        *([b].[/b]multiboot)
        *(.text)
    }

mein asm war auch mit einem "." angepasst.

Danke an alle die versucht haben zu helfen!

PS: @sebi2020 natürlich weiß ich das sowas normalerweiße nicht in die .h datei gehört, aber es ist so einfacher das Problem zu beschreiben.
4
Nunja das Link script ist das aus dem Tutorial:

Zitat
/*  Bei _start soll die Ausfuehrung losgehen */
ENTRY(_start)

/*
 * Hier wird festgelegt, in welcher Reihenfolge welche Sektionen in die Binary
 * geschrieben werden sollen
 */
SECTIONS
{
    /*
     * . ist die aktuelle Position in der Datei. Wir wollen den Kernel wie gehabt
     * an 1 MB laden, also muessen wir dort die erste Sektion hinlegen
     */
    . = 0x100000;

    /*
     * Der Multiboot-Header muss zuerst kommen (in den ersten 8 kB).
     * Die Standardsektionen einfach hintereinander weg einbinden.
     */
    .text : {
        *(multiboot)
        *(.text)
    }
    .data ALIGN(4096) : {
        *(.data)
    }
    .rodata ALIGN(4096) : {
        *(.rodata)
    }
    .bss ALIGN(4096) : {
        *(.bss)
    }
}
Eins zu eins übernommen.

das mit dem const char *string hab ich auch shcon getestet, aber auch da wirft Grub mir einen fehler hinterher.

Laut mbchk ist es auch kein Multiboot header wenn ich versuche den parameter direkt zu übergeben.

LG aMen
5
Da ich neu hier bin erstmal ein herzliches Hallo an alle, einge werden mich bereits aus dem IRC kennen.

Ich habe ein Problem was ich ehrlich gesagt überhauptnicht versteh.

Ich habe einen funktionierenden "Hallo-Welt-Kernel" erstellt und wollte mich nun an die printf herausforderung machen.
Jedoch habe ich schon zum anfang ein riesen problem

ich habe eine kernel.c die in etwa folgendermaßen aussieht:
#include"kprintf.h"

void inti(){
kprintf("hallo");
}

während meine kprintf.h so aussieht:
void kprintf(char mainchar[])
{
        char *video=(char*) 0xb8000;
int i;

for(i=0;i<=sizeof(mainchar);i++)
{
video[i*2]=mainchar[i];
video[i*2+1]=0x07;
}
}
Das lässt sich Kompilieren, aber sobald ich es per qemu und Grub booten will, bekomm ich die fehlermeldung "Error 13:  invalid or unsupported executable format" sobald ich versuche den Kernel zu laden.


//Sobald ich anstatt :
kprintf("hallo");
//dass schreibe:
char mainchar[]="hallo";
kprintf(mainchar);
//funktioniert es

Kann mir jemand erklären warum das so ist?
Ich denke es ist irgendwie ein winziger fehler den ich einfach nicht sehe.

LG aMen
Seiten: [1]

Einloggen