Forum: Mikrocontroller und Digitale Elektronik Programmierung des Flashs wortweise


von Reneee (Gast)


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

von Peter D. (peda)


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

von Reneee (Gast)


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

von Uhu U. (uhu)


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...

von Peter D. (peda)


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

von Reneee (Gast)


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 ?

von holger (Gast)


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.

von Reneee (Gast)


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?

von holger (Gast)


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.

von Reneee (Gast)


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 ?

von holger (Gast)


Lesenswert?

Mal ne ganz einfache Frage: Wofür brauchst du das ?

von Reneee (Gast)


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

von holger (Gast)


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.

von Reneee (Gast)


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 ?

von Dieter W. (dds5)


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.

von Reneee (Gast)


Lesenswert?

Hallo Dieter

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

Danke

von Christian U. (z0m3ie)


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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.