Pendrive to sd card data transfer coding
Dependencies: FatFileSystem TextLCD mbed
Fork of MSCUsbHost by
main.cpp@0:e6a539e59b52, 2011-10-17 (annotated)
- Committer:
- gbeardall
- Date:
- Mon Oct 17 10:41:52 2011 +0000
- Revision:
- 0:e6a539e59b52
- Child:
- 1:77e50c06ea01
Who changed what in which revision?
User | Revision | Line number | New 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 | } |