Programmierung des Flashs wortweise

#663139
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
Gast #663148
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
#663154
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...
#663169
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
Gast #663222
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 ?
Gast #663258
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.
Gast #663352
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.
Gast #663371
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 .!? :-)
Gast #663391
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.
Gast #663396
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 ?
#664154
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren