Hallo zusammen,
wie der Betreff schon sagt, möchte ich herausfinden, welche
Mikrocontroller von GNU-Compilern unterstützt werden. Gibt es eine
Stelle, bei der man dazu konkrete Antworten bekommt?
Auf Wikipedia habe ich folgende Liste gefunden, bei der ich aber nicht
weiß, inwieweit ich ihr trauen kann:
http://de.wikipedia.org/wiki/GNU_Compiler_Collection
Zu der Liste: Dort ist allgemein "ARM-Architektur" aufgeführt. Das heißt
doch nicht, dass alle ARM-Prozessoren gleich von GNU-Compilern
unterstützt werden?
Konkret würde ich gerne wissen, ob/welche der folgenden Controller
Unterstützt werden:
V85x
RH850
SPC56xx
SPC57xx
TMS570
MPC56xx
MPC57xx
TC2xx
Könnt ihr mir weiterhelfen bzw. weitere Tipps geben?
Vielen Dank!
Gruß
Tester87
PS: Kann mir eventuell jemand beantworten, ob ein Compiler (nur)
Prozessorbezogen ist? D.h. wenn ich in zwei unterschiedlichen
Mikrocontrollern zweimal den gleichen Prozessor habe, dann müsste ich
den gleichen Compiler verwenden können? (Eine Liste, die ich gefunden
habe, widerspricht dieser - meiner Meinung nach logischen - Annahme)
Tester87 schrieb:> Zu der Liste: Dort ist allgemein "ARM-Architektur" aufgeführt. Das heißt> doch nicht, dass alle ARM-Prozessoren gleich von GNU-Compilern> unterstützt werden?
GCC unterstützt Prozessorarchitekturen, keine Bausteine. Entscheidend
ist also nicht, was auf dem Chip draufsteht, sondern welcher ARM Core
darin verwendet wird. Man darf aber wohl davon ausgehen, dass praktisch
alle ARM Architekturen von GCC unterstützt werden. Siehe
https://gcc.gnu.org/onlinedocs/gcc-4.8.2/gcc/ARM-Options.html#ARM-Options
Etwas anders sieht es bei Entwicklungsumgebungen aus, die auf GCC
basieren. Deren Support für Startup-Code, Include-Files und Libraries
ist auf die Chips bezogen.
Vielen Dank für eure schnellen Antworten!
Also gehe ich davon aus, dass der TMS570 mit ARM-Kern von GCC
unterstützt wird. Bei der gewählten IDE müssten eventuell aber
Anpassungen gemacht werden?
Mich hat nur bei folgender Liste gewundert, dass beim TMS570 kein
GNU-Compiler dabei stand, aber eventuell ist sie unvollständig:
http://vector.com/portal/medien/cmc/datasheets/MICROSAR_Availability_EN.pdf
Laut der Wikipedia-Liste mache ich folgende Annahmen zu den uCs:
V850 (unterstützt GCC, da explizit als Mikrocontroller aufgeführt)
TMS570 (unterstützt GCC, da ARM-Kern)
TC2xx (unterstützt GCC, da Infineon TriCore-Controller unterstützt
werden sollen?)
Die restlichen Controller-(Familien) (RH850, SPC56xx, SPC57xx, MPC56xx
MPC57xx) können nicht mit der GCC kompiliert werden.
Wenn jemand etwas anderes weiß/denkt, bin ich gerne offen für weitere
Tipps und Anregeungen.
Gruß
Wie schon gesagt wurde, der gcc unterstützt Prozessorarchitekturen,
keine Mikrocontroller. Bei den Architekturen kannst du davon ausgehen
dass der quasi alles unterstützt. Du brauchst aber zum Beispiel ein
Linker File, wo drin steht, wo der Code liegt, und Startup-Code, der zum
Beispiel die richtigen Interrupts an der richtigen Stelle platziert.
Sowas kann man sich aber im Notfall auch mit vertretbarem Aufwand selber
schreiben, das sind nur wenige hundert Zeilen.
Tester87 schrieb:> Die restlichen Controller-(Familien) (RH850, SPC56xx, SPC57xx, MPC56xx> MPC57xx) können nicht mit der GCC kompiliert werden.
Die MSP56xx/570xx klingen nach PowerPC, Das kann GCC auch.
RH850 wird unter V850 mit erwähnt.
Vielen Dank. Richtig, die MSP56xx/57xx (sind meines Wissens nach die
gleichen Controller wie SPC56xx/SPC57xx) sind Power-Architekturen, die
eigentlich auch von GCC unterstützt werden. Soweit ich an einer anderen
Stelle erfahren habe, soll es aber (zumindest für den MPC57xx) keinen
GNU-Compiler - je nachdem, an welcher Stelle man liest/fragt,
widersprechen sich die Ergebnisse.. Das muss ich nochmal genauer
untersuchen. Vielen Dank auf jeden Fall für den Hinweis.
> Gibt es eine Stelle, bei der man dazu konkrete Antworten bekommt?
Schonmal auf die Idee gekommen dir einfach die Manpage des gcc
anzuschauen? Da siehst du die ganzen Targetspezifischen
Kommandozeilenparameter.
Olaf