www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Programmierung des Flashs wortweise


Autor: Reneee (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

es gibt so weit ich weiß die Möglichkeit den Flashspeicher nach dem 
Flashen des Programms später nochmal nur wortweise zu beschreiben 
natürlich im Modus unprotected.

Kann mir jemand sagen wie ich mit MpLap eine speicherzelle beschreibe ??

Danke für eure hilfe

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Reneee wrote:
> Hallo
>
> es gibt so weit ich weiß die Möglichkeit den Flashspeicher nach dem
> Flashen des Programms später nochmal nur wortweise zu beschreiben

Generell nein.

D.h. generell gibt es keinen Schreibmodus, der bei allen Flash gleich 
ist.

Um also eine Aussage zu Deinem speziellen Flash-IC zu treffen, müßtest 
Du erstmal mit der genauen Typenbezeichnung rausrücken.

Oder am einfachsten, selber mal in dessen Datenblatt schauen.


Peter

Autor: Reneee (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

ich benutze den PIC 16F616. Ich meine wenn ich mit MPLAP den Controller 
auslesen kann ich im Programmmemory ja eine Zelle ändern und den 
Controller neu flashen. Ich sollte aber nur eine Speicherzelle 
beschreiben und nicht wieder den ganzen Bereich !?

gruß rene

Autor: Uhu Uhuhu (uhu)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Ich meine wenn ich mit MPLAP den Controller auslesen kann ich im
> Programmmemory ja eine Zelle ändern und den Controller neu flashen.

Das ist kein Argument dafür, daß sich bei dem Controller Flashzellen 
einzeln beschreiben lassen. Das rauszubekommen, mußt du schon das 
Datenblatt lesen...

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
In der Regel löschen und beschreiben Programmer einen Chip komplett, was 
anderes macht auch wenig Sinn.
Ich wüßte auch keinen Flash der wortweises Löschen erlaubt, manche 
können einzelne Pages löschen.

Wenn Du nur ein Wort ändern willst, mußt Du den Chip auslesen, mit nem 
Hexeditor ändern und den Chip neu brennen.

Allerdings ist der bessere Weg, daß man die Änderung im Quelltext macht, 
neu compiliert und brennt.


Peter

Autor: Reneee (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Laut der Memory programming specification ist eine ONE-WORD PROGRAMMING
möglich. Mit welchem Programm könnte ich dann diese Speicherzelle 
programmieren. Oder müßte ich mit einem anderen Controller so Protokoll 
zum Programmierung nachbilden ?

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Laut der Memory programming specification ist eine ONE-WORD PROGRAMMING
>möglich.

Das stimmt. Aber wo ist der Befehl ONE-WORD ERASE ?
Den gibt es nicht. ONE-WORD PROGRAMMIMG löscht die
Speicherzelle vor der Programmierung nicht. Eine
programmierte Speicherzelle kann nur über Chip-Erase
oder Bulk-Erase gelöscht werden. Und die löschen immer
den gesamten Chip. Also müssen auch immer ALLE
Speicherzellen neu programmiert werden.

Autor: Reneee (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn jetzt aber nach dem Flashen noch einige Speicherzellen
frei sind. Das im Moment der Fall ist. Könnte ich dann zumindest die 
freien Speicherzellen einzeln doch programmieren oder?

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Wenn jetzt aber nach dem Flashen noch einige Speicherzellen
>frei sind. Das im Moment der Fall ist. Könnte ich dann zumindest die
>freien Speicherzellen einzeln doch programmieren oder?

Ja, bau dir einen eigenen PIC Prommer und programmiere
ihn für deine spezielle Anwendung.

Mit MPLAB geht das nicht.

Autor: Reneee (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab in der Hinsicht keine Erfahrung kann ich habe das PICKit 1 sowie 
eine ICD2 Box, kann ich damit irgend etwas anfangen bezüglich der 
Problematik ?

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mal ne ganz einfache Frage: Wofür brauchst du das ?

Autor: Reneee (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Idee dahinter ist ein Projekt im Studium. Es gibt eine Software für 
einen Controller, bzw. ein Hexfile. Die software ist fertig und darf 
nicht mehr neu geflasht werden. An einer freien Stelle im Flash würden 
wir dann eine Seriennummer nachträglich speichern und die fertige 
software greift dann auf diese vordefinierte Speicherstelle zu .!? :-)

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>bzw. ein Hexfile

Dann nimmst du dieses HEX-File, änderst die Seriennummer
an der entsprechenden Stelle im HEX-File (die Adresse ist ja
hoffentlich bekannt !?), berechnest evtl. die Checksumme neu
und brennst die PICs damit. Das ist leichter als seinen PIC
Prommer dazu zu überreden nur einzelne Speicherzellen
zu programmieren.

Autor: Reneee (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mh ja sowas in der Art hatte ich mir auch schon mal überlegt. Wäre schon 
eine alternative. Aber es geht hier auch bisschen um Prozssoptimierung 
das wenn die Controller schon fertig programmiert angeliefert werden 
sozusagen und der Flashvorgang von nur einer Speicherzelle im vergleich 
zum gesamten flashspeicher natürlich zeit und geld spart.

Müßte man dann für die andere Lösung einen alternativen Programmer bauen 
und die entsprechende software dann noch schreiben ?

Autor: Dieter Werner (dds5)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dann häng doch mal den ICD2 an den Compi und starte MPLAB.
Jetzt den ICD2 als Programmer anmelden und die Eigenschaften-Seite 
öffnen.
Wenn mich nicht alles täuscht sollte dann der zu programmierende 
Speicherbereich (Anfangs- und Endadresse) auf einem Tab wählbar sein.
Ich kann's leider nicht ausprobieren weil ich den ICD2 nicht hier habe.

Autor: Reneee (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Dieter

habs ausprobiert und funktioniert einwandfrei.
War doch so einfach. Alles klar.

Danke

Autor: Christian U. (z0m3ie)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du kannst im MPLap ein Seriennummernfile generieren (SQTP File) und dann 
beim Programmieren nutzen, so kannst du deine Serienummern automatisch 
beim Flashen mit programmieren lassen. Funktioniert super.

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.