Ich weiß zwar nicht so ganz genau was das Ziel dieses Threads ist, aber da du bereits zwei System vorgestellt hast erzähle ich mal über meine derzeitigen Aktivitäten für meine Bachelor Thesis
Ich schreibe einen Kernel der auf einem
STM32 F103 - Controller mit einem ARM Cortex-m3 Prozessor läuft. Evaluationsboard mit diesem Controller kann man bei
Olimex bekommen.
Die von STM bereitgestellte Firmware ist allerdings nicht zu empfehlen, man sollte dann wirklich schon von Grund auf alles selber implementiere, aber genau darum geht es hier ja
Zum beschreiben des Flashs und als GDB-Server zum debuggen wird die Software
openOCD verwendet.
Jetzt noch ein paar Weisheiten und Erfahrungen
- Finger weg von Windows. Wer wirklich Spaß haben möchte ARMs sollte unter Linux programmieren. Grund ist die schlechte Qualität der Windows-SW für ARMs die mehr Ärger macht als hilft.
- Auf IDEs verzichten. Man muss relativ oft (öfters als bei AVRs oder x86er) in den build und flash-Prozess eingreifen. Nicht zuletzt weil ARMs verschiedene Befehlssätze haben (Thumb,Thumb2) und teilweise grundlegende Unterschiede zwischen verschiedene ARM-Prozessoren sind (cortex-m3 haben beispielsweise keine FPU). Auch das beschreiben der µCs ist alles andere als einheitlich.
- Auf die STM-Firmware verzichten. Ich weiß nicht wie es bei anderen Herstellern aussieht, aber die Firmware von STM hat eine umständliche API und ist teilweise von echt mieser Qualität. Ich empfehle vor gebrach sich den Quellcode anzusehen - ist aber auch sonst sehr unterhaltsam
- openOCD ist noch weit weg von fertig und fehlerfrei. Bei Version 0.6 kann man sich mit GDB nicht auf den openOCD-Server verbinden wenn man die symbols aus der elf geladen hat. OpenOCD schickt den Registerdump dann nämlich doppelt und GDB bricht die Verbindung ab weil das Antwortpaket unerwartet groß ist
So, mehr fällt mir nicht ein
Ist zwar jetzt eher alles für den Embedded-Bereich, aber vielleicht Hilft es ja jemanden und vieles lässt sich bestimmt auch auf die "größere" ARMs anwenden.
Einem Anfänger kann ich ARMs nicht empfehlen, aber wer schon etwas lowlevel-Erfahrung hat wird sich schnell mit ihnen anfreunden
PS.: Der Befehlssatz macht Spaß und ist, auch wenn das R für RISC steht, bei weitem nicht so langweilig wie der AVR-Befehlssatz. Man kann sie also durchaus auch in Assembly programmieren ohne verrückt ohne verrückt zu werden
PPS.: Raspberry Pi <3