增加了等级日志和RTT viewer的支持

This commit is contained in:
NeoZng
2023-03-18 20:36:21 +08:00
parent 68ac340c5a
commit 6f7bf8e9d7
9 changed files with 110 additions and 19 deletions

View File

@@ -15,7 +15,7 @@ int PrintLog(const char *fmt, ...)
{
va_list args;
va_start(args, fmt);
int n = SEGGER_RTT_vprintf(BUFFER_INDEX, fmt, &args);
int n = SEGGER_RTT_vprintf(BUFFER_INDEX, fmt, &args); // 一次可以开启多个buffer(多个终端),我们只用一个
va_end(args);
return n;
}
@@ -31,4 +31,5 @@ void Float2Str(char *str, float va)
sprintf(str, "-%d.%d", head, point);
else
sprintf(str, "%d.%d", head, point);
}
}

View File

@@ -2,17 +2,34 @@
#define _BSP_LOG_H
/**
* @brief 初始化日志功能,在操作系统启动之前调
* @brief 日志功能原型,供下面的LOGI,LOGW,LOGE等使
*
*/
void BSPLogInit();
#define LOG_PROTO(type,color,format,...) \
SEGGER_RTT_printf(BUFFER_INDEX," %s%s"format"\r\n%s", \
color, \
type, \
##__VA_ARGS__, \
RTT_CTRL_RESET)
/* 清屏 */
#define LOG_CLEAR() SEGGER_RTT_WriteString(0, " "RTT_CTRL_CLEAR)
/* 无颜色日志输出 */
#define LOG(format,...) LOG_PROTO("","",format,##__VA_ARGS__)
/* 有颜色格式日志输出 */
#define LOGINFO(format,...) LOG_PROTO("I: ", RTT_CTRL_TEXT_BRIGHT_GREEN , format, ##__VA_ARGS__)
#define LOGWARNING(format,...) LOG_PROTO("W: ", RTT_CTRL_TEXT_BRIGHT_YELLOW, format, ##__VA_ARGS__)
#define LOGERROR(format,...) LOG_PROTO("E: ", RTT_CTRL_TEXT_BRIGHT_RED , format, ##__VA_ARGS__)
/**
* @brief 通过segger RTT打印日志,支持格式化输出,格式化输出的实现参考printf
*
* @param fmt
* @param ...
* @return int
* @param fmt 格式字符串
* @param ... 参数列表
* @return int 打印的log字符数
*/
int PrintLog(const char *fmt, ...);