/** * @file wm_debug.h * * @brief debug Module APIs * * @author dave * * Copyright (c) 2014 Winner Microelectronics Co., Ltd. */ #ifndef WM_DEBUG_H #define WM_DEBUG_H #include <stdio.h> #include <stdlib.h> #include "wm_config.h" #include "wm_osal.h" /* 0x00000000 - 0x80000000 */ /** Define the debugging switch: on */ #define TLS_DBG_ON 1 /** Define the debugging switch: off */ #define TLS_DBG_OFF 0 #define TLS_DBG_SIMPLE 1 /* 0x0000000F - 0x00000001 */ /** Define the debugging level: info */ #define TLS_DBG_LEVEL_INFO TLS_DBG_OFF /** Define the debugging level: warning */ #define TLS_DBG_LEVEL_WARNING TLS_DBG_OFF /** Define the debugging level: error */ #define TLS_DBG_LEVEL_ERR TLS_DBG_OFF /** Define the debugging level: dump */ #define TLS_DBG_LEVEL_DUMP TLS_DBG_OFF /** general debug info switch, default: off */ #define TLS_GENERAL_DBG TLS_DBG_OFF #if TLS_DBG_SIMPLE #define __TLS_DBGPRT_INFO(fmt, ...) printf(fmt, ##__VA_ARGS__) #define __TLS_DBGPRT_WARNING(fmt, ...) printf(fmt, ##__VA_ARGS__) #define __TLS_DBGPRT_ERR(fmt, ...) printf(fmt, ##__VA_ARGS__) #else #define __TLS_DBGPRT_INFO(fmt, ...) \ do { \ u32 time = tls_os_get_time(); \ printf("[WM_I] <%d.%02d> %s : "fmt, (time/100), (time%100), __func__ , ##__VA_ARGS__); \ } while (0) #define __TLS_DBGPRT_WARNING(fmt, ...) \ do { \ u32 time = tls_os_get_time(); \ printf("[WM_W] <%d.%02d> %s : "fmt, (time/100), (time%100), __func__ , ##__VA_ARGS__); \ } while (0) #define __TLS_DBGPRT_ERR(fmt, ...) \ do { \ u32 time = tls_os_get_time(); \ printf("[WM_E] <%d.%02d> %s : "fmt, (time/100), (time%100), __func__ , ##__VA_ARGS__); \ } while (0) #endif /** * @defgroup System_APIs System APIs * @brief System APIs */ /** * @addtogroup System_APIs * @{ */ /** * @defgroup DEBUG_APIs DEBUG APIs * @brief DEBUG APIs */ /** * @addtogroup DEBUG_APIs * @{ */ #if (TLS_GENERAL_DBG && TLS_DBG_LEVEL_INFO) /** Print information of the info level */ #define TLS_DBGPRT_INFO(f, a...) __TLS_DBGPRT_INFO(f, ##a) #else /** Print information of the info level */ #define TLS_DBGPRT_INFO(f, a...) #endif #if (TLS_GENERAL_DBG && TLS_DBG_LEVEL_WARNING) /** Print information of the warning level */ #define TLS_DBGPRT_WARNING(f, a...) __TLS_DBGPRT_WARNING(f, ##a) #else /** Print information of the warning level */ #define TLS_DBGPRT_WARNING(f, a...) #endif #if (TLS_GENERAL_DBG && TLS_DBG_LEVEL_ERR) /** Print information of the error level */ #define TLS_DBGPRT_ERR(f, a...) __TLS_DBGPRT_ERR(f, ##a) #else /** Print information of the error level */ #define TLS_DBGPRT_ERR(f, a...) #endif #if (TLS_GENERAL_DBG && TLS_DBG_LEVEL_DUMP) /** * @brief dump memory * * @param[in] *p pointer the memory * @param[in] len length of memory * * @return None * * @note None */ void TLS_DBGPRT_DUMP(char *p, u32 len); #else /** Print information of the dump level */ #define TLS_DBGPRT_DUMP(p, len) #endif /** * @} */ /** * @} */ #endif /* end of WM_DEBUG_H */