hallo, ich darf ein C-Projekt für ATMEGA 128 das mit dem ICCAVR erstellt wurde auf den AVR-GCC portieren. Gibts da bekannte Fallstricke? Tipps? hat jemand schon mal mit so einer Umstellung Erfahrungen gesammelt? Gruss Jürgen
Ich kenne jetzt zwar nicht den ICCAVR, aber den ICC für HC11/12 (Motorola). Der ICC arbeitet ganz anders mit Interrupts. Beim ICC wird das mit #pragma interrupt_handler deine_ISR beim GCC ist es halt sowas wie
1 | ISR(Vectorname){ |
2 | /* Interrupt Code */
|
3 | }
|
Das finde ich ehrlich gesagt besser gelöst. Und ICC hat auch einige seltsame Angewohnheiten, die GCC nicht hat. Ansonsten ist es eigentlich relativ gleich.
Auf jeden Fall die Zugriffe auf Variablen mit Flash-Speicher genau nachvollziehen. Ist bei den "kommerziellen" Compilern anders und lesen aus dem Programmspeicher muss bei avr-gcc/avr-libc "von Hand" implementiert werden. Vielleicht gibt mein gcc-Port der Butterfly-Beispielanwendung ein paar Hinweise, der Ursprungscode ist fuer den IAR-Compiler, aber Imagecraft und IAR unterscheiden sich in dieser Hinsicht nicht sehr. Habe einiges vom Original-Code als Kommentar im Code gelassen, zeigt also hoffentlich ganz gut die Unterschiede. ( http://www.siwawi.arubi.uni-kl.de/avr_projects/index.html#bf_app ) Martin Thomas
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.