46#if CFG_TUSB_DEBUG >= CFG_TUH_LOG_LEVEL || CFG_TUSB_DEBUG >= CFG_TUD_LOG_LEVEL
52void tu_print_mem(
void const *buf, uint32_t count, uint8_t indent);
54#ifdef CFG_TUSB_DEBUG_PRINTF
56 #define tu_printf CFG_TUSB_DEBUG_PRINTF
58 #define tu_printf printf
62 for(uint32_t i=0; i<
bufsize; i++) tu_printf(
"%02X ", buf[i]);
67#define TU_LOG(n, ...) TU_XSTRCAT(TU_LOG, n)(__VA_ARGS__)
68#define TU_LOG_MEM(n, ...) TU_XSTRCAT3(TU_LOG, n, _MEM)(__VA_ARGS__)
69#define TU_LOG_BUF(n, ...) TU_XSTRCAT3(TU_LOG, n, _BUF)(__VA_ARGS__)
70#define TU_LOG_INT(n, ...) TU_XSTRCAT3(TU_LOG, n, _INT)(__VA_ARGS__)
71#define TU_LOG_HEX(n, ...) TU_XSTRCAT3(TU_LOG, n, _HEX)(__VA_ARGS__)
72#define TU_LOG_LOCATION() tu_printf("%s: %d:\r\n", __PRETTY_FUNCTION__, __LINE__)
73#define TU_LOG_FAILED() tu_printf("%s: %d: Failed\r\n", __PRETTY_FUNCTION__, __LINE__)
76#define TU_LOG1 tu_printf
77#define TU_LOG1_MEM tu_print_mem
78#define TU_LOG1_BUF(_x, _n) tu_print_buf((uint8_t const*)(_x), _n)
79#define TU_LOG1_INT(_x) tu_printf(#_x " = %ld\r\n", (unsigned long) (_x) )
80#define TU_LOG1_HEX(_x) tu_printf(#_x " = 0x%lX\r\n", (unsigned long) (_x) )
83#if CFG_TUSB_DEBUG >= 2
84 #define TU_LOG2 TU_LOG1
85 #define TU_LOG2_MEM TU_LOG1_MEM
86 #define TU_LOG2_BUF TU_LOG1_BUF
87 #define TU_LOG2_INT TU_LOG1_INT
88 #define TU_LOG2_HEX TU_LOG1_HEX
92#if CFG_TUSB_DEBUG >= 3
93 #define TU_LOG3 TU_LOG1
94 #define TU_LOG3_MEM TU_LOG1_MEM
95 #define TU_LOG3_BUF TU_LOG1_BUF
96 #define TU_LOG3_INT TU_LOG1_INT
97 #define TU_LOG3_HEX TU_LOG1_HEX
111 tu_static
char not_found[11];
113 for(uint16_t i=0; i<p_table->
count; i++) {
118 snprintf(not_found,
sizeof(not_found),
"0x%08lX", (
unsigned long) key);
126 #define TU_LOG(n, ...)
127 #define TU_LOG_MEM(n, ...)
128 #define TU_LOG_BUF(n, ...)
129 #define TU_LOG_INT(n, ...)
130 #define TU_LOG_HEX(n, ...)
131 #define TU_LOG_LOCATION()
132 #define TU_LOG_FAILED()
138#define TU_LOG0_MEM(...)
139#define TU_LOG0_BUF(...)
140#define TU_LOG0_INT(...)
141#define TU_LOG0_HEX(...)
145 #define TU_LOG1_MEM(...)
146 #define TU_LOG1_BUF(...)
147 #define TU_LOG1_INT(...)
148 #define TU_LOG1_HEX(...)
153 #define TU_LOG2_MEM(...)
154 #define TU_LOG2_BUF(...)
155 #define TU_LOG2_INT(...)
156 #define TU_LOG2_HEX(...)
161 #define TU_LOG3_MEM(...)
162 #define TU_LOG3_BUF(...)
163 #define TU_LOG3_INT(...)
164 #define TU_LOG3_HEX(...)
tu_lookup_entry_t const * items
char const *const tu_str_speed[]
static void tu_print_buf(uint8_t const *buf, uint32_t bufsize)
char const *const tu_str_std_request[]
void tu_print_mem(void const *buf, uint32_t count, uint8_t indent)
static const char * tu_lookup_find(tu_lookup_table_t const *p_table, uint32_t key)
char const *const tu_str_xfer_result[]
int CFG_TUSB_DEBUG_PRINTF(const char *format,...)