Hallo, ich dachte, ich hätte das mit der IAR Embedded Workbench 4.3 (AT91SAM7S-EK & SAM-ICE) endlich zum Laufen gebracht. Leider erlitt ich da heute einen kleinen Rückschlag. Jedesmal, wenn ich ein Programm schreibe, das eine Endlosschleife beinhaltet, z.B. while(1) bekomme ich das Programm nicht in den Flash. Ich kann debuggen und den Debugger dann abbrechen, danach ist das Programm aber nicht auf dem Mikrocontroller. Nach Reset oder Stromaus ist nichts vorhanden. Geht mein Programm allerdings im Debugger auf "END" dann habe ich es danach auch im Flash. Was kann ich denn da tun? Ist IAR für while(1) Schleifen ungeeignet? Danke Gruß Christian
Das Programm landet vermutlich zum Debuggen im RAM des Controllers. Prüfe, ob es einen Schalter gibt der das Programm wahlweise ins RAM oder FLASH legt (ist bei KEIL so).
Habe in den Einstellungen eigentlich alles auf Flash gestellt, also flash.mac und flash.xcl, sowie einen extra output des linkers erzeugt.
ist denn die while(1) schleife leer? dann wird sie vom compiler wegoptimiert. schau dir mal die listdatei an. gruss gerhard
Code nicht mehr im Speicher kenne ich nicht, aber Probleme mit einer leeren "while(1);". Bei einigen Boards ARM/CM3 ist es sehr sinnvoll diese Schleife mit einigen NOPs zu befüllen. Damit ist debugging besser mgl. und man kommt immer an das Board bei nächsten flashen heran. while(1) { _NOP(); _NOP(); _NOP(); }
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.