Forum: Mikrocontroller und Digitale Elektronik Program-Flash teilweise gelöscht


von DummyUser (Gast)


Lesenswert?

Hallo,

In unserem Infineon µC haben wir einen 4x16KB Bereich auf dem ein 
Schreibschutz drauf ist.
Nun haben wir festgestellt, dass auf einem µC die ersten 512B gelöscht 
sind, d.h. da sind Nullen, anschließend ist der Bereich korrekt 
beschrieben.


Habt ihr schon mal was davon gehört, dass durch einen µC-Defekt solche 
Teile gelöscht werden könnten?
Einen Flash löscht man Segment-Weise, ein Segment wäre hier 16KB, aber 
nur 512Byte sind gelöscht?

Danke

von Peter D. (peda)


Lesenswert?

DummyUser schrieb:
> In unserem Infineon µC

Können wir hellsehen, welchen Du meinst?


Peter

von DummyUser (Gast)


Lesenswert?

Es ist der Infineon Tricore TC1797.

von Uwe (Gast)


Lesenswert?

> dass auf einem µC die ersten 512B gelöscht sind, d.h. da sind Nullen

Normalerweise ist gelöschter Flash auf 1 nicht Null. Das heißt im Hex 
editor müßten überall 0xFF stehen. Es sieht danach aus, daß die Firmware 
im Controller das Flash auf Null setzt.

von DummyUser (Gast)


Lesenswert?

Uwe schrieb:
> Es sieht danach aus, daß die Firmware
> im Controller das Flash auf Null setzt.

Wie kann sowas passieren? Ist das ein HW defekt?

von Besserwisser (Gast)


Lesenswert?

Hat dieser uC vielleicht einen Security-Bereich ?
Wenn der enabled wurde, steht zwar das Programm immer noch korrekt 
drinn, aber beim Auslesen liest man immer nur nullen (=Ausleseschutz)
in vorgegebenen Bereichen.

Mit Löschen hat Dein Problem ja nichts zu tun. Man kann aus "einsen" 
immer "nullen" machen = drüberprogrammieren. Somit können ohne Probleme 
512 Bytes zu Null programmiert werden, da das Programmieren ja byteweise 
geschieht.
Das Löschen von Sektoren würde aus Nullen wieder Einsen machen. Und dies 
geht nur Sektorweise, also 16 kB-weise.

Besserwisser

von DummyUser (Gast)


Lesenswert?

Besserwisser schrieb:
> Hat dieser uC vielleicht einen Security-Bereich ?
> Wenn der enabled wurde, steht zwar das Programm immer noch korrekt
> drinn, aber beim Auslesen liest man immer nur nullen (=Ausleseschutz)
> in vorgegebenen Bereichen.

Nein eine "read-protection" ist auf diesem Bereich (ein Bootloader) 
nicht drauf. Alles ist auslesbar. Im Gegenteil, hier ist ein 
Schreibschutz drauf (eine write protection). Von daher ist es 
theoretisch unmöglich daruber zu programmieren

>
> Mit Löschen hat Dein Problem ja nichts zu tun. Man kann aus "einsen"
> immer "nullen" machen = drüberprogrammieren. Somit können ohne Probleme
> 512 Bytes zu Null programmiert werden, da das Programmieren ja byteweise
> geschieht.
> Das Löschen von Sektoren würde aus Nullen wieder Einsen machen. Und dies
> geht nur Sektorweise, also 16 kB-weise.
>
> Besserwisser

von DummyUser (Gast)


Lesenswert?

Keiner eine Idee warum die ersten 512Byte mit 0 überschrieben wurden, 
obwohl ein "Schreibschutz" auf dem Bereich war?
Kann das ein HW defekt sein?

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.