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