From f678687d3aa36a894f5c1ec9143d2d7a18e8c262 Mon Sep 17 00:00:00 2001 From: zhaohe Date: Wed, 13 Nov 2024 18:45:58 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9log=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=EF=BC=8C=E6=B7=BB=E5=8A=A0zbase=5Fgstate?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- basic/zbase_gstate.c | 8 ++++++++ basic/zbase_gstate.h | 18 ++++++++++++++++++ basic/zlog.c | 13 ++++++++----- basic/zlog.h | 5 +++-- zbasic.h | 2 ++ 5 files changed, 39 insertions(+), 7 deletions(-) create mode 100644 basic/zbase_gstate.c create mode 100644 basic/zbase_gstate.h diff --git a/basic/zbase_gstate.c b/basic/zbase_gstate.c new file mode 100644 index 0000000..b9cd221 --- /dev/null +++ b/basic/zbase_gstate.c @@ -0,0 +1,8 @@ +#include "zbase_gstate.h" + +zbase_gstate_t gstate; + +zbase_gstate_t* zbase_gstate_get() { return &gstate; } + +void zbase_gstate_set_fatal_flag() { gstate.fatalFlag = true; } +void zbase_gstate_clear_fatal_flag() { gstate.fatalFlag = false; } \ No newline at end of file diff --git a/basic/zbase_gstate.h b/basic/zbase_gstate.h new file mode 100644 index 0000000..216fb4f --- /dev/null +++ b/basic/zbase_gstate.h @@ -0,0 +1,18 @@ +#pragma once +#include +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct { + bool fatalFlag; +} zbase_gstate_t; + +zbase_gstate_t* zbase_gstate_get(); + +void zbase_gstate_set_fatal_flag(); +void zbase_gstate_clear_fatal_flag(); + +#ifdef __cplusplus +} +#endif diff --git a/basic/zlog.c b/basic/zlog.c index 3f0499e..ab8fb0d 100644 --- a/basic/zlog.c +++ b/basic/zlog.c @@ -1,9 +1,10 @@ #include "zlog.h" -#include "zbase.h" + #include "project_configs.h" +#include "zbase.h" -bool g_xs_enable_log = true; -extern UART_HandleTypeDef DEBUG_UART; +bool g_xs_enable_log = true; +UART_HandleTypeDef* debuguart; /********************************************************************* * @fn _write * @@ -19,12 +20,14 @@ __attribute__((used)) int _write(int fd, char* buf, int size) { for (i = 0; i < size; i++) { uint8_t c = *buf++; - HAL_UART_Transmit(&DEBUG_UART, &c, 1, 100); + if (debuguart) HAL_UART_Transmit(debuguart, &c, 1, 100); } return size; } +void zlog_init(UART_HandleTypeDef* uart) { debuguart = uart; } + void zlog_enable(bool enable) { g_xs_enable_log = enable; } void zlog(const char* fmt, ...) { if (g_xs_enable_log) { @@ -35,7 +38,7 @@ void zlog(const char* fmt, ...) { } } -void zlog_raw(const char* info){ +void zlog_raw(const char* info) { if (g_xs_enable_log) { printf(info); } diff --git a/basic/zlog.h b/basic/zlog.h index 7ec2470..b16cc93 100644 --- a/basic/zlog.h +++ b/basic/zlog.h @@ -1,9 +1,9 @@ #pragma once #include "zbase.h" -extern bool g_xs_enable_log; +extern bool g_xs_enable_log; extern uint32_t zget_ticket(void); -extern void zdelay_ms(int ms) ; +extern void zdelay_ms(int ms); #define ZLOG_RELEASE(TAG, fmt, ...) \ if (g_xs_enable_log) { \ @@ -40,6 +40,7 @@ extern void zdelay_ms(int ms) ; #define ZARRAY_SIZE(arr) (sizeof(arr) / sizeof(arr[0])) +void zlog_init(UART_HandleTypeDef* uart); void zlog(const char* fmt, ...); void zlog_raw(const char* info); void zlog_enable(bool enable); diff --git a/zbasic.h b/zbasic.h index 2207b12..ed9a8e8 100644 --- a/zbasic.h +++ b/zbasic.h @@ -10,6 +10,8 @@ extern "C" { #include "basic/zgpio.h" #include "basic/zlog.h" #include "basic/sn.h" +// +#include "basic/zbase_gstate.h" #include "cmsis_version.h" #include "cmsis_os.h"