/* * @Description: * @Date: 2021-03-09 11:30:52 * @LastEditors: CK.Zh * @LastEditTime: 2021-03-10 14:46:32 * @FilePath: \NaviKit_EC_stm32\App\Src\th_elog.c */ #define LOG_TAG "TH-Elog" #include #include "main.h" //semaphore const osSemaphoreAttr_t ElogOutputBinarySem_attributes = { .name = "ElogOutputBinarySem" }; //semaphore const osSemaphoreAttr_t ElogUartBinarySem_attributes = { .name = "ElogUartBinarySem" }; const osMutexAttr_t ElogOutputMutex_attributes = { .name = "ElogOutputMutex" }; //task const osThreadAttr_t ElogInitTask_attributes = { .name = "ElogInitTask", .priority = (osPriority_t) osPriorityNormal, .stack_size = 128 * 4 }; const osThreadAttr_t ElogFlushTask_attributes = { .name = "ElogFlushTask", .priority = (osPriority_t) osPriorityLow1, .stack_size = 256 * 4 }; void ElogInitTask(void *argument){ // my_elog_init(); // osThreadExit();//exit this thread,execute this code only once } //interval:buffer flush time interval void ElogFlushTask(uint8_t intervnal){ log_d("Start log Flush Task"); for(;;){ elog_flush(); osDelay(intervnal); } } void my_elog_init(){ elog_init(); /* close printf buffer */ setbuf(stdout, NULL); #ifdef DEBUG //debug mode:output all information ElogFmtIndex ELOG_FMT_SETTING = ELOG_FMT_ALL ; #else //release mode :only output level、tag、time information ElogFmtIndex ELOG_FMT_SETTING = ELOG_FMT_LVL | ELOG_FMT_TAG | ELOG_FMT_TIME; #endif /* set EasyLogger log format */ /* 断言:输出所有内容 */ elog_set_fmt(ELOG_LVL_ASSERT, ELOG_FMT_SETTING); /* 错误:输出级别、标签和时间 */ elog_set_fmt(ELOG_LVL_ERROR, ELOG_FMT_SETTING); /* 警告:输出级别、标签和时间 */ elog_set_fmt(ELOG_LVL_WARN, ELOG_FMT_SETTING); /* 信息:输出级别、标签和时间 */ elog_set_fmt(ELOG_LVL_INFO, ELOG_FMT_SETTING); /* 调试:输出除了方法名之外的所有内容 */ elog_set_fmt(ELOG_LVL_DEBUG, ELOG_FMT_SETTING); /* 详细:输出除了方法名之外的所有内容 */ elog_set_fmt(ELOG_LVL_VERBOSE, ELOG_FMT_SETTING); // enable text color (dynamic) elog_set_text_color_enabled(true); /* start EasyLogger */ elog_start(); } void HAL_UART1_TxHalfCpltCallback(UART_HandleTypeDef *huart){ osSemaphoreRelease(ElogUartBinarySemHandle); }