Simple USBHost library for LPC4088. Backward compatibility of official-USBHost.
Dependencies: FATFileSystem mbed-rtos
BaseUsbHostDebug.cpp
00001 // BaseUseHostDebug.cpp 2014/4/21 00002 #include "USBHost.h" 00003 #include "BaseUsbHostDebug.h" 00004 00005 void print_td(FILE* stream, HCTD* td) 00006 { 00007 if (td == NULL) { 00008 fprintf(stream, "TD %p:\n", td); 00009 return; 00010 } 00011 uint32_t* p = reinterpret_cast<uint32_t*>(td); 00012 fprintf(stream, "TD %p: %08X %08X %08X %08X", p, p[0], p[1], p[2], p[3]); 00013 fprintf(stream, " ep=%p\n", td->ep); 00014 uint8_t* bp = reinterpret_cast<uint8_t*>(p[1]); 00015 uint8_t* be = reinterpret_cast<uint8_t*>(p[3]); 00016 if (bp) { 00017 fprintf(stream, "BF %p:", bp); 00018 while(bp <= be) { 00019 fprintf(stream, " %02X", *bp); 00020 bp++; 00021 } 00022 fprintf(stream, "\n"); 00023 } 00024 } 00025 00026 void print_ed(FILE* stream, HCED* ed) 00027 { 00028 uint32_t* p = reinterpret_cast<uint32_t*>(ed); 00029 while(p) { 00030 fprintf(stream, "ED %p: %08X %08X %08X %08X\n", p, p[0], p[1], p[2], p[3]); 00031 HCTD* td = reinterpret_cast<HCTD*>(p[2] & ~3); 00032 HCTD* tdtail = reinterpret_cast<HCTD*>(p[1]); 00033 while(td != NULL && td != tdtail) { 00034 print_td(stream, td); 00035 td = td->Next; 00036 } 00037 p = reinterpret_cast<uint32_t*>(p[3]); 00038 } 00039 } 00040 00041 void print_itd(FILE* stream, HCITD* itd) 00042 { 00043 if (itd == NULL) { 00044 fprintf(stream, "ITD %p:\n", itd); 00045 return; 00046 } 00047 uint32_t* p = reinterpret_cast<uint32_t*>(itd); 00048 fprintf(stream, "ITD %p: %08X %08X %08X %08X", p, p[0], p[1], p[2], p[3]); 00049 fprintf(stream, " ep=%p\n", itd->ep); 00050 uint16_t* offset = reinterpret_cast<uint16_t*>(p+4); 00051 fprintf(stream, "ITD %p: %04X %04X %04X %04X %04X %04X %04X %04X\n", offset, 00052 offset[0], offset[1], offset[2], offset[3], offset[4], offset[5], offset[6], offset[7]); 00053 } 00054 00055 void print_ied(FILE* stream, HCED* ed) 00056 { 00057 uint32_t* p = reinterpret_cast<uint32_t*>(ed); 00058 while(p) { 00059 fprintf(stream, "ED %p: %08X %08X %08X %08X\n", p, p[0], p[1], p[2], p[3]); 00060 HCITD* itd = reinterpret_cast<HCITD*>(p[2] & ~3); 00061 HCITD* itdtail = reinterpret_cast<HCITD*>(p[1]); 00062 while(itd != NULL && itd != itdtail) { 00063 print_itd(stream, itd); 00064 itd = itd->Next; 00065 } 00066 p = reinterpret_cast<uint32_t*>(p[3]); 00067 } 00068 } 00069 00070 void print_bytes(FILE* stream, char* s, uint8_t* buf, int len) 00071 { 00072 fprintf(stream, "%s %d:", s, len); 00073 for(int i = 0; i < len; i++) { 00074 fprintf(stream, " %02X", buf[i]); 00075 } 00076 fprintf(stream, "\n"); 00077 } 00078 00079 void print_hex(FILE* stream, uint8_t* p, int len) 00080 { 00081 for(int i = 0; i < len; i++) { 00082 if (i%16 == 0) { 00083 fprintf(stream, "%p:", p); 00084 } 00085 fprintf(stream, " %02X", *p); 00086 p++; 00087 if (i%16 == 15) { 00088 fprintf(stream, "\n"); 00089 } 00090 } 00091 fprintf(stream, "\n"); 00092 } 00093 00094 void assert_print(const char* pf, int line, const char* msg) { 00095 fprintf(stderr, "\n\n%s@%d %s ASSERT!\n\n", pf, line, msg); 00096 exit(1); 00097 } 00098
Generated on Tue Jul 12 2022 22:44:17 by 1.7.2