Forum: Mikrocontroller und Digitale Elektronik Flash des AT91SAM7S256


von Christian (Gast)


Lesenswert?

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

von Gast (Gast)


Lesenswert?

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).

von Christian (Gast)


Lesenswert?

Habe in den Einstellungen eigentlich alles auf Flash gestellt, also 
flash.mac und flash.xcl, sowie einen extra output des linkers erzeugt.

von gerhard (Gast)


Lesenswert?

ist denn die while(1) schleife leer?
dann wird sie vom compiler wegoptimiert.
schau dir mal die listdatei an.

gruss
gerhard

von embedded-os (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.