STM32FXX Flash Speicher weniger abnutzen

Feb 12, 2020 34 Replies

Am 14.02.20 um 15:00 schrieb Ole Jansen:

auf die Presse verlassen, und die schreibt da nichts von "nicht ausreichend". Und vielleicht macht ja ein junges Unternehmen wie Tesla

mir einfallen. Vielleicht auch Wasserkopf, wegen des Zeitfaktors.

Hanno

Nie irgendwas von Ulf Kutzner glauben, insbesondere Zitate immer im Strohmann-Argumente zu konstruieren.

"Tesla has known about this issue for years now and has done nothing to mitigate it. I've personally reported it on multiple occasions, and I know others have as well. I've noted this to Tesla on several occasions, starting in late 2015, and several times since." [...]', aka. jahrelang die Beine stillhalten, dann - auf wachsenden Druck irgendwann

ganze Board austauschen, spezialisierte Firmen aussperren, die nur das BGA

Und was wurde daraus gelernt? Einfach: "Instead of mitigating the issue, it writes even more data to the logs today than ever before. Combined with the max-size firmware images, general caching ? map tiles, Autopilot info, music, etc. ? this makes every MCUv1 have a high probability of failure."

Also genau das, was man von solchen Unternehmen erwartet, in guter Gesellschaft mit z. B. Apple. Ist den Fanboys aber egal, die haben ihr lustiges Spielzeug und fertig.

Volker

Am 14.02.20 um 16:35 schrieb Volker Bartheld:

jemand anderes die Kontrolle hat. Vgl. auch

formatting link

Hanno

Nie irgendwas von Ulf Kutzner glauben, insbesondere Zitate immer im Strohmann-Argumente zu konstruieren.

Ach was. Nichts gegen einzuwenden, wenn Du z. B. eine ??? SD-Karte mit

zwingend erforderlichen Onlinesupport einstellt *). Kannst ja das

Volker

*)
formatting link

formuliert.

damit es eindeutig verstanden wird.

Nach dieser Page/Schleife wird das RAM in die Page kopiert

FL_write(FL_CONFIG+pga, buf.b, _264); FL_rewrite(FL_CONFIG+pga, 1); programmiert.

Meine Kollegen hatten gar kein Rewrite programmiert. Prompt kam es zur beschriebenen Katastrophe.

Nachdem sie es machten wie ich, war dies Problem weg.

Das finde ich in meinem Kontext zu unsicher und zu aufwendig.

Code-Beispiel:

void CopyDefaultsToCfg(void) { CFG_t *sp; UNS pga, rpga, rest, adr, len; UNS const pgae= MU.anzcfgpg*_264; union { BYTE b[_264+OBJMAX*2]; UNS2 w[(_264+OBJMAX*2)/2]; } buf, rbuf; UNS2 n, z;

memsetw(buf.w, 0xFFFFu, sizeof(buf.w)/2); for (pga=0; pgagrp; ++sp) { adr= sp->adr; if (adr>=pga && adrlen; n=sp->nelem; z=0; do { if (sp->dfstr) strncpyNF_F((z?rbuf.b:buf.b)+adr, sp->dfstr , len); else memcpyNF_F((z?rbuf.b:buf.b)+adr, sp->dfmima, len); adr+=len; if (!z) { //COPYTO(buf.b); if (adr>_264) { z=1; rpga=pga+_264; adr-=_264; memsetw(rbuf.w, 0xFFFFu, sizeof(rbuf.w)/2); memcpy_F(rbuf.b, buf.b+_264, adr); } } else { //COPYTO(rbuf.b); if (adr>=_264) { WD_RESET; FL_write(FL_CONFIG+rpga, rbuf.b, _264); FL_rewrite(FL_CONFIG+rpga, 1); rpga+=_264; memsetw(rbuf.w, 0xFFFFu, _264/2); if ((adr-=_264)>0) memcpy_F(rbuf.b, rbuf.b+_264, adr); memsetw(rbuf.b+_264, 0xFFFFu, (OBJMAX*2)/2); } } } while (--n); if (z) rest=adr; } } WD_RESET; FL_write(FL_CONFIG+pga, buf.b, _264); FL_rewrite(FL_CONFIG+pga, 1); memsetw(buf.w, 0xFFFFu, sizeof(buf.w)/2); if (rest) memcpy_F(buf.b, rbuf.b, rest); } return; }

Helmut Schellong var@schellong.biz www.schellong.de www.schellong.com www.schellong.biz http://www.schellong.de/c.htm http://www.schellong.de/htm/audio_proj.htm http://www.schellong.de/htm/audio_unsinn.htm

...

so schwierig, wie drei von zehn Spiegeleier in der gleichen Pfanne anbrennen zu lassen.

Da hilft Ziehen und wieder Stecken der 200A-Sicherung der

groben Stufen und auch nur mit 50% des Maximums beschleunigen. Naja, irgendwas ist ja immer ;-

...

Mein TESLA-Kollege ist als APPLE-Fanboy schlimmer ;-)

Falk

Am 14.02.2020 um 16:28 schrieb Hanno Foest:

Capital und Focus schreiben was dazu, die Artikel sind aber hinter den Bezahlschranken nicht mehr auffindbar.

kennst Du.

sondern anders.

O.J.

Am 17.02.20 um 10:28 schrieb Ole Jansen:

Klar. Amazon hat auch ne Weile gebraucht, bis die profitabel waren. Schaun wir mal.

Hanno

Nie irgendwas von Ulf Kutzner glauben, insbesondere Zitate immer im Strohmann-Argumente zu konstruieren.

Am Montag, 17. Februar 2020 11:29:05 UTC+1 debilierte Hanno Foest:

Am 12.02.2020 um 14:53 schrieb Ole Jansen:

und 16bit weises Schreiben und fragt daher was in diesem Fall am

Annahme 1: Beim Erase nutzen sich gewechselte bits mehr ab als

Wortes immer nur ein bit zu wechseln und bei jedem Durchlauf auf ein anderes bit umzuschalten.

Annahme 2: Annahme1 ist falsch, aber bei einem "verbrannten" Flash kippen oft nicht ganze Worte sondern einzelne bits.

d.h. das ganze Wort von 0xFFFF auf 0x0000 setzen und beim Lesen z.B. allss !=0xFFFF als 0x0000 zu interpretieren oder

Annahme 3: Alles egal. Nach Soundsovielen Erase Zyklen ist es sowieso kaputt und kaputte Zellen sind komplett unbeschreibbar.

auf Reserveseiten umzuschalten.

O.J.

Am 17.02.2020 um 18:10 schrieb Ole Jansen:

schon bei den 8 Bit AVR so. Mit CRC hat das nichts zu tun.

Snip

Goldcap, Spannungserkennung und nur ab und zu schreiben, oder FRAM dran und quasi unbegrenzte Schreibzyklen. Oder halt, wenn Du unbedingt nur den Prozessor benutzen willst, eine

0xFFFF sind. Das war mir am Anfang nicht ganz klar.

Bis etwa 4x10^8 mit max 70Hz.

passt. Plan B ist der Ersatz durch einen anderen pinkompatiblen Chip.

O.J.

(Nein, das mein ich nicht ernst, aber ich find die Dinger supercool. Nix dran,

sag ich mal nix.)

Thomas Prufer

Am 18.02.2020 um 09:11 schrieb Thomas Prufer:

Hihi, sowas hab ich noch neulich noch in einem alter Interferometer

mit ROHS?

O.J.

"Freilich ist das bleifrei."

Thomas Prufer

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required