Hallo Zusammen,

ich lese schon seit ein paar Tagen den Code für den Zugriff auf die SD-Karte 
aber ich komme nicht weiter.
Was genau macht die Funktion hardware/storage/vfs_sd.c -> vfs_sd_chdir()  ?

Wenn ich versuche, eine Datei in einem Unterverzeichnis anzulegen, geht es auf 
diese Weise schief:

uint8_t filelogger_init (const char *dirname,  char *filename)
{
 // dirname = "xyz"
  struct fat_dir_struct * dir_struct;
  if ( ( dir_struct = vfs_sd_chdir(dirname)) == NULL)
  {
    vfs_sd_mkdir_recursive( dirname );
    vfs_sd_chdir(dirname);
  }

  // filename = "/xyz/1234.txt";
  struct vfs_file_handle_sd_t * filelogger_handle;
  if ( (filelogger_handle = vfs_sd_open(filename)) == NULL ) 
 {
      if ( (filelogger_handle = vfs_sd_create(filename)) == NULL ) 
     {
        debug_printf("could not open file");
        return 1;
  // schlaegt hier fehl
  // oder
  // bei filename = "1234.txt"; 
  // wird die Datei im Root- und nicht im Unterverzeichnis erzeugt..)
    }
  }
}


Wenn ich vfs_sd_chdir jedoch gar nicht aufrufe, haut es hin (wenn das 
Verzeichnis existiert).

uint8_t filelogger_init (char *filename)
{

   // filename = "/xyz/1234.txt";
  struct vfs_file_handle_sd_t * filelogger_handle;
  if ( (filelogger_handle = vfs_sd_open(filename)) == NULL ) 
 {
      if ( (filelogger_handle = vfs_sd_create(filename)) == NULL ) 
     {
        debug_printf("could not open file");
        return 1;
    }
  }
  return 0;
}


Kann mir jemand auf die Sprünge helfen?
Was macht  vfs_sd_chdir()?
Deren Rückgabewert vom Typ struct fat_dir_struct * kann ich auch nirgendwo 
weiterverwenden.
Selbst ein verzweifeltes 
vfs_sd_rootnode = vfs_sd_chdir()
hat mich nicht weitergebracht.

Über Tips wäre ich dankbar!

Viele Grüße
Meinhard


_______________________________________________
Ethersex-devel mailing list
Ethersex-devel@list.zerties.org
http://list.zerties.org/cgi-bin/mailman/listinfo/ethersex-devel

Antwort per Email an