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
> 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.
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?
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
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.