Forum: Mikrocontroller und Digitale Elektronik USB: Verfiy-Call und Write-Ablaufdiagramm


von Michael (Gast)


Lesenswert?

Moin,

hab mal zwei Fragen zum USB Mass Storage Device.

Beim Endpoint-OUT (Bulk-Transfer) gibt es auch die Möglichkeit eines 
Verfiys 0x2F - allerdings wird dieser beim Schreiben einer Datei auf den 
MSC nicht aufgerufen; weiß jmd wann diese Verfiy Funktion aufgerufen 
wird???
1
#define SCSI_WRITE10                    0x2A
2
#define SCSI_VERIFY10                   0x2F
3
#define SCSI_READ12                     0xA8
4
#define SCSI_WRITE12                    0xAA
5
6
//endpoint-out function call 
7
void MSC_BulkOut (void)
8
{
9
  //daten holen vom Endpoint  
10
  BulkLen = USB_ReadEP(MSC_EP_OUT, BulkBuf);
11
12
  switch(BulkBuf)
13
  {
14
     case SCSI_WRITE10:
15
     case SCSI_WRITE12:
16
        MemoryWrite();
17
        break; 
18
19
     case SCSI_VERIFY10:
20
        MemoryVerfiy();     //<- never called
21
        break;
22
    
23
    //usw
24
  }
25
}

Beim MemoryWrite ist mir aufgefallen, dass zuerst das Stammverzeichnis 
komplett überschrieben wird - allerdings ohne einem Size-Eintrag (ist 
0x00) für die neu zu speichernede Datei. Dann wird die FAT geändert, 
dann nochmal das Stammverzeichnis überschrieben (jetzt mit size Eintrag) 
und danach werden die Daten geschrieben.

Gibt es hierfür irgendwo eine genaue Beschreibung - im MSC Dokument von 
usb.org hab ich leider kein Ablaufdiagramm gefunden. Da werden nur die 
SCSI etc. Sachen erklärt...

Gruß
Michael

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.