From aa38e5c1f48e31213ee349aa5cd6f06c85bda70d Mon Sep 17 00:00:00 2001 From: android <android@lingyun.com> Date: Tue, 25 Jun 2024 21:49:39 +0800 Subject: [PATCH] Add GD32F103RCT6 ADC converter board SDK source code --- mcu_sdk/gd32f103/rk_eFire/Utiles/Utilities/logger.c | 85 ++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 85 insertions(+), 0 deletions(-) diff --git a/mcu_sdk/gd32f103/rk_eFire/Utiles/Utilities/logger.c b/mcu_sdk/gd32f103/rk_eFire/Utiles/Utilities/logger.c new file mode 100644 index 0000000..792e9af --- /dev/null +++ b/mcu_sdk/gd32f103/rk_eFire/Utiles/Utilities/logger.c @@ -0,0 +1,85 @@ +#include "board_common.h" + +static osMutexId PrintMutex; +static int PrintCurLevel = TH_PRINT_CUR; +osMutexDef(PrintMutex); + +static void Board_DebugMutexInit(void) +{ + PrintMutex = osMutexCreate(osMutex(PrintMutex)); +} + +static void Board_DebugMutexDeInit(void) +{ + osMutexDelete(PrintMutex); +} + +static void Board_DebugSetLevel(int Level) +{ + PrintCurLevel = Level; +} + +static void PrintToConsole(char *Color, char *Module, int Level, char *LevelName, char *FileName, int LineNum, const char *Func, char *Fmt, va_list argp) +{ + osMutexWait(PrintMutex, osWaitForever); + if (Level < TH_PRINT_MAX) + PRINTF("%s[%s][%s]>%s(%d,%s)>|", Color, Module, LevelName, FileName, LineNum, Func); + + //���´��룬�ο�Report������ + int8_t i8Ret; + char *Buffer = NULL; + uint32_t u8Size = 300; + + //va_list list; + Buffer = (char*)pvPortMalloc(u8Size); + if(Buffer == NULL) + { + osMutexRelease(PrintMutex); + return; + } + memset(Buffer, 0x0, u8Size); + + while(1) + { + i8Ret = TH_VSNPRINTF(Buffer, u8Size, Fmt, argp); + if(i8Ret > -1 && i8Ret < u8Size) + break; + } + + PRINTF("%s", Buffer); + + if (Buffer != NULL) + vPortFree(Buffer); + Buffer = NULL; + + /* ��ԭĬ��������ɫ */ + if (Level < TH_PRINT_MAX) + PRINTF("[%d]%c%c%s", (int32_t)uxTaskGetStackHighWaterMark(NULL), '\r', '\n', COLOR_NORMAL); + + osMutexRelease(PrintMutex); +} + +//�����еļ�1,��1,���ַ����Ľ�ֹ��'\0' +void Board_DebugPrintf(char *Color, char *Module, int Level, char *LevelName, char *FileName, int LineNum, const char *Func, char *Fmt, ...) +{ + //�����ӡ�ļ��𣬱ȵ�ǰ���õļ���ͣ����ᱻ��ӡ + if(Level < PrintCurLevel) + return; + + va_list argp; + va_start(argp, Fmt); + PrintToConsole(Color, Module, Level, LevelName, FileName, LineNum, Func, Fmt, argp); + va_end(argp); +} + +void Board_DebugInit(int Level) +{ + Board_DebugMutexInit(); + Board_DebugSetLevel(Level); +} + +void Board_DebugDeInit(void) +{ + Board_DebugMutexDeInit(); +} + -- Gitblit v1.9.1