Forum: Compiler & IDEs Frage zu ARM GCC toolchain


von Christoph R. (cruppstahl)


Lesenswert?

Hi,

ich bin Entwickler einer open-source Datenbankengine, die auch auf 
Embedded Plattformen läuft. Geschrieben in ANSI-C, läuft unter Linux und 
Windows. Windows CE kann ich mit dem Emulator von Microsoft testen, 
allerdings nur auf x86. Ich weiss aber, dass meine Datenbank auch auf 
ARM läuft.

Ich möchte ARM-, Sparc- und PowerPC-Plattformen (und eventuell noch 
andere) gern in meine Tests aufnehmen, als Betriebssystem Linux oder 
andere Unices; dabei habe ich bislang zwei Alternativen gefunden:

1. die komplette Plattform emulieren mit qemu
2. eine cross-compiler-toolchain (wie z.b. ARM GCC toolchain von 
mikrocontroller.net) benutzen

Lösung 2) scheint mir etwas einfacher zu sein, vor allem da qemu etwas 
kompliziert ausschaut - es gibt dort zwar images, z.b. von Sparc oder 
Linux auf ARM, allerdings sind sie sehr minimal... Lösung 1) ist 
umfangreicher, aber evtl auch flexibler, vor allem dank 
openembedded.org. Hat aber eine starke Lernkurve, und ich blicke noch 
nicht durch.

Was würdet ihr mir empfehlen? Habt ihr noch andere Ideen? Ich würde gern 
so viele Architekturen wie möglich durch meine Tests automatisiert 
abdecken.

Grüsse und Danke
Christoph

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Nur ANSI-C, kein POSIX o.ä.? Dann kannst du die ARM-GCC-Toolchain 
verwenden, da ist ein Simulator enthalten:
http://www.mikrocontroller.net/articles/Using_arm-elf-run

von Christoph R. (cruppstahl)


Lesenswert?

Doch, sorry, Posix ist schon drin. Memory Mapped I/O (kann aber 
deaktiviert werden), und natürlich normale creat/open/close/read/write 
datei-zugriffe.

Simuliert die Toolchain einen big-endian ARM mit Alignment wie auf der 
Sparc (also integer nur 4-byte aligned etc?) Dann würde ich das auf alle 
Fälle ausprobieren, denn big endian und Sparc-Alignment kann ich derzeit 
nur sehr schwer testen.

von Christoph R. (cruppstahl)


Lesenswert?

Ich hab die ARM-GCC-Toolchain getestet.

Laut meinen Tests ist sie little endian und kann Byte-Alignment. Ich 
weiss nicht ob das für ARM normal ist, aber es ist jedenfalls nicht das, 
was ich suche, ich brauche leider genau das Gegenteil :(

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Man müsste mit der Toolchain auch Big Endian kompilieren können, 
probier's mal mit -mbig-endian. Ob das der Simulator dann auch frisst 
weiß ich allerdings nicht. 4-byte-Alignment macht der ARM-Compiler 
nicht.

Schau dir mal RTEMS an (das ist ein RTOS für u.a. SPARC), da findest du 
eine Toolchain und Hinweise zur Simulation.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.