Pendrive to sd card data transfer coding

Dependencies:   FatFileSystem TextLCD mbed

Fork of MSCUsbHost by gavin beardall

Committer:
gbeardall
Date:
Mon Oct 17 10:41:52 2011 +0000
Revision:
0:e6a539e59b52
Child:
1:77e50c06ea01

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
gbeardall 0:e6a539e59b52 1 #include "mbed.h"
gbeardall 0:e6a539e59b52 2 #include "MSCFileSystem.h"
gbeardall 0:e6a539e59b52 3 //#include <stat.h>
gbeardall 0:e6a539e59b52 4
gbeardall 0:e6a539e59b52 5 #define FSNAME "msc"
gbeardall 0:e6a539e59b52 6 MSCFileSystem msc(FSNAME);
gbeardall 0:e6a539e59b52 7
gbeardall 0:e6a539e59b52 8 int main()
gbeardall 0:e6a539e59b52 9 {
gbeardall 0:e6a539e59b52 10 DIR *d;
gbeardall 0:e6a539e59b52 11 struct dirent *p;
gbeardall 0:e6a539e59b52 12 //struct stat st;
gbeardall 0:e6a539e59b52 13 //char path[PATH_MAX];
gbeardall 0:e6a539e59b52 14
gbeardall 0:e6a539e59b52 15 printf("\n\n================================\n");
gbeardall 0:e6a539e59b52 16 printf("USB Mass storage demo program for mbed LPC1768\n");
gbeardall 0:e6a539e59b52 17 printf("================================\n\n");
gbeardall 0:e6a539e59b52 18
gbeardall 0:e6a539e59b52 19 d = opendir("/" FSNAME);
gbeardall 0:e6a539e59b52 20
gbeardall 0:e6a539e59b52 21 printf("\nList of files on the flash drive:\n");
gbeardall 0:e6a539e59b52 22 if ( d != NULL )
gbeardall 0:e6a539e59b52 23 {
gbeardall 0:e6a539e59b52 24 while ( (p = readdir(d)) != NULL )
gbeardall 0:e6a539e59b52 25 {
gbeardall 0:e6a539e59b52 26 printf(" - %s\n", p->d_name);
gbeardall 0:e6a539e59b52 27 /* no <stat.h> on mbed, it seems :/
gbeardall 0:e6a539e59b52 28 sprintf(path, "/"FSNAME"/%s", p->d_name);
gbeardall 0:e6a539e59b52 29 if ( stat(path, &st) == 0 )
gbeardall 0:e6a539e59b52 30 {
gbeardall 0:e6a539e59b52 31 if ( S_ISDIR(st.st_mode) )
gbeardall 0:e6a539e59b52 32 printf(" <directory>\n");
gbeardall 0:e6a539e59b52 33 else
gbeardall 0:e6a539e59b52 34 printf(" %d\n", st.st_size);
gbeardall 0:e6a539e59b52 35 }
gbeardall 0:e6a539e59b52 36 else
gbeardall 0:e6a539e59b52 37 {
gbeardall 0:e6a539e59b52 38 printf(" ???\n");
gbeardall 0:e6a539e59b52 39 }*/
gbeardall 0:e6a539e59b52 40 }
gbeardall 0:e6a539e59b52 41 }
gbeardall 0:e6a539e59b52 42 else
gbeardall 0:e6a539e59b52 43 {
gbeardall 0:e6a539e59b52 44 error("Could not open directory!");
gbeardall 0:e6a539e59b52 45 }
gbeardall 0:e6a539e59b52 46 printf("\nTesting file write:\n");
gbeardall 0:e6a539e59b52 47 FILE *fp = fopen( "/" FSNAME "/msctest.txt", "w");
gbeardall 0:e6a539e59b52 48 if ( fp == NULL )
gbeardall 0:e6a539e59b52 49 {
gbeardall 0:e6a539e59b52 50 error("Could not open file for write\n");
gbeardall 0:e6a539e59b52 51 }
gbeardall 0:e6a539e59b52 52 fprintf(fp, "Hello mass storage!");
gbeardall 0:e6a539e59b52 53 fclose(fp);
gbeardall 0:e6a539e59b52 54 printf("\n - OK\n");
gbeardall 0:e6a539e59b52 55
gbeardall 0:e6a539e59b52 56 printf("\nTesting file read:\n");
gbeardall 0:e6a539e59b52 57 fp = fopen( "/" FSNAME "/msctest.txt", "r");
gbeardall 0:e6a539e59b52 58 if ( fp == NULL )
gbeardall 0:e6a539e59b52 59 {
gbeardall 0:e6a539e59b52 60 error("Could not open file for read\n");
gbeardall 0:e6a539e59b52 61 }
gbeardall 0:e6a539e59b52 62 char buf[256];
gbeardall 0:e6a539e59b52 63 if ( NULL == fgets(buf, sizeof(buf), fp) )
gbeardall 0:e6a539e59b52 64 {
gbeardall 0:e6a539e59b52 65 error("Error reading from file\n");
gbeardall 0:e6a539e59b52 66 }
gbeardall 0:e6a539e59b52 67 fclose(fp);
gbeardall 0:e6a539e59b52 68 printf("\n - OK, read string: '%s'\n\n", buf);
gbeardall 0:e6a539e59b52 69 }