x86-Emulator zum Training eingebetteter Entwicklung

8

Ich möchte mehr über die innere Funktionsweise des Computers erfahren, um mein Wissen über die Entwicklung von Embedded-Systemen zu erweitern.

Bei der Arbeit werde ich nie mit den Details auf der unteren Ebene (wie dem GDT, dem Code-Ladeprogramm von Flash zu RAM usw.) beschäftigt, da all diese bereits geschrieben sind.

Ich möchte derzeit keine andere Hardware kaufen. Gibt es einen Emulator und ein sehr einfaches Betriebssystem, mit dem ich spielen kann, um mit all diesen Low-Level-Aspekten der Embedded-Programmierung umzugehen? Gibt es ein Tutorial, das mich durch die Einstellung einer sehr einfachen eingebetteten Umgebung führen kann (Einstellen der Speichersegmente, der GDT, Abrufen des geschützten Modus und Ausführen von main() )

    
Elazar Leibovich 17.01.2010, 16:24
quelle

4 Antworten

2

Für unseren Betriebssystemkurs verwenden wir derzeit ein Spielzeug-Betriebssystem namens POTATOES . Es ist ziemlich einfach und AFAIK basierend auf Kernel-Tutorials von James Molloy. Vielleicht sehen Sie sich hier um.

Außerdem kann ich das Wiki und das Diskussionsforum bei OSdev.org.

Fröhliches Hacken! :)

Bearbeiten: Einige gute Informationen über die x86-Architektur finden Sie in Band 3 von Intels IA-32 Architectures Softwareentwicklerhandbüchern . Band 1 enthält die grundlegende Architektur und in Band 2 finden Sie eine vollständige Referenz des x86-Assembly-Befehlssatzes.

    
AdrianoKF 17.01.2010, 16:45
quelle
6

Die üblichen Verdächtigen für x86-Emulatoren wären Bochs und QEMU .

Sie können sich auch das James Molloy-Tutorial zur Kernel-Entwicklung und die darin verlinkten Ressourcen ansehen zu.

    
Christoph 17.01.2010 16:41
quelle
1

In Embedded-System-Entwicklung Emulator hat eine sehr spezifische Bedeutung; Sprechen Sie tatsächlich von einem "Simulator"? Aber wenn Sie auf einem x86 entwickeln, ist der Simulator für den Befehlssatz unnötig und eingeschränkt, wenn Sie stattdessen eine VM verwenden können.

Tatsächlich, wenn Sie " eine sehr einfache eingebettete Umgebung " wollten, würden Sie kein x86 wählen. Bootstrapping und Konfiguration dieser komplexen Geräte (und ihrer zugehörigen Chipsätze und Speicher) ist nicht trivial.

Wenn Ihre Plattform x86 ist, ist es am einfachsten, eine virtuelle Maschine zu verwenden, die auf einem echten x86 läuft. Die flexibelste und robusteste VM ist kostenlos unter VMWare und eine weitere freie Version von Microsoft . Der Virtual PC von Microsoft ist jedoch für das Ausführen von Windows optimiert, und Linux zu bearbeiten kann mühsam sein, geschweige denn ein Nischen-RTOS.

    
Clifford 17.01.2010 17:25
quelle
1

Sie könnten besser mit einem echten eingebetteten Computer arbeiten. Eine Entwicklungsumgebung für einen Arduino ist hardy teuer, und Sie können direkt am Metall arbeiten: Ссылка

AVR ist ein vernünftiger Start in diesen Raum, x86 ist das nicht.

    
Andrew McGregor 17.01.2010 22:53
quelle