stm32移植elog
elog下载
https://github.com/armink/EasyLogger
elog移植
将项目中的以上文件加入项目中。其中
在elog_cfg.h中注释掉部分不需要的。
//#define ELOG_COLOR_ENABLE
//#define ELOG_ASYNC_OUTPUT_ENABLE
//#define ELOG_BUF_OUTPUT_ENABLE
完善elog_port.c中的函数
ElogErrCode elog_port_init(void) {ElogErrCode result = ELOG_NO_ERR;/* add your code here */return result;
}
void elog_port_deinit(void) {/* add your code here */}
void elog_port_output(const char *log, size_t size) {/* add your code here */USART1_SendData((uint8_t *)log, (uint32_t)size, 200);
}
void elog_port_output_lock(void) {/* add your code here */__disable_irq();
}
void elog_port_output_unlock(void) {/* add your code here */__enable_irq();
}
const char *elog_port_get_time(void) {/* add your code here */return "10:08:12";
}
const char *elog_port_get_p_info(void) {/* add your code here */return "";
}
const char *elog_port_get_t_info(void) {/* add your code here */return "";
}
在elog.c文件中,将对应的告警完善一下
static const char *level_output_info[] = {[ELOG_LVL_ASSERT] = "ASSERT /",[ELOG_LVL_ERROR] = "ERROR /",[ELOG_LVL_WARN] = "WARN /",[ELOG_LVL_INFO] = "INFO /",[ELOG_LVL_DEBUG] = "DEBUG /",[ELOG_LVL_VERBOSE] = "VERBOSE/",
};
使用elog
对elog进行初始化
void ELOG_UserInit(void)
{/* initialize EasyLogger */elog_init();/* set EasyLogger log format */elog_set_fmt(ELOG_LVL_ASSERT, ELOG_FMT_ALL & ~(ELOG_FMT_FUNC | ELOG_FMT_T_INFO | ELOG_FMT_P_INFO));elog_set_fmt(ELOG_LVL_ERROR, ELOG_FMT_ALL & ~(ELOG_FMT_FUNC | ELOG_FMT_T_INFO | ELOG_FMT_P_INFO));elog_set_fmt(ELOG_LVL_WARN, ELOG_FMT_ALL & ~(ELOG_FMT_FUNC | ELOG_FMT_T_INFO | ELOG_FMT_P_INFO));elog_set_fmt(ELOG_LVL_INFO, ELOG_FMT_ALL & ~(ELOG_FMT_FUNC | ELOG_FMT_T_INFO | ELOG_FMT_P_INFO));elog_set_fmt(ELOG_LVL_DEBUG, ELOG_FMT_ALL & ~(ELOG_FMT_FUNC | ELOG_FMT_T_INFO | ELOG_FMT_P_INFO));elog_set_fmt(ELOG_LVL_VERBOSE, ELOG_FMT_ALL & ~(ELOG_FMT_FUNC | ELOG_FMT_T_INFO | ELOG_FMT_P_INFO));/* start EasyLogger */elog_start();
}void test_elog(void) {/* test log output for all level */log_a("Hello EasyLogger!");log_e("Hello EasyLogger!");log_w("Hello EasyLogger!");log_i("Hello EasyLogger!");log_d("Hello EasyLogger!");log_v("Hello EasyLogger!");elog_raw("Hello EasyLogger!\n");
}