mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik T89C51CC01 Problem beim Programmieren des internes Flash


Autor: Eugen Mailaender (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo alle zusammen,
ich habe folgendes Problem. Ich versuche seit Tagen, in meinen
T89c51cc01 von meiner Applikation aus das interne Flash zu
programmieren. Als Testprogramm versuche ich dabei, den Speicherbereich
von 2000H bis 7000H mit einem Muster zu beschreiben. Zum programmieren
verwende ich die Flash Api funktion des Bootloaders V1.4. Es werden
jeweils pages zu 128 Bytes programmiert. Dabei treten folgende Probleme
auf:
1. zu ca. 90 % funktioniert alles normal.
2. ab und zu bleibt das Programm komplett haengen (Kommt scheinbar  aus
Api-funktion nicht zurueck.
3. Ueberschreibt im schlimmsten Falle sogar sich selbst.
4. Einmal ist es passiert, dass die SecurityBits veraendert wurden und
ich von FLIP aus keinen Zugriff zu den Daten mehr bekam.

Das seltsame ist wie gesagt, dass das Programm sich nicht dauernd
gleich verhaelt.

Vielleicht hat jemand von euch aehnliche erfahrungen gemacht und kann
mir einen Tip geben.

Vielen Dank im Voraus.
Gruesse
Eugen

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hast Du alle Interrupts disabled ?


Peter

Autor: Eugen Mailaender (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, vor dem Aufruf der Apifunktion wird EA=0 gemacht.

Autor: Thomas Zepf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Erratas lesen. Viele der Atmels haben Probleme mit einer PageSize von
128 Bytes. Probier mal eine Pagesize von 16 aus.

Thomas

Autor: Eugen Mailaender (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Thomas,
Vielen Dank fuer deinen Tip. Ich habs mit Pagesize von 16 versucht und
es klappt jetzt. Neugierig wie ich bin, habe ich es bis 64 Bytes
versucht und auch da klappt es immer noch, nur bei 128 laeuft es
manchmal schief.
Danke nochmals und

Gruesse
Eugen

Autor: Thomas Zepf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mein 89c51RC2 und der RB2 konnten damals nur 16 bytes.
Dann haben die wohl bei Atmel inzwischen etwas dazugelernt :-)
Seitdem mache ich halt alles mit 16 Bytes.

Das steht auch in einem der vielen Eratas den IAP modes.

Thomas

Autor: Eugen Mailaender (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Thomas,

Um ganz auf Nummer sicher zu gehen, werde ich in meiner Applikation
trotzdem nur mit Pagelaengen von 16 Bytes arbeiten, man weiss ja nie.

Eugen

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.