Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > de.sci.electronics > #275518

Re: STM32FXX Flash Speicher weniger abnutzen

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>

Show all headers | View raw


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 | NextPrevious in thread | Next in thread | Find similar | Unroll thread


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