A more capable USB Host. The API supports synchronous and Asynchronous control, interrupt and bulk transfers. It has built in support for hubs and hot plugging. It can support any number of devices and endpoints limited only by sram. The test shell supports mouse, keyboard and mass storage/fat.

Dependencies:   mbed

Committer:
peterbarrett1967
Date:
Fri Apr 02 22:28:01 2010 +0000
Revision:
0:5ad808014a49

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
peterbarrett1967 0:5ad808014a49 1
peterbarrett1967 0:5ad808014a49 2
peterbarrett1967 0:5ad808014a49 3 #include "mbed.h"
peterbarrett1967 0:5ad808014a49 4 #include "Utils.h"
peterbarrett1967 0:5ad808014a49 5
peterbarrett1967 0:5ad808014a49 6 void printfBytes(const char* s, const u8* data, int len)
peterbarrett1967 0:5ad808014a49 7 {
peterbarrett1967 0:5ad808014a49 8 printf("%s %d:",s,len);
peterbarrett1967 0:5ad808014a49 9 if (len > 256)
peterbarrett1967 0:5ad808014a49 10 len = 256;
peterbarrett1967 0:5ad808014a49 11 while (len-- > 0)
peterbarrett1967 0:5ad808014a49 12 printf(" %02X",*data++);
peterbarrett1967 0:5ad808014a49 13 printf("\n");
peterbarrett1967 0:5ad808014a49 14 }
peterbarrett1967 0:5ad808014a49 15
peterbarrett1967 0:5ad808014a49 16 void printHexLine(const u8* d, int addr, int len)
peterbarrett1967 0:5ad808014a49 17 {
peterbarrett1967 0:5ad808014a49 18 printf("%04X ",addr);
peterbarrett1967 0:5ad808014a49 19 int i;
peterbarrett1967 0:5ad808014a49 20 for (i = 0; i < len; i++)
peterbarrett1967 0:5ad808014a49 21 printf("%02X ",d[i]);
peterbarrett1967 0:5ad808014a49 22 for (;i < 16; i++)
peterbarrett1967 0:5ad808014a49 23 printf(" ");
peterbarrett1967 0:5ad808014a49 24 char s[16+1];
peterbarrett1967 0:5ad808014a49 25 memset(s,0,sizeof(s));
peterbarrett1967 0:5ad808014a49 26 for (i = 0; i < len; i++)
peterbarrett1967 0:5ad808014a49 27 {
peterbarrett1967 0:5ad808014a49 28 int c = d[i];
peterbarrett1967 0:5ad808014a49 29 if (c < 0x20 || c > 0x7E)
peterbarrett1967 0:5ad808014a49 30 c = '.';
peterbarrett1967 0:5ad808014a49 31 s[i] = c;
peterbarrett1967 0:5ad808014a49 32 }
peterbarrett1967 0:5ad808014a49 33 printf("%s\n",s);
peterbarrett1967 0:5ad808014a49 34 }
peterbarrett1967 0:5ad808014a49 35
peterbarrett1967 0:5ad808014a49 36 void printHex(const u8* d, int len)
peterbarrett1967 0:5ad808014a49 37 {
peterbarrett1967 0:5ad808014a49 38 int addr = 0;
peterbarrett1967 0:5ad808014a49 39 while (len)
peterbarrett1967 0:5ad808014a49 40 {
peterbarrett1967 0:5ad808014a49 41 int count = len;
peterbarrett1967 0:5ad808014a49 42 if (count > 16)
peterbarrett1967 0:5ad808014a49 43 count = 16;
peterbarrett1967 0:5ad808014a49 44 printHexLine(d+addr,addr,count);
peterbarrett1967 0:5ad808014a49 45 addr += 16;
peterbarrett1967 0:5ad808014a49 46 len -= count;
peterbarrett1967 0:5ad808014a49 47 }
peterbarrett1967 0:5ad808014a49 48 }