| Zeile 5: | Zeile 5: | ||
== Der Bootprozess == | == Der Bootprozess == | ||
| − | Im Gegensatz zu x86 gibt es auf dem Integrator/CP-Board kein BIOS und keinen Bootloader. An den Anfang des RAMs wird | + | Im Gegensatz zu x86 gibt es auf dem Integrator/CP-Board kein BIOS und keinen Bootloader. An den Anfang des RAMs wird ein Teil des Flashspeichers gemappt (die letzten 256 kB), auf dem sich der Kernel befindet. Die CPU beginnt ihre Ausführung am Beginn des RAMs, bei 0x00000000. Da dort der gemappte Flashspeicher liegt, wird sofort unser Code ausgeführt. |
| − | Wer kein I/CP-Board hat, dem bleibt QEMU zur Emulation. QEMU emuliert keinen Flashspeicher, es bietet nur die Möglichkeit, eine ELF-Datei als Kernel zu laden. Wir werden eine ELF-Datei so erstellen lassen, dass sie | + | Wer kein I/CP-Board hat, dem bleibt QEMU zur Emulation. QEMU emuliert keinen Flashspeicher, es bietet nur die Möglichkeit, eine ELF-Datei als Kernel zu laden. Wir werden eine ELF-Datei so erstellen lassen, dass sie an den Anfang des Speichers geladen wird, so, als befände sie sich in den letzten 256 kB des Flashspeichers (nachdem man die ELF in eine rohe Binärdatei umgewandelt hätte). |
== Der Hello-World-Kernel == | == Der Hello-World-Kernel == | ||