Forum: Mikrocontroller und Digitale Elektronik SD Karte geht bei großer Datei kaputt


von Jens (Gast)


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

von holger (Gast)


Lesenswert?

Schreib dir mal ein kleines Programm das Sektor 0 komplett
mit Nullen füllt. Vieleicht geht es dann wieder mit dem formatieren.

von Torsten S. (tse)


Lesenswert?

In Rolands SD-Reader gibt es kein ffopen/ffwrite/ffclose.
Meinst Du vielleicht eine andere Lib?

von professioneller Reicheltkunde (Gast)


Lesenswert?

holger schrieb:
> Schreib dir mal ein kleines Programm das Sektor 0 komplett
> mit Nullen füllt. Vieleicht geht es dann wieder mit dem formatieren.

Was passiert dann? Reicht ein dd?

von Jens (Gast)


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

von Schredder (Gast)


Lesenswert?

Jens schrieb:
> Wie kann ich denn nur den Sektor 0 mit Nullen füllen? Was passiert da
> und warum kann ich die Karten dann wieder formatieren.

Warum Windows so pingelig ist musst du Microsoft fragen.

von Schredder (Gast)


Lesenswert?

Jens schrieb:
> Ich vermute, dass die geschützten Bereiche der Karte verändert
> werden.

Was ist das ? Gibt es sowas ? Wofür braucht man das ?

von Jens (Gast)


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

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