SD Karte geht bei großer Datei kaputt

Gast #2925223
Lesenswert?

Hallo,

ich verwende die Lib hier aus dem Forum für FAT16/32 von Roland Riegel.
Wenn ich eine große Datei auf die Karte schreiben will, kann ich nicht 
mehr mit dem PC auf die Karte zugreifen. Formatieren geht auch nicht 
mehr. Ich vermute, dass die geschützten Bereiche der Karte verändert 
werden. Ist das möglich, oder liegt es nur an mir?
So verwende ich die Lib nach der Initialisierung von der Karte und FAT.

uint32_t i = 0;
uint8_t temp = 0;
unsigned char file_name[12] = "pruning TXT";

if(1==ffopen(file_name,'c')) //Datei wurde angelegt
{
  LCD_setTextColor(Black);
  LCD_drawRect_full(24,75,48,319);
  LCD_setTextColor(Purple);
  LCD_displayStringLn(Line1,78, "Writing Table...");

  for(i=0;i<=500000000;i++)
  {
    ffwrite(temp);
    temp++;
  }
  ffclose();
  LCD_setTextColor(Black);
  LCD_drawRect_full(24,75,48,319);
  LCD_setTextColor(Purple);
  LCD_displayStringLn(Line1,78, "Table finished");
}

Ich will zu Test ein etwa 500MB große Datei schreíben, da ich das auch 
in meiner späteren Applikation brauche.

Vielleich fällt euch der Fehler auf!

Gruß, Jens
Gast #2925525
Lesenswert?

Hallo,

Stimmt, es ist die Lib von Daniel R.
Wie kann ich denn nur den Sektor 0 mit Nullen füllen? Was passiert da 
und warum kann ich die Karten dann wieder formatieren.
Ich habe gestern die Karte nochmal am Controller angeschlossen. Die 
Karte lässt sich initialisieren. Beim laden der Fat Daten geht es dann 
nicht mehr weiter.

Gruß, Jens
Gast #2925631
Lesenswert?

Hallo

Den Sektor 0 mit Nullen füllen hat bei einer Karte was gebracht. Die 
kann ich wieder verwenden.
Ich habe dann versucht eine kleine Datei anzulegen und da was zu 
schreiben.
Da ist wohl der Fehler bei Erstellen der Datei. Die wird erzeugt, aber 
der schreib nichts rein, oder die Datei wird nicht richtig geschlossen.
Ich muss das nochmal versuchen.
Vielleicht liegt es daren:
if(1==ffopen(file_name,'c'))

Ich muss den Rückgebewert nochmal richtig anschauen. Wenn der nicht 
stimmt, ist die Datei vielleicht nicht bereit zum schreiben und ich 
schreibe irgendwo auf die Karte.

Gruß, Jens

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren