xt-sdk 文档 v1.0.3
xt-sdk 嵌入式 SDK API 参考
载入中...
搜索中...
未找到
xt_log.h
浏览该文件的文档.
1
12
13#ifndef __XT_LOG_H__
14#define __XT_LOG_H__
15
16/* ==================== [Includes] ========================================== */
17
18#include <stdio.h>
19#include <stdint.h>
20#include <stdarg.h>
21
22// TODO: xt_conf.h 机制?
23
24// #include "xt_conf_internal.h"
25// #include "xt_utils.h"
26#include "xt_error.h"
27
28#ifdef __cplusplus
29extern "C" {
30#endif
31
38
39/* ==================== [Defines] =========================================== */
40
41#define XT_LOG_ERROR 1
42#define XT_LOG_WARN 2
43#define XT_LOG_INFO 3
44#define XT_LOG_DEBUG 4
45
46/* ==================== [Typedefs] ========================================== */
47
49typedef void (*xt_assert_cb_t)(xt_err_t errcode);
50
51/* ==================== [Global Prototypes] ================================= */
52
57
66void xt_log_setup(uint8_t id, uint32_t baudrate, uint8_t tx_io, uint8_t rx_io);
67
73void xt_log_set_level(uint8_t level);
74
80uint8_t xt_log_get_level(void);
81 /* 初始化与配置 */
83
88
97void xt_log(uint8_t level, const char *tag, const char *fmt, ...);
98
105void xt_log_dump_hex(const void *ptr, uint32_t size);
106
113void xt_log_dump_hex_debug(const void *ptr, uint32_t size);
114 /* 日志输出 */
116
117/* 如果没定义 xt_vprintf/xt_printf 则以函数方式实现 */
118#if !defined(xt_vprintf)
119
127int xt_vprintf(const char *fmt, va_list args);
128#endif
129
130#if !defined(xt_printf)
131
139int xt_printf(const char *fmt, ...);
140#endif
141
146
153
163 /* 断言处理 */
165
166/* ==================== [Macros] ============================================ */
167
168#if !defined(xt_log_error)
169# define xt_log_error(format, ...) xt_log(XT_LOG_ERROR, NULL, format, ##__VA_ARGS__)
170#endif
171#if !defined(xt_log_warn)
172# define xt_log_warn(format, ...) xt_log(XT_LOG_WARN, NULL, format, ##__VA_ARGS__)
173#endif
174#if !defined(xt_log_info)
175# define xt_log_info(format, ...) xt_log(XT_LOG_INFO, NULL, format, ##__VA_ARGS__)
176#endif
177#if !defined(xt_log_debug)
178# define xt_log_debug(format, ...) xt_log(XT_LOG_DEBUG, NULL, format, ##__VA_ARGS__)
179#endif
180
181#if !defined(XT_LOGE)
182# define XT_LOGE(tag, format, ...) xt_log(XT_LOG_ERROR, tag, format, ##__VA_ARGS__)
183#endif
184#if !defined(XT_LOGW)
185# define XT_LOGW(tag, format, ...) xt_log(XT_LOG_WARN, tag, format, ##__VA_ARGS__)
186#endif
187#if !defined(XT_LOGI)
188# define XT_LOGI(tag, format, ...) xt_log(XT_LOG_INFO, tag, format, ##__VA_ARGS__)
189#endif
190#if !defined(XT_LOGD)
191# define XT_LOGD(tag, format, ...) xt_log(XT_LOG_DEBUG, tag, format, ##__VA_ARGS__)
192#endif
193
194#if !defined(XT_ASSERT_MSG)
195# define XT_ASSERT_MSG(expr, errcode) \
196 do { \
197 if (!(expr)) { \
198 xt_log_error("assert failed:%s:%d:err:%d", __FUNCTION__, __LINE__, (errcode)); \
199 xt_assert_failed(errcode); \
200 } \
201 } while(0)
202#endif
203 /* xt_log */
205
206#ifdef __cplusplus
207} /* extern "C" */
208#endif
209
210#endif /* __XT_LOG_H__ */
int32_t xt_err_t
错误码类型
void(* xt_assert_cb_t)(xt_err_t errcode)
assert 回调函数类型
void xt_log_setup(uint8_t id, uint32_t baudrate, uint8_t tx_io, uint8_t rx_io)
初始化日志模块
void xt_log_dump_hex(const void *ptr, uint32_t size)
以十六进制格式打印内存数据
void xt_assert_set_callback(xt_assert_cb_t cb)
注册 assert 触发回调
int xt_vprintf(const char *fmt, va_list args)
格式化输出(va_list 版本)
void xt_log_set_level(uint8_t level)
设置日志输出级别
int xt_printf(const char *fmt,...)
格式化输出
void xt_assert_failed(xt_err_t errcode)
断言失败处理函数(__weak 可重写)
void xt_log(uint8_t level, const char *tag, const char *fmt,...)
输出日志
void xt_log_dump_hex_debug(const void *ptr, uint32_t size)
以十六进制格式打印内存数据(仅 DEBUG 级别)
uint8_t xt_log_get_level(void)
获取当前日志级别
XTINY 错误码定义