2009-10-12 3 views
10

Als nächstes muss ich ein grundlegendes Betriebssystem für Motorola 68K Prozessor als Teil eines Kurs-Labor-Material schreiben.Schreiben eines Betriebssystems für Motorola 68K Prozessor. Kann ich es emulieren? Und kann ich die Entwicklung von Betriebssystemen testen?

Gibt es einen Linux-Emulator für ein grundlegendes Hardware-Setup mit diesem Prozessor? So können meine Partner und ich schneller auf unseren Computern debuggen, anstatt die Platine und andere Sachen neu zu starten.

Ist es möglich, Test-driven Entwicklungstechnik auf OS-Entwicklung anzuwenden? Der Code wird hauptsächlich aus Assembly und C bestehen. Was werden die Hauptschwierigkeiten beim Versuch sein, dies zu testen? Irgendwelche Tipps, wie es geht?

Antwort

5

Sie können sicherlich dieses Projekt tdd. Zuerst entkoppeln Sie alle Zugriffe auf die Hardware mit einfachen Routineaufrufen, z. getch() und printf, dann können Sie einfache Mocks zur Verfügung stellen, die Test-Input und Check-Output liefern. Sie können dann weit über 90% des Projekts auf einem PC mit gcc, msdev oder xcode schreiben. Sobald Sie ein gewisses Vertrauen in die Entkopplungsroutinen haben, benötigen Sie nur sehr wenig Zugriff auf die Hardware und nur dann, um gelegentlich zu überprüfen, ob Ihre Mocks so funktionieren, wie Sie es erwarten.

Halten Sie bei C, bis Sie einen bestimmten Flaschenhals finden, und gehen Sie dann zum Assembler.

+1

Ich stimme dem letzten Satz nicht zu. Wenn Sie ein Betriebssystem schreiben, gibt es viele notwendige Dinge, die Sie in C nicht tun können. Es ist gut, asm auf ein Minimum zu halten, und es ist gut, die meisten asm als Inline-Assembly aus C-Code zu machen. Aber Sie werden wahrscheinlich immer noch einige Dateien brauchen, die nichts als Assembler sind. Werfen Sie einen Blick auf entry.S auf Linux für ein Beispiel - solche Sachen macht keinen Sinn als Inline-asm, muss es für sich allein stehen. – asveikau

+2

noch machen 'getch' und' printf' irgendeinen Sinn wie O/S-Level-Funktionsaufrufe. Es sei denn, Sie überschreiben MS-DOS ... – Alnitak

6

Ich würde vorschlagen, QEMU für m68k Emulation.

(Der Systememulator, den Sie in QEMU verwenden möchten, ist "Coldfire" - so nennt Freescale den Nachfolger der m68k-Architektur).

+0

Mit Blick auf die QMEU-Site sehe ich keine Unterstützung für M68K; für PowerPC (ein Nachkomme von M68K) schlägt es PearPC vor, das anscheinend nicht aktiv ist (das letzte Update scheint September 2005 zu sein). –

+0

Having said that, fand ich eine externe Seite über M68K Tests, die QEMU erwähnt: http://gwenole.beauchesne.info/en/blog/2007/07/08/m68k_emulator_testsuite –

+0

Jonathan: Es heißt "Coldfire", das ist die Nachfolger von m68k, siehe hier: http://www.qemu.org/qemu-doc.html#SEC66 – caf

1

Die uClinux project begann auf einer m68k-Platine. Sie können die Werkzeuge haben, die Sie brauchen ...

9

Ich würde empfehlen, ein Betriebssystem für die klassischen Amiga-Computer zu entwickeln, die verschiedene Versionen des 68000-Prozessors hatten. Da der Amiga-Computer ein kompletter Computer ist und sehr gut dokumentiert ist, dachte ich, dies wäre eine gute Übung.

Es gibt einen Emulator namens UAE (und Win-UAE), der sehr genau ist und kann mit verschiedenen Arten von Prozessoren (68000 - 68060) und anderen Fähigkeiten konfiguriert werden. Normalerweise müssten Sie auch ROMs dafür erwerben, aber da Sie selbst ein Betriebssystem entwickeln, ist dies nicht notwendig.

Tools, die Sie benötigen, ist entweder Cygwin (für die Entwicklung unter Windows) oder ein Linux-Computer. Dann brauchen Sie Cross-Compiler. Dies umfasst sowohl einen C-Compiler als auch einen Assembler. Here is a template zum Erstellen eines einfachen ROM, das die Bildschirmfarbe ändert und die Power-LED aufleuchtet. Es wird eine Datei 'kick.rom' erstellen, nach der UAE dann im aktuellen Verzeichnis sucht.

Die Referenz zum 68000-Befehlssatz finden Sie unter den folgenden Links. Beachten Sie, dass verschiedene Assembler-Programme eine etwas andere Syntax und einen anderen Befehlssatz verwenden können.

Wenn Sie das Betriebssystem auf echter Hardware testen müssen, gibt es moderne Amiga-Klone, die auf Ebay und anderen Orten verkauft werden. Suche nach "Minimig".

Update: Heutzutage AROS läuft auch auf UAE sowie physikalische Amigas.

Refs:

[UAE]
[WinUAE]
[Cygwin]
[Cross Compilers]
[68000 reference]

+0

Welcher Hyperlink enthält die ROM-Vorlagen zum Ändern der Bildschirmfarbe beim Blinken der Power-LED? – mwcz

+1

Link "Hier ist eine Vorlage" zu http://vmlinux.org/jakov/jumpstart/ @mwcz hinzugefügt –

Verwandte Themen