BaseUsbHost example program

Dependencies:   BaseUsbHost FATFileSystem mbed mbed-rtos

Committer:
va009039
Date:
Wed Dec 05 13:25:18 2012 +0000
Revision:
1:80205a2de336
Parent:
0:2a9734a95d55
add LifeCamVX700

Who changed what in which revision?

UserRevisionLine numberNew contents of line
va009039 0:2a9734a95d55 1 #if 0
va009039 0:2a9734a95d55 2 #include "mbed.h"
va009039 0:2a9734a95d55 3 #include "rtos.h"
va009039 0:2a9734a95d55 4 #include "BaseUsbHost.h"
va009039 0:2a9734a95d55 5 #define DEBUG
va009039 0:2a9734a95d55 6 #include "BaseUsbHostDebug.h"
va009039 0:2a9734a95d55 7 #define TEST
va009039 0:2a9734a95d55 8 #include "BaseUsbHostTest.h"
va009039 0:2a9734a95d55 9 #include "UsbFlashDrive.h"
va009039 0:2a9734a95d55 10
va009039 0:2a9734a95d55 11 DigitalOut led1(LED1), led2(LED2), led3(LED3), led4(LED4);
va009039 0:2a9734a95d55 12 Serial pc(USBTX, USBRX);
va009039 0:2a9734a95d55 13
va009039 0:2a9734a95d55 14 BaseUsbHost *UsbHost;
va009039 0:2a9734a95d55 15 UsbHub* hub;
va009039 0:2a9734a95d55 16 ControlEp* ctlEp = NULL;
va009039 0:2a9734a95d55 17 UsbFlashDrive* drive;
va009039 0:2a9734a95d55 18 int main() {
va009039 0:2a9734a95d55 19 pc.baud(921600);
va009039 0:2a9734a95d55 20 printf("%s\n", __FILE__);
va009039 0:2a9734a95d55 21
va009039 0:2a9734a95d55 22 UsbHost = new BaseUsbHost;
va009039 0:2a9734a95d55 23 TEST_ASSERT_TRUE(UsbHost);
va009039 0:2a9734a95d55 24
va009039 0:2a9734a95d55 25 UsbHub* hub = new UsbHub();
va009039 0:2a9734a95d55 26 TEST_ASSERT_TRUE(hub);
va009039 0:2a9734a95d55 27
va009039 0:2a9734a95d55 28 for(int i = 0; i < MAX_HUB_PORT; i++) {
va009039 1:80205a2de336 29 if (UsbFlashDrive::check(hub->PortEp[i])) {
va009039 1:80205a2de336 30 ctlEp = hub->PortEp[i];
va009039 1:80205a2de336 31 break;
va009039 0:2a9734a95d55 32 }
va009039 0:2a9734a95d55 33 }
va009039 1:80205a2de336 34 if (ctlEp == NULL) {
va009039 1:80205a2de336 35 error("USB Flash Drive not found\n");
va009039 1:80205a2de336 36 }
va009039 1:80205a2de336 37 TEST_ASSERT(ctlEp);
va009039 0:2a9734a95d55 38
va009039 0:2a9734a95d55 39 drive = new UsbFlashDrive("usb", ctlEp);
va009039 0:2a9734a95d55 40 TEST_ASSERT(drive);
va009039 0:2a9734a95d55 41
va009039 1:80205a2de336 42 const int size_table[] = {
va009039 1:80205a2de336 43 1024*1,
va009039 1:80205a2de336 44 1024*2,
va009039 1:80205a2de336 45 1024*4,
va009039 1:80205a2de336 46 1024*8,
va009039 1:80205a2de336 47 1024*16,
va009039 1:80205a2de336 48 1024*32,
va009039 1:80205a2de336 49 1024*64,
va009039 1:80205a2de336 50 1024*128,
va009039 1:80205a2de336 51 1204*256,
va009039 1:80205a2de336 52 1204*512,
va009039 1:80205a2de336 53 };
va009039 1:80205a2de336 54
va009039 1:80205a2de336 55 printf("USB FLASH DRIVE read/write test\n");
va009039 0:2a9734a95d55 56
va009039 0:2a9734a95d55 57 char path[32];
va009039 0:2a9734a95d55 58 int size;
va009039 0:2a9734a95d55 59 Timer t;
va009039 0:2a9734a95d55 60 for(int n = 0; n <= 9; n++) {
va009039 1:80205a2de336 61 int file_size = size_table[n];
va009039 0:2a9734a95d55 62 sprintf(path, "/usb/test%d.txt", n);
va009039 0:2a9734a95d55 63 FILE* fp = fopen(path, "wb");
va009039 0:2a9734a95d55 64 size = 0;
va009039 0:2a9734a95d55 65 t.reset();
va009039 0:2a9734a95d55 66 t.start();
va009039 0:2a9734a95d55 67 if (fp) {
va009039 0:2a9734a95d55 68 for(int i = 0; i < file_size; i++) {
va009039 0:2a9734a95d55 69 int c = i & 0xff;
va009039 0:2a9734a95d55 70 fputc(c, fp);
va009039 0:2a9734a95d55 71 size++;
va009039 0:2a9734a95d55 72 }
va009039 0:2a9734a95d55 73 t.stop();
va009039 0:2a9734a95d55 74 fclose(fp);
va009039 0:2a9734a95d55 75 }
va009039 0:2a9734a95d55 76 printf("write file %d bytes %d ms %s\n", size, t.read_ms(), path);
va009039 0:2a9734a95d55 77 led1 = !led1;
va009039 0:2a9734a95d55 78 }
va009039 0:2a9734a95d55 79
va009039 0:2a9734a95d55 80 for(int n = 0; n <=9; n++) {
va009039 0:2a9734a95d55 81 sprintf(path, "/usb/test%d.txt", n);
va009039 0:2a9734a95d55 82 FILE* fp = fopen(path, "rb");
va009039 0:2a9734a95d55 83 size = 0;
va009039 0:2a9734a95d55 84 t.reset();
va009039 0:2a9734a95d55 85 t.start();
va009039 0:2a9734a95d55 86 if (fp) {
va009039 0:2a9734a95d55 87 while(1) {
va009039 0:2a9734a95d55 88 int c = fgetc(fp);
va009039 0:2a9734a95d55 89 if (c == EOF) {
va009039 0:2a9734a95d55 90 break;
va009039 0:2a9734a95d55 91 }
va009039 0:2a9734a95d55 92 size++;
va009039 0:2a9734a95d55 93 }
va009039 0:2a9734a95d55 94 t.stop();
va009039 0:2a9734a95d55 95 fclose(fp);
va009039 0:2a9734a95d55 96 }
va009039 0:2a9734a95d55 97 printf("read file %d bytes %d ms %s\n", size, t.read_ms(), path);
va009039 0:2a9734a95d55 98 led2 = !led2;
va009039 0:2a9734a95d55 99 }
va009039 0:2a9734a95d55 100
va009039 0:2a9734a95d55 101 exit(1);
va009039 0:2a9734a95d55 102 }
va009039 0:2a9734a95d55 103
va009039 0:2a9734a95d55 104 #endif