mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ARM-Programm läuft nicht aus Flash


Autor: Marius S. (lupin) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe mal mein verstaubtes AT91SAM7S256 board und den Wiggler raus 
gekramt und CrossWorks for ARM 1.6 installiert.

Hab den Code vom S65 display mal ganz schnell und dreckig konvertiert, 
kompiliert und lief auch soweit.

Aber obwohl ich die build configuration auf "ARM Flash Release" gestellt 
habe ist nach einem Reset das Programm weg.

Sollte es nicht in den Flash geschrieben werden? Die Meldungen von 
Crossworks besagen auch, dass sowohl in 0x100000 und 0x200000 
geschrieben wird.

Leider fällt es mir etwas schwer nachzuvollziehen, was da ausserhalb der 
Benutzerebene abläuft (komische bootscripte etc).

Ich hoffe ihr habt nen Tipp :-)

Autor: Robert Teufel (robertteufel)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mein erster Gedanke waere mit derselben Prozedur ein "Blinky" zum laufen 
zu bekommen, natuerlich aus dem Flash. Wenn das funktioniert, dann ist 
schon mal gewaehrleistet, dass die Vorgehensweisse OK ist. Der Verdacht 
geht dahin, dass in Wirklichkeit das Flash nicht programmiert wurde, 
sondern was lief, lief aus dem SRAM, aber wie gesagt, nur so ein 
Verdacht.

Robert Teufel
Partner in Silicon Valley gesucht? Ich stehe gerne zur Verfuegung.
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Meine ARM/Cortex Webseite: http://www.lpc2000.com

Autor: Marius S. (lupin) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke Robert für den Tipp. In der Richtung vermute ich auch den Fehler, 
kann aber nicht genau sagen ob das Programm aus SRAM oder Flash läuft 
(es wurden aber zwei Bereiche Programmiert...).

Ich werde mich heute abend wieder damit beschäftigen. Wie gesagt, von 
den angezeigten Adressen her müsste auch das Flash programmiert worden 
sein.

Mit OpenOCD konnte ich schonmal ein "Blinky" rein programmieren. Das 
alte "Blinky" wurde anscheinend überschrieben, denn wenn ich jetzt einen 
Reset ausführe passiert nix mehr.

Vielleicht liegt es auch daran, dass nach der Programmierung das RAM 
oder irgendwelche Register irgendwie initialisiert sind und das in 
meinem Programm nach einem Reset nicht mehr passiert.

Wäre super wenn sich jemand melden könnte der mit Crossworks + AT91S 
etwas mehr Erfahrungen hat.

Autor: Nobbie (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Robert,

beim CrossWorks mußt du, glaube ich, noch "STARTUP_FROM_RESET" unter den 
Preprocessor Definitions machen.

In dem bootscript sind alle möglichen defines definiert

gruss
nobbie

Autor: Marius S. (lupin) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke Nobbie, das war's. Das hätte ich auch selbst raus finden können - 
hab mir die Dateien gar nicht so genau angeschaut (dachte mir "daran 
änderst du lieber nichts, sonst machst was kaputt") ;-)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.