Programmierung des Flashs wortweise

Gast #663100
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
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
Gast
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
> 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...
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
Gast
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 ?
Gast
>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.
Gast
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?
Gast
>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.
Gast
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 ?
Gast
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 .!? :-)
Gast
>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.
Gast
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 ?
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.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 19 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.