CI130X SDK API手册  2.2.0
本手册用于描述CI130X SDK各个组件和驱动API
ci_log.h
浏览该文件的文档.
1 
13 #ifndef _CI_LOG_H_
14 #define _CI_LOG_H_
15 
16 #include "ci_log_config.h"
17 #include "ci_assert.h"
18 
19 #ifdef __cplusplus
20  extern "C" {
21 #endif
22 
23 /*
24  * 本模块使用大量多次##重载符,MISR规则19.12中被视为警告,因为该重载符在标准多次使用时
25  * 在标准c中宏展开顺序是UB行为,目前测试在IAR8.3和GCC8.2.X中展开处理结果正确,使用c-stat
26  * 或pclint请注意。
27  */
28 
29 
30 extern int _printf(char* format,...);
31 extern void uart_log_int_handler(void);
32 extern void uart_log_int_mode_init(void);
33 
34 #if USE_STD_PRINTF
35 #define LOG_DEBUG(fmt,...) printf(fmt,##__VA_ARGS__)
36 #else
37 #define LOG_DEBUG(fmt,...) _printf(fmt,##__VA_ARGS__)
38 #endif
39 
40 #if CONFIG_CI_LOG_EN
41 /*need open SecureCRT ansi color*/
42 #define CI_LOG(debug, comlevel, message, args...) \
43  do { \
44  if((debug)<=(comlevel)) { \
45  if((debug) & (CI_LOG_ASSERT))LOG_DEBUG("\033[35m"message"\033[0m", ## args); \
46  if((debug) & (CI_LOG_ERROR))LOG_DEBUG("\033[31m"message"\033[0m", ## args); \
47  if((debug) & (CI_LOG_WARN))LOG_DEBUG("\033[33m"message"\033[0m", ## args); \
48  if((debug) & (CI_LOG_INFO))LOG_DEBUG(message, ## args); \
49  if((debug) & (CI_LOG_DEBUG))LOG_DEBUG("\033[36m"message"\033[0m", ## args); \
50  if((debug) & (CI_LOG_VERBOSE))LOG_DEBUG("\033[32m"message"\033[0m", ## args); \
51  } \
52  } while(0)
53 #else
54 #define CI_LOG(debug, message, args...) do{}while(0)
55 #endif
56 
57 
58 #if CONFIG_SMT_PRINTF_EN
59  #if USE_STD_PRINTF
60  #define _mprintf(fmt,...) printf(fmt,##__VA_ARGS__)
61  #else
62  #define _mprintf(fmt,...) _printf(fmt,##__VA_ARGS__)
63  #endif
64 #else
65  #define _mprintf(fmt,...) do{}while(0)
66 #endif
67 
68 /*--------------------------------------------------------------*/
69 /* Additional user defined functions */
70 /*--------------------------------------------------------------*/
76 #define ci_logverbose(comlevel, message, args...) CI_LOG(CI_LOG_VERBOSE, comlevel, message, ## args)
77 
78 #define ci_logdebug(comlevel, message, args...) CI_LOG(CI_LOG_DEBUG, comlevel, message, ## args)
79 
80 #define ci_loginfo(comlevel, message, args...) CI_LOG(CI_LOG_INFO, comlevel, message, ## args)
81 
82 #define ci_logwarn(comlevel, message, args...) CI_LOG(CI_LOG_WARN, comlevel, message, ## args)
83 
84 #define ci_logerr(comlevel, message, args...) CI_LOG(CI_LOG_ERROR, comlevel, message, ## args)
85 
86 #define ci_logassert(comlevel, message, args...) CI_LOG(CI_LOG_ASSERT, comlevel, message, ## args)
87 
89 #define mprintf(fmt, args...) _mprintf(fmt, ## args)
90 
91 // 日志模块初始化
92 void ci_log_init(void);
93 
94 #ifdef __cplusplus
95 }
96 #endif
97 
98 #endif
int _printf(char *format,...)
Definition: ci_log.c:258
void uart_log_int_mode_init(void)
void uart_log_int_handler(void)
sdk log 输出配置宏
void ci_log_init(void)
Definition: ci_log.c:23