ZYNQ连载06-EasyLogger日志组件

ZYNQ连载06-EasyLogger日志组件

1. EasyLogger介绍

Easylogger仓库
01

2. EasyLogger移植

EasyLogger移植比较简单,在Vitis中移植时主要注意路径问题,然后适配下接口即可:

void elog_port_output(const char *log, size_t size) {
	printf("%.*s", size, log);
}

02
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;
}

3. 测试

03