ZYNQ连载06-EasyLogger日志组件
1. EasyLogger介绍
Easylogger仓库
2. EasyLogger移植
EasyLogger移植比较简单,在Vitis中移植时主要注意路径问题,然后适配下接口即可:
void elog_port_output(const char *log, size_t size) {
printf("%.*s", size, log);
}
elog_cfg.h、elog.h、elog_port.c、elog_utils.c elgo.c从仓库获取。
my_elog.h、my_elog.c为自定义文件。
/* my_elog.c */
#include "include/my_elog.h"
void my_elog_init(void)
{
elog_init();
elog_set_fmt(ELOG_LVL_ASSERT, ELOG_FMT_TAG | ELOG_FMT_LINE | ELOG_FMT_DIR | ELOG_FMT_FUNC | ELOG_FMT_TIME);
elog_set_fmt(ELOG_LVL_ERROR, ELOG_FMT_TAG | ELOG_FMT_LINE | ELOG_FMT_DIR | ELOG_FMT_FUNC | ELOG_FMT_TIME);
elog_set_fmt(ELOG_LVL_WARN, ELOG_FMT_TAG | ELOG_FMT_LINE | ELOG_FMT_DIR | ELOG_FMT_FUNC | ELOG_FMT_TIME);
elog_set_fmt(ELOG_LVL_INFO, ELOG_FMT_TAG | ELOG_FMT_LINE | ELOG_FMT_DIR | ELOG_FMT_FUNC | ELOG_FMT_TIME);
elog_set_fmt(ELOG_LVL_DEBUG, ELOG_FMT_TAG | ELOG_FMT_LINE | ELOG_FMT_DIR | ELOG_FMT_FUNC | ELOG_FMT_TIME);
elog_set_fmt(ELOG_LVL_VERBOSE, ELOG_FMT_TAG | ELOG_FMT_LINE | ELOG_FMT_DIR | ELOG_FMT_FUNC | ELOG_FMT_TIME);
elog_set_text_color_enabled(true);
elog_start();
}
/* main.c */
#include <stdio.h>
#include "FreeRTOS.h"
#include "task.h"
#include "../easylogger/include/my_elog.h"
static TaskHandle_t task1_handle = NULL;
static void task1(void *pvParameters)
{
while(1)
{
// print("Hello World\n\r");
vTaskDelay(100);
}
}
int main()
{
my_elog_init();
log_a("Hello EasyLogger!");
log_e("Hello EasyLogger!");
log_w("Hello EasyLogger!");
log_i("Hello EasyLogger!");
log_d("Hello EasyLogger!");
log_v("Hello EasyLogger!");
xTaskCreate(task1,
"task1",
512,
NULL,
4,
&task1_handle);
vTaskStartScheduler();
while (1) {
vTaskDelay(100);
}
return 0;
}