/** * @file log.h * @author chipsea * @brief * @version 0.1 * @date 2020-11-30 * @copyright Copyright (c) 2020, CHIPSEA Co., Ltd. * @note */ /******************************************************************************* * @file log.h * @brief Contains all functions support for uart driver * @version 0.0 * @date 31. Jan. 2018 * @author eagle.han * * *******************************************************************************/ #ifndef ENABLE_LOG_ROM #ifndef __LOG_H__ #define __LOG_H__ #ifdef __cplusplus extern "C" { #endif #ifndef DEBUG_INFO #include "sdk_config.h" #endif #include "uart.h" void dbg_printf(const char *format, ...); void dbg_printf_init(void); void my_dump_byte(uint8_t* pData, int dlen); #ifndef DEBUG_INFO #define DEBUG_INFO 0 #endif typedef void(*std_putc)(char* data, uint16_t size); #if(DEBUG_INFO == 1) #define AT_LOG(...) #define LOG_DEBUG(...) #define LOG(...) dbg_printf(__VA_ARGS__) #define LOG_INIT() dbg_printf_init() #define LOG_DUMP_BYTE(a,b) my_dump_byte(a,b) #elif(DEBUG_INFO == 2) #define AT_LOG(...) dbg_printf(__VA_ARGS__) #define LOG_DEBUG(...) dbg_printf(__VA_ARGS__) #define LOG(...) #define LOG_INIT() dbg_printf_init() #define LOG_DUMP_BYTE(a,b) my_dump_byte(a,b) #elif(DEBUG_INFO == 3) #define LOG(...) dbg_printf(__VA_ARGS__) #define AT_LOG(...) dbg_printf(__VA_ARGS__) #define LOG_DEBUG(...) dbg_printf(__VA_ARGS__) #define LOG_INIT() dbg_printf_init() #define LOG_DUMP_BYTE(a,b) my_dump_byte(a,b) #else #define AT_LOG(...) #define LOG_DEBUG(...) #define LOG(...) #define LOG_INIT() //{clk_gate_enable(MOD_UART);clk_reset(MOD_UART);clk_gate_disable(MOD_UART);} #define LOG_DUMP_BYTE(a,b) #endif #ifdef __cplusplus } #endif #endif //__LOG_H__ #else #ifndef __LOG_H #define __LOG_H #ifdef __cplusplus extern "C" { #endif #include "types.h" #include "uart.h" #include #include #define LOG_LEVEL_NONE 0 //no log output*/ #define LOG_LEVEL_ERROR 1 //only log error*/ #define LOG_LEVEL_DEBUG 2 //output debug info and error info*/ #define LOG_LEVEL_LOG 3 //output all infomation*/ #define LOG_INIT() {HalUartInit(115200,P9,P10,NULL);} #if 0//DEBUG_FPGA #define LOG(...) do{;}while(0); #else //conditional output #define LOG(...) {if(s_rom_debug_level == LOG_LEVEL_LOG) log_printf(__VA_ARGS__);} #define LOG_DEBUG(...) {if(s_rom_debug_level >= LOG_LEVEL_DEBUG) log_printf(__VA_ARGS__);} #define LOG_ERROR(...) {if(s_rom_debug_level >= LOG_LEVEL_ERROR) log_printf(__VA_ARGS__);} //tx data anyway #define PRINT(...) {SWU_TX(); log_printf(__VA_ARGS__);} #endif extern volatile uint32_t s_rom_debug_level; typedef void(*std_putc)(char* data, int size); void log_vsprintf(std_putc putc, const char *fmt, va_list args); void log_printf(const char *format, ...); void log_set_putc(std_putc putc); void log_clr_putc(std_putc putc); int log_debug_level(uint8_t level); uint32_t log_get_debug_level(void); #ifdef __cplusplus } #endif #endif #endif