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 typedef unsigned char u8;
peterbarrett1967 0:5ad808014a49 3 typedef unsigned short u16;
peterbarrett1967 0:5ad808014a49 4 typedef unsigned long u32;
peterbarrett1967 0:5ad808014a49 5
peterbarrett1967 0:5ad808014a49 6 void DelayMS(int ms);
peterbarrett1967 0:5ad808014a49 7
peterbarrett1967 0:5ad808014a49 8 void printfBytes(const char* label,const u8* data, int len);
peterbarrett1967 0:5ad808014a49 9 void printHex(const u8* d, int len);
peterbarrett1967 0:5ad808014a49 10
peterbarrett1967 0:5ad808014a49 11 #ifndef min
peterbarrett1967 0:5ad808014a49 12 #define min(_a,_b) ((_a) < (_b) ? (_a) : (_b))
peterbarrett1967 0:5ad808014a49 13 #endif
peterbarrett1967 0:5ad808014a49 14
peterbarrett1967 0:5ad808014a49 15 inline int LE16(const u8* d)
peterbarrett1967 0:5ad808014a49 16 {
peterbarrett1967 0:5ad808014a49 17 return d[0] | (d[1] << 8);
peterbarrett1967 0:5ad808014a49 18 }
peterbarrett1967 0:5ad808014a49 19
peterbarrett1967 0:5ad808014a49 20 inline u32 BE32(const u8* d)
peterbarrett1967 0:5ad808014a49 21 {
peterbarrett1967 0:5ad808014a49 22 return (d[0] << 24) | (d[1] << 16) | (d[2] << 8) | d[3];
peterbarrett1967 0:5ad808014a49 23 }
peterbarrett1967 0:5ad808014a49 24
peterbarrett1967 0:5ad808014a49 25 inline void BE32(u32 n, u8* d)
peterbarrett1967 0:5ad808014a49 26 {
peterbarrett1967 0:5ad808014a49 27 d[0] = (u8)(n >> 24);
peterbarrett1967 0:5ad808014a49 28 d[1] = (u8)(n >> 16);
peterbarrett1967 0:5ad808014a49 29 d[2] = (u8)(n >> 8);
peterbarrett1967 0:5ad808014a49 30 d[3] = (u8)n;
peterbarrett1967 0:5ad808014a49 31 }
peterbarrett1967 0:5ad808014a49 32
peterbarrett1967 0:5ad808014a49 33 inline void BE16(u32 n, u8* d)
peterbarrett1967 0:5ad808014a49 34 {
peterbarrett1967 0:5ad808014a49 35 d[0] = (u8)(n >> 8);
peterbarrett1967 0:5ad808014a49 36 d[1] = (u8)n;
peterbarrett1967 0:5ad808014a49 37 }