mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik LPC2148 Flash schreiben / debuggen klappt nicht


Autor: Jansus (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Bin gerade leider völlig ratlos...

Ich habe ein Prototype-Board LPC-P2148 von Olimex. Dazu den 
ARM-USB-TINY. Arbeite mit Yagarto.

Debuggen im RAM funktioniert einwandfrei. Allerdings möchte ich aufgrund 
der Programmgröße jetzt für einen Test des Gesamtprogramms das Ganze mal 
in den Flash schreiben.

Habe es zuerst mit dem Philips Flash Utility versucht, allerdings hat es 
mir lediglich die ID ausgelesen, flashen ging nicht. Liegt wohl an einer 
Abneigung gegenüber USB-Seriell-Konvertern...

Daraufhin habe ich Flashmagic ausprobiert. Laut Flashmagic hat es auch 
funktioniert, allerdings schaut es letztlich so aus, dass mein Programm 
wohl startet, aber die Ausgabe auf mein LCD-Display nicht richtig 
funktioniert, es blinkt mal kurz was auf und dann geht nix mehr. Wenn 
ich dann das Board resete, erscheint was auf meinem Display, allerdings 
um fünf oder sechs Zeichen nach rechts verschoben.

Da ich einen Fehler meinerseits natürlich nicht vollkommen ausschließen 
kann, würde ich jetzt gerade über meinen JTAG-Adapter den µC flashen und 
idealerweise mal im Flash debuggen.
Ich habe auch schon diverse Seiten nach passenden Infos durchsucht. 
Allerdings nicht wirklich was gefunden, dass mich weitergebracht hat.

Habe mal ein Dokument mit meinem Config-File und dem Flashscript 
angehängt.

Würde mich sehr über Tipps und Ratschläge freuen! Vielleicht kennt sich 
von Euch ja einer gut damit aus, oder hatte schonmal das gleiche oder 
ein ähnliches Problem.


Viele Grüße
Jansus

Autor: Andreas K. (a-k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn Flashmagic sagt, dass die Programmierung erfolgreich war, dann 
solltest du erst einmal davon ausgehen, dass dies stimmt. Und dass dein 
Programm das Problem ist.

Autor: Jansus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da hast Du recht!
Habe es inzwischen auch hinbekommen, dass mein LCD das Richtige ausgibt.
Aber so ein paar Kleinigkeiten im späteren Verlauf meines Programms 
funktionieren noch nicht. Daher würde ich es eben gerne mal im Flash 
debuggen, denn wenn ich es im RAM debugge funktioniert alles.
Weißt Du wie ich das mit Yagarto realisieren kann? Oder hast Du einen 
Tipp für mich wo ich es herausfinden kann?

Autor: Andreas K. (a-k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hatte es mit GNUARM/Eclipse/OpenOCD hinbekommen (war vor Yagarto). 
Ist etwas hakliger, weil im Flash nur 2 Breakpoints existieren und davon 
einer für den Trace draufgeht. Aber ist zu lange her.

Schau mal bei http://en.mikrocontroller.net/forum/17 vorbei.

Autor: Jansus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank für Deinen Tipp!

Habe dort leider nix gefunden, habe auch diverse andere Foren 
durchsucht, zwar Anstöße bekommen, aber nichts erfolgreiches.

Leider besteht mein Problem immer noch. Habe auch keine Ahnung was der 
Fehler ist.
Gibt es irgendeinen Grund weshalb was im RAM läuft und im Flash nicht 
mehr?

Mein Programmabschnitt, der Probleme macht, schaut in etwa so aus:

Ein Taster, via EXTINT, kann eine Funktion starten (beim ersten drücken) 
und wieder beenden (beim zweiten drücken). Im RAM funktioniert das 
einwandfrei. Im Flash allerdings funktioniert es nicht mehr.
Merkwürdigerweise kann ich den Taster aber an anderer Stelle nutzen. Nur 
beim Starten dieser einen Funktion klappt nix.

Daher gehe ich davon aus, dass es an der folgenden Funktion liegen muss. 
Hier werden Variablen (static) hochgezählt und entsprechend ihrem Wert 
Softwareinterrupts ausgelöst. Aber kann das mein Fehler/Problem sein?


Verzweifelte Grüße
Jansus

Autor: Robert Teufel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Auf der Yagoarto Webseite gibt es ein "how to" tutorial fuer open OCD 
und fuer J-Link. Da funktioniert debugging im Flash sehr gut. Solltest 
Du Stdent sein, dann gibt es J-Link fuer 99 Euro.
http://yagarto.de/howto/jlink/index.html

Robert

Autor: Jansus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke auch für Deinen Tipp!
Leider bin ich eben Student und kann mir daher nicht mal eben 100Euronen 
für nen neuen Adapter leisten.
Muss es irgendwie mit meinem ARM-USB-OCD-TINY hinbekommen.

Habe inzwischen rausgefunden, dass es mit meinen Softwareinterrupts 
zusammenhängt. Wenn ich sie mit MEMMAP=2 in den RAM verschieben lasse, 
gehts, wenn ich sie allerdings im Flash lasse, MEMMAP=1, funktionieren 
nur die EXTINTs aber meine SW-Interrupts nicht mehr.

Ist das was bekanntes?

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.