You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
192 lines
5.5 KiB
192 lines
5.5 KiB
//*********************************************/
|
|
//
|
|
// File: debug.h
|
|
//
|
|
// Author: Domenico La Fauci
|
|
//
|
|
//********************************************/
|
|
|
|
|
|
#ifndef Debug_H
|
|
#define Debug_H
|
|
|
|
#include <stdio.h>
|
|
#include <string.h>
|
|
|
|
#define INFO_INIT_FLAG 1
|
|
#define INFO_TCP_FLAG 2
|
|
#define INFO_SPI_FLAG 4
|
|
#define INFO_CM_FLAG 8
|
|
#define INFO_UTIL_FLAG 16
|
|
|
|
#define INFO_D (1<<0xD) // Debug
|
|
#define INFO_E (1<<0xE) // Error
|
|
#define INFO_WARN_FLAG (1<<0xF) // Warning
|
|
#define DEFAULT_INFO_FLAG 0 //INFO_WARN_FLAG
|
|
|
|
#ifdef _DEBUG_
|
|
#define DEFINE_DEBUG_VARIABLES() \
|
|
uint16_t enableDebug = DEFAULT_INFO_FLAG | INFO_WARN_FLAG; \
|
|
uint16_t verboseDebug = 0; \
|
|
uint16_t dumpDebug = 0; \
|
|
uint16_t pollDebug = 0;
|
|
#else
|
|
#define DEFINE_DEBUG_VARIABLES() \
|
|
uint16_t enableDebug = DEFAULT_INFO_FLAG; \
|
|
uint16_t verboseDebug = 0; \
|
|
uint16_t dumpDebug = 0; \
|
|
uint16_t pollDebug = 0;
|
|
#endif
|
|
|
|
#define INIT_DEBUG_VARIABLES() \
|
|
enableDebug = DEFAULT_INFO_FLAG | INFO_WARN_FLAG; \
|
|
verboseDebug = 0; \
|
|
dumpDebug = 0; pollDebug = 0;
|
|
|
|
|
|
#define PRINT_DEBUG_VARIABLES() \
|
|
printk("Debug enabled: 0x%x\n", enableDebug); \
|
|
printk("Verbose enabled: 0x%x\n", verboseDebug); \
|
|
printk("Dump enabled: 0x%x\n", dumpDebug); \
|
|
printk("POoll enabled: 0x%x\n", pollDebug);
|
|
|
|
#define TURNON_DEBUG_VARIABLES() \
|
|
enableDebug = 0xff;
|
|
|
|
extern uint16_t enableDebug;
|
|
extern uint16_t verboseDebug;
|
|
extern uint16_t dumpDebug;
|
|
extern uint16_t pollDebug;
|
|
|
|
#define ENABLE_DEBUG_LEVEL 1
|
|
#define VERBOSE_DEBUG_LEVEL 2
|
|
#define DUMP_DEBUG_LEVEL 3
|
|
#define POLL_DEBUG_LEVEL 4
|
|
|
|
#define CHECK_DEBUG(VAR, LEVEL, LEVEL_LIMIT, FLAG) \
|
|
do{ \
|
|
if (LEVEL >= LEVEL_LIMIT) VAR |= FLAG; \
|
|
else VAR &= ~FLAG; \
|
|
}while(0);
|
|
|
|
#define CHECK_ENA_DEBUG(LEVEL, FLAG) \
|
|
CHECK_DEBUG(enableDebug, LEVEL, ENABLE_DEBUG_LEVEL, FLAG)
|
|
#define CHECK_VERB_DEBUG(LEVEL, FLAG) \
|
|
CHECK_DEBUG(verboseDebug, LEVEL, VERBOSE_DEBUG_LEVEL, FLAG)
|
|
#define CHECK_DUMP_DEBUG(LEVEL, FLAG) \
|
|
CHECK_DEBUG(dumpDebug, LEVEL, DUMP_DEBUG_LEVEL, FLAG)
|
|
#define CHECK_POLL_DEBUG(LEVEL, FLAG) \
|
|
CHECK_DEBUG(pollDebug, LEVEL, POLL_DEBUG_LEVEL, FLAG)
|
|
|
|
|
|
#define CHECK_DEBUG_LEVEL(LEVEL, INFO_FLAG) \
|
|
CHECK_ENA_DEBUG(LEVEL, INFO_FLAG) \
|
|
CHECK_VERB_DEBUG(LEVEL, INFO_FLAG) \
|
|
CHECK_DUMP_DEBUG(LEVEL, INFO_FLAG) \
|
|
CHECK_POLL_DEBUG(LEVEL, INFO_FLAG)
|
|
|
|
#ifdef _INFO_DEBUG_
|
|
#define PRINT_DEBUG(msg, args...) do { \
|
|
printk("[%s] " msg , __func__ , ##args ); \
|
|
} while (0)
|
|
|
|
#define INFO_DEBUG(msg, args...) do { \
|
|
printk("I-[%s] " msg , __func__ , ##args ); \
|
|
} while (0)
|
|
|
|
#define WARN_DEBUG(msg, args...) do { \
|
|
printk("W-[%s] " msg , __func__ , ##args ); \
|
|
} while (0)
|
|
|
|
#else
|
|
do { }while(0);
|
|
#endif
|
|
|
|
#define IF_DEBUG(X,Y) do { \
|
|
if (enableDebug & INFO_##X##_FLAG) \
|
|
Y; \
|
|
} while (0)
|
|
|
|
#define IF_DEBUG_VER(X,Y) do { \
|
|
if (verboseDebug & INFO_##X##_FLAG) \
|
|
Y; \
|
|
} while (0)
|
|
|
|
#define IF_DEBUG_DUMP(X,Y) do { \
|
|
if (dumpDebug & INFO_##X##_FLAG) \
|
|
Y; \
|
|
} while (0)
|
|
|
|
#define IF_DEBUG_POLL(X,Y) do { \
|
|
if (pollDebug & INFO_##X##_FLAG) {\
|
|
Y; \
|
|
}} while (0)
|
|
|
|
|
|
|
|
#define IF_WARN(Y) IF_DEBUG(WARN,Y)
|
|
#define IF_WARN_VER(Y) IF_DEBUG_VER(WARN,Y)
|
|
#define IF_TCP(Y) IF_DEBUG(TCP,Y)
|
|
#define IF_TCP_VER(Y) IF_DEBUG_VER(TCP,Y)
|
|
#define IF_TCP_POLL(Y) IF_DEBUG_POLL(TCP,Y)
|
|
#define IF_TCP_DUMP(Y) IF_DEBUG_DUMP(TCP,Y)
|
|
#define IF_SPI(Y) IF_DEBUG(SPI,Y)
|
|
#define IF_SPI_VER(Y) IF_DEBUG_VER(SPI,Y)
|
|
#define IF_SPI_DUMP(Y) IF_DEBUG_DUMP(SPI,Y)
|
|
#define IF_SPI_POLL(Y) IF_DEBUG_POLL(SPI,Y)
|
|
#define IF_UTIL(Y) IF_DEBUG(UTIL,Y)
|
|
#define IF_UTIL_VER(Y) IF_DEBUG_VER(UTIL,Y)
|
|
|
|
#define WARN(msg, args...) IF_DEBUG(WARN,WARN_DEBUG(msg, ##args))
|
|
#define WARN_VER(msg, args...) IF_DEBUG_VER(WARN,WARN_DEBUG(msg, ##args))
|
|
#define WARN_POLL(msg, args...) IF_DEBUG_POLL(WARN,WARN_DEBUG(msg, ##args))
|
|
#if 0 // disable to reduce the size of binary
|
|
#define INFO_INIT(msg, args...) IF_DEBUG(INIT,PRINT_DEBUG(msg, ##args))
|
|
#define INFO_INIT_VER(msg, args...) IF_DEBUG_VER(INIT,PRINT_DEBUG(msg, ##args))
|
|
#else
|
|
#define INFO_INIT(msg, args...)
|
|
#define INFO_INIT_VER(msg, args...)
|
|
#endif
|
|
#define INFO_TCP(msg, args...) IF_DEBUG(TCP,PRINT_DEBUG(msg, ##args))
|
|
#define INFO_TCP_VER(msg, args...) IF_DEBUG_VER(TCP,PRINT_DEBUG(msg, ##args))
|
|
#define INFO_TCP_DUMP(msg, args...) IF_DEBUG_DUMP(TCP,PRINT_DEBUG(msg, ##args))
|
|
#define INFO_TCP_POLL(msg, args...) IF_DEBUG_POLL(TCP,PRINT_DEBUG(msg, ##args))
|
|
#define INFO_SPI(msg, args...) IF_DEBUG(SPI,PRINT_DEBUG(msg, ##args))
|
|
#define INFO_SPI_VER(msg, args...) IF_DEBUG_VER(SPI,PRINT_DEBUG(msg, ##args))
|
|
#define INFO_SPI_DUMP(msg, args...) IF_DEBUG_DUMP(SPI,PRINT_DEBUG(msg, ##args))
|
|
#define INFO_SPI_POLL(msg, args...) IF_DEBUG_POLL(SPI,PRINT_DEBUG(msg, ##args))
|
|
#define INFO_UTIL(msg, args...) IF_DEBUG(UTIL,PRINT_DEBUG(msg, ##args))
|
|
#define INFO_UTIL_VER(msg, args...) IF_DEBUG_VER(UTIL,PRINT_DEBUG(msg, ##args))
|
|
#define CM_DPRINTF(msg, args...) IF_DEBUG(CM,PRINT_DEBUG(msg, ##args))
|
|
|
|
extern void dump(char* _buf, uint16_t _count);
|
|
|
|
#define _DUMP(BUF, COUNT) do { \
|
|
printk("[%s]: ", __func__); \
|
|
dump((char*)BUF, COUNT); \
|
|
} while (0)
|
|
|
|
#ifdef _APP_DEBUG_
|
|
#define DUMP(BUF, COUNT) _DUMP(BUF, COUNT)
|
|
#else
|
|
#define DUMP(BUF, COUNT) do {} while (0)
|
|
#endif
|
|
#endif
|
|
|
|
#define DUMP_TCP(BUF, COUNT) IF_TCP_DUMP(_DUMP(BUF, COUNT))
|
|
#define DUMP_SPI(BUF, COUNT) IF_SPI_DUMP(_DUMP(BUF, COUNT))
|
|
|
|
#define DUMP_SPI_CMD(BUF) do { \
|
|
if (dumpDebug & INFO_SPI_FLAG) { \
|
|
int i = 0; \
|
|
for (; i < CMD_MAX_LEN; ++i) \
|
|
{ \
|
|
printk("0x%x ", BUF[i]); \
|
|
if (BUF[i] == END_CMD) \
|
|
break; \
|
|
} \
|
|
printk("\n"); \
|
|
} \
|
|
}while(0);
|
|
|