Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > de.sci.electronics > #275518
| From | Helmut Schellong <rip@schellong.biz> |
|---|---|
| Newsgroups | de.sci.electronics |
| Subject | Re: STM32FXX Flash Speicher weniger abnutzen |
| Date | 2020-02-14 17:46 +0100 |
| Organization | solani.org |
| Message-ID | <r26isp$2h7$1@solani.org> (permalink) |
| References | <haieb6F71q9U1@mid.individual.net> <10kx5aco8lhl5$.dlg@news.bartheld.net> <r262fb$mdt$1@solani.org> <r2677u$fus$1@news.albasani.net> |
On 02/14/2020 14:27, Thorsten Böttcher wrote:
> Am 14.02.2020 um 13:06 schrieb Helmut Schellong:
>
>>
>> Ich habe lange mit AT45DB041D (atmel) gearbeitet.
>
> Ich auch, allerdings mit der großen Version, AT45DB641.
> Der Baustein, bzw. der Nachfolger wird immer noch verbaut.
>
>> Eines ist extrem wichtig:
>> Nach jedem Schreiben in eine Page muß unbedingt
>> pauschal ein 'AUTO PAGE REWRITE' gemacht werden.
>
> Das steht aber so nicht im Datenblatt, und meine Erfahrung sagt das gleiche.
> Wenn Daten in zufälliger Reihenfolge, in einem Sektor verteilt geschrieben
> werden, soll ca. alle 10000 page erase/programm Operationen ein Auto Page
> Rewrite ausgeführt werden. Beim aktuellen Baustein sind es sogar 50000.
Die Interpretation meines Satzes paßt nicht.
Das heißt, ich hätte es mehrfach ausführlicher schreiben sollen,
damit es eindeutig verstanden wird.
Ich meine damit, daß eine Funktion eine Page aus dem Flash
in das RAM liest und ändert.
Nach dieser Page/Schleife wird das RAM in die Page kopiert
und pauschal 'AUTO PAGE REWRITE' durchgeführt.
Ich habe grundsätzlich dies Paar:
FL_write(FL_CONFIG+pga, buf.b, _264);
FL_rewrite(FL_CONFIG+pga, 1);
programmiert.
>> Kollegen von mir machten das nicht.
>
> Mache ich auch nicht.
>
>> Und beim Kunden haben nach wenigen Wochen alle diese
>> Flash-Speicher versagt und alle Anlagen blieben stehen.
Meine Kollegen hatten gar kein Rewrite programmiert.
Prompt kam es zur beschriebenen Katastrophe.
Nachdem sie es machten wie ich, war dies Problem weg.
> Früher hab ich mitgezählt, und wenn die Zahl erreicht war, hab ich den
> Speicher beim Einschalten komplett aufgefrischt.
Das finde ich in meinem Kontext zu unsicher und zu aufwendig.
> Mittlerweile lass ich das weg.
> Datenverlust ist mir bis jetzt keiner gemeldet worden.
> Und es kommen teilweise Geräte zur Überprüfung/Reparatur*, die älter als 10
> Jahre sind.
>
> *Aus anderen Gründen, meistens mechanische Schäden.
Bei uns rächte sich die Unterlassung schnell.
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; pga<pgae; pga=rpga?rpga:pga+_264) {
for (rpga=rest=0,sp=CFGdata; sp->grp; ++sp) {
adr= sp->adr;
if (adr>=pga && adr<pga+_264) {
adr-=pga; len=sp->len; 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;
}
--
Mit freundlichen Grüßen
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
Back to de.sci.electronics | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
STM32FXX Flash Speicher weniger abnutzen Ole Jansen <remove.this.kaspernasebaer@gmx.de> - 2020-02-12 14:53 +0100
Re: STM32FXX Flash Speicher weniger abnutzen Andreas Fecht <forum@aftec.de> - 2020-02-12 16:27 +0100
Re: STM32FXX Flash Speicher weniger abnutzen Ole Jansen <remove.this.kaspernasebaer@gmx.de> - 2020-02-13 08:54 +0100
Re: STM32FXX Flash Speicher weniger abnutzen Andreas Fecht <forum@aftec.de> - 2020-02-13 11:43 +0100
Re: STM32FXX Flash Speicher weniger abnutzen Ole Jansen <remove.this.kaspernasebaer@gmx.de> - 2020-02-14 08:49 +0100
Re: STM32FXX Flash Speicher weniger abnutzen Thorsten Böttcher <thorsten_nospam@gmx.net> - 2020-02-14 09:33 +0100
Re: STM32FXX Flash Speicher weniger abnutzen Ole Jansen <remove.this.kaspernasebaer@gmx.de> - 2020-02-14 14:18 +0100
Re: STM32FXX Flash Speicher weniger abnutzen Thorsten Böttcher <thorsten_nospam@gmx.net> - 2020-02-13 11:45 +0100
Re: STM32FXX Flash Speicher weniger abnutzen Uwe Bonnes <bon@hertz.ikp.physik.tu-darmstadt.de> - 2020-02-12 19:57 +0000
Re: STM32FXX Flash Speicher weniger abnutzen Marte Schwarz <marte.schwarz@gmx.de> - 2020-02-13 08:25 +0100
Re: STM32FXX Flash Speicher weniger abnutzen Rafael Deliano <rafael_deliano@arcor.de> - 2020-02-13 17:40 +0100
Re: STM32FXX Flash Speicher weniger abnutzen Volker Bartheld <news2020@bartheld.net> - 2020-02-13 20:43 +0100
Re: STM32FXX Flash Speicher weniger abnutzen Ole Jansen <remove.this.kaspernasebaer@gmx.de> - 2020-02-14 08:17 +0100
Re: STM32FXX Flash Speicher weniger abnutzen Volker Bartheld <news2020@bartheld.net> - 2020-02-14 10:30 +0100
Re: STM32FXX Flash Speicher weniger abnutzen Ole Jansen <remove.this.kaspernasebaer@gmx.de> - 2020-02-14 13:45 +0100
Re: STM32FXX Flash Speicher weniger abnutzen Hanno Foest <hurga-news2@tigress.com> - 2020-02-14 14:23 +0100
Re: STM32FXX Flash Speicher weniger abnutzen Ole Jansen <remove.this.kaspernasebaer@gmx.de> - 2020-02-14 15:00 +0100
Re: STM32FXX Flash Speicher weniger abnutzen Hanno Foest <hurga-news2@tigress.com> - 2020-02-14 16:28 +0100
Re: STM32FXX Flash Speicher weniger abnutzen Ole Jansen <remove.this.kaspernasebaer@gmx.de> - 2020-02-17 10:28 +0100
Re: STM32FXX Flash Speicher weniger abnutzen Hanno Foest <hurga-news2@tigress.com> - 2020-02-17 11:29 +0100
Re: STM32FXX Flash Speicher weniger abnutzen Ulf.Kutzner@web.de - 2020-02-17 03:42 -0800
Re: STM32FXX Flash Speicher weniger abnutzen Volker Bartheld <news2020@bartheld.net> - 2020-02-14 16:35 +0100
Re: STM32FXX Flash Speicher weniger abnutzen Hanno Foest <hurga-news2@tigress.com> - 2020-02-14 17:16 +0100
Re: STM32FXX Flash Speicher weniger abnutzen Volker Bartheld <news2020@bartheld.net> - 2020-02-14 17:37 +0100
Re: STM32FXX Flash Speicher weniger abnutzen Falk Willberg <faweglassenlk@falk-willberg.de> - 2020-02-16 21:40 +0100
Re: STM32FXX Flash Speicher weniger abnutzen Helmut Schellong <rip@schellong.biz> - 2020-02-14 13:06 +0100
Re: STM32FXX Flash Speicher weniger abnutzen Thorsten Böttcher <thorsten_nospam@gmx.net> - 2020-02-14 14:27 +0100
Re: STM32FXX Flash Speicher weniger abnutzen Helmut Schellong <rip@schellong.biz> - 2020-02-14 17:46 +0100
Re: STM32FXX Flash Speicher weniger abnutzen Hans-Peter Diettrich <DrDiettrich1@aol.com> - 2020-02-14 13:53 +0100
Re: STM32FXX Flash Speicher weniger abnutzen Ole Jansen <remove.this.kaspernasebaer@gmx.de> - 2020-02-17 18:10 +0100
Re: STM32FXX Flash Speicher weniger abnutzen Thorsten Böttcher <thorsten_nospam@gmx.net> - 2020-02-18 07:19 +0100
Re: STM32FXX Flash Speicher weniger abnutzen Ole Jansen <remove.this.kaspernasebaer@gmx.de> - 2020-02-18 07:53 +0100
Re: STM32FXX Flash Speicher weniger abnutzen Thomas Prufer <prufer.public@mnet-online.de.invalid> - 2020-02-18 09:11 +0100
Re: STM32FXX Flash Speicher weniger abnutzen Ole Jansen <remove.this.kaspernasebaer@gmx.de> - 2020-02-18 14:22 +0100
Re: STM32FXX Flash Speicher weniger abnutzen Thomas Prufer <prufer.public@mnet-online.de.invalid> - 2020-02-18 18:15 +0100
csiph-web