From dd60d4eaeb6346b7089bbc9ee5d69813eafca3ec Mon Sep 17 00:00:00 2001
From: yincheng.zhong <634916154@qq.com>
Date: 星期五, 30 八月 2024 15:36:57 +0800
Subject: [PATCH] V1.4

---
 keil/include/drivers/mk_trace.c |  416 +++++++++++++++++++++++++++++-----------------------------
 1 files changed, 209 insertions(+), 207 deletions(-)

diff --git a/keil/include/drivers/mk_trace.c b/keil/include/drivers/mk_trace.c
index 689fde4..d40da8d 100644
--- a/keil/include/drivers/mk_trace.c
+++ b/keil/include/drivers/mk_trace.c
@@ -50,7 +50,7 @@
 #if TRACE_EN
 
 #ifndef BACKTRACE_EN
-#define BACKTRACE_EN (0)
+#define BACKTRACE_EN (1)
 #endif
 
 #ifndef TRACE_BUF_SIZE
@@ -205,7 +205,8 @@
 };
 
 const static char *module_name[TRACE_MODULE_NUM] = {"[MAC]",  "[PHY]", "[DRV]",  "[APP]", "[UWB]", "[UCI]",  "[TEST]",
-                                                    "[BOOT]", "[OS]",  "[FIRA]", "[CCC]", "[SE]",  "[SCP03]"};
+        "[BOOT]", "[OS]",  "[FIRA]", "[CCC]", "[SE]",  "[SCP03]"
+                                                   };
 
 const static char *level_tag[TRACE_LEVEL_NUM] = {
     "[ERROR]",
@@ -296,19 +297,20 @@
     {
         enum UART_DEV_T trace_uart = (trace_handle.port == TRACE_PORT_UART0) ? UART_ID0 : UART_ID1;
         struct UART_CFG_T trace_uart_cfg = {.parity = UART_PARITY_NONE,
-                                            .stop = UART_STOP_BITS_1,
-                                            .data = UART_DATA_BITS_8,
-                                            .flow = UART_FLOW_CONTROL_NONE,
-                                            .rx_level = UART_RXFIFO_CHAR_1,
-                                            .tx_level = UART_TXFIFO_EMPTY,
-                                            .baud = baud_rate,
+            .stop = UART_STOP_BITS_1,
+             .data = UART_DATA_BITS_8,
+              .flow = UART_FLOW_CONTROL_NONE,
+               .rx_level = UART_RXFIFO_CHAR_1,
+                .tx_level = UART_TXFIFO_EMPTY,
+                 .baud = baud_rate,
 #ifdef TRACE_BLOCKING
-                                            .dma_en = false,
+                  .dma_en = false,
 #else
-                                            .dma_en = true,
+                  .dma_en = true,
 #endif
-                                            .int_rx = false,
-                                            .int_tx = false};
+                   .int_rx = false,
+                    .int_tx = false
+        };
 
         ret = uart_open(trace_uart, &trace_uart_cfg);
 
@@ -568,65 +570,65 @@
         enum UART_DEV_T trace_uart = (trace_handle.port == TRACE_PORT_UART0) ? UART_ID0 : UART_ID1;
         switch (trace_handle.console_fsm)
         {
-            case CONSOLE_RX_HEADER:
+        case CONSOLE_RX_HEADER:
+        {
+            if (trace_handle.rx_buf[POS_PREAMBLE] == CONSOLE_CMD)
             {
-                if (trace_handle.rx_buf[POS_PREAMBLE] == CONSOLE_CMD)
-                {
-                    payload_len = (uint16_t)(trace_handle.rx_buf[POS_LENGTH + 1] << 8) + trace_handle.rx_buf[POS_LENGTH];
-                    trace_handle.console_fsm = CONSOLE_RX_PAYLOAD;
-                    uart_receive(trace_uart, &trace_handle.rx_buf[POS_ID], payload_len, console_receive_callback);
-                }
-                else if (trace_handle.rx_buf[1] == CONSOLE_CMD)
-                {
-                    trace_handle.rx_buf[POS_PREAMBLE] = CONSOLE_CMD;
-                    trace_handle.rx_buf[1] = trace_handle.rx_buf[2];
-                    uart_receive(trace_uart, &trace_handle.rx_buf[2], 1, console_receive_callback);
-                }
-                else if (trace_handle.rx_buf[2] == CONSOLE_CMD)
-                {
-                    trace_handle.rx_buf[POS_PREAMBLE] = CONSOLE_CMD;
-                    uart_receive(trace_uart, &trace_handle.rx_buf[1], 2, console_receive_callback);
-                }
-                else
-                {
-                    uart_receive(trace_uart, &trace_handle.rx_buf[POS_PREAMBLE], LEN_HEADER, console_receive_callback);
-                }
-                break;
-            }
-
-            case CONSOLE_RX_PAYLOAD:
-            {
-                // check crc
                 payload_len = (uint16_t)(trace_handle.rx_buf[POS_LENGTH + 1] << 8) + trace_handle.rx_buf[POS_LENGTH];
-                uint16_t crc_frame =
-                    (uint16_t)(trace_handle.rx_buf[payload_len + LEN_HEADER - LEN_CRC + 1] << 8) + trace_handle.rx_buf[payload_len + LEN_HEADER - LEN_CRC];
-                uint16_t crc_cal = crc16(&trace_handle.rx_buf[0], payload_len + LEN_HEADER - LEN_CRC);
+                trace_handle.console_fsm = CONSOLE_RX_PAYLOAD;
+                uart_receive(trace_uart, &trace_handle.rx_buf[POS_ID], payload_len, console_receive_callback);
+            }
+            else if (trace_handle.rx_buf[1] == CONSOLE_CMD)
+            {
+                trace_handle.rx_buf[POS_PREAMBLE] = CONSOLE_CMD;
+                trace_handle.rx_buf[1] = trace_handle.rx_buf[2];
+                uart_receive(trace_uart, &trace_handle.rx_buf[2], 1, console_receive_callback);
+            }
+            else if (trace_handle.rx_buf[2] == CONSOLE_CMD)
+            {
+                trace_handle.rx_buf[POS_PREAMBLE] = CONSOLE_CMD;
+                uart_receive(trace_uart, &trace_handle.rx_buf[1], 2, console_receive_callback);
+            }
+            else
+            {
+                uart_receive(trace_uart, &trace_handle.rx_buf[POS_PREAMBLE], LEN_HEADER, console_receive_callback);
+            }
+            break;
+        }
 
-                if (crc_frame == crc_cal)
+        case CONSOLE_RX_PAYLOAD:
+        {
+            // check crc
+            payload_len = (uint16_t)(trace_handle.rx_buf[POS_LENGTH + 1] << 8) + trace_handle.rx_buf[POS_LENGTH];
+            uint16_t crc_frame =
+                (uint16_t)(trace_handle.rx_buf[payload_len + LEN_HEADER - LEN_CRC + 1] << 8) + trace_handle.rx_buf[payload_len + LEN_HEADER - LEN_CRC];
+            uint16_t crc_cal = crc16(&trace_handle.rx_buf[0], payload_len + LEN_HEADER - LEN_CRC);
+
+            if (crc_frame == crc_cal)
+            {
+                uint16_t id = (uint16_t)(trace_handle.rx_buf[POS_ID + 1] << 8) + trace_handle.rx_buf[POS_ID];
+
+                // packet process
+                if (console_cmd_handler_list[id].function)
                 {
-                    uint16_t id = (uint16_t)(trace_handle.rx_buf[POS_ID + 1] << 8) + trace_handle.rx_buf[POS_ID];
-
-                    // packet process
-                    if (console_cmd_handler_list[id].function)
-                    {
-                        console_cmd_handler_list[id].function(&trace_handle.rx_buf[POS_DATA], payload_len - LEN_CRC - LEN_ID);
-                    }
-                    else
-                    {
-                        LOG_ERROR(TRACE_MODULE_DRIVER, "Console CMD ID %04x Function is Null\r\n", id);
-                    }
+                    console_cmd_handler_list[id].function(&trace_handle.rx_buf[POS_DATA], payload_len - LEN_CRC - LEN_ID);
                 }
                 else
                 {
-                    LOG_ERROR(TRACE_MODULE_DRIVER, "Console CRC Error %04x %04x\r\n", crc_cal, crc_frame);
+                    LOG_ERROR(TRACE_MODULE_DRIVER, "Console CMD ID %04x Function is Null\r\n", id);
                 }
-                trace_handle.console_fsm = CONSOLE_RX_HEADER;
-                uart_receive(trace_uart, &trace_handle.rx_buf[0], LEN_HEADER, console_receive_callback);
-                break;
             }
+            else
+            {
+                LOG_ERROR(TRACE_MODULE_DRIVER, "Console CRC Error %04x %04x\r\n", crc_cal, crc_frame);
+            }
+            trace_handle.console_fsm = CONSOLE_RX_HEADER;
+            uart_receive(trace_uart, &trace_handle.rx_buf[0], LEN_HEADER, console_receive_callback);
+            break;
+        }
 
-            default:
-                break;
+        default:
+            break;
         }
     }
 }
@@ -725,15 +727,15 @@
         while (1)
         {
             if (NumDigits > 1u)
-            { // User specified a min number of digits to print? => Make sure we loop at least that often, before
-              // checking anything else (> 1 check avoids problems with NumDigits being signed / unsigned)
+            {   // User specified a min number of digits to print? => Make sure we loop at least that often, before
+                // checking anything else (> 1 check avoids problems with NumDigits being signed / unsigned)
                 NumDigits--;
             }
             else
             {
                 Div = v / Digit;
                 if (Div < Base)
-                { // Is our divider big enough to extract the highest digit from value? => Done
+                {   // Is our divider big enough to extract the highest digit from value? => Done
                     break;
                 }
             }
@@ -899,25 +901,25 @@
                 c = *fmt;
                 switch (c)
                 {
-                    case '-':
-                        FormatFlags |= FORMAT_FLAG_LEFT_JUSTIFY;
-                        fmt++;
-                        break;
-                    case '0':
-                        FormatFlags |= FORMAT_FLAG_PAD_ZERO;
-                        fmt++;
-                        break;
-                    case '+':
-                        FormatFlags |= FORMAT_FLAG_PRINT_SIGN;
-                        fmt++;
-                        break;
-                    case '#':
-                        FormatFlags |= FORMAT_FLAG_ALTERNATE;
-                        fmt++;
-                        break;
-                    default:
-                        v = 0;
-                        break;
+                case '-':
+                    FormatFlags |= FORMAT_FLAG_LEFT_JUSTIFY;
+                    fmt++;
+                    break;
+                case '0':
+                    FormatFlags |= FORMAT_FLAG_PAD_ZERO;
+                    fmt++;
+                    break;
+                case '+':
+                    FormatFlags |= FORMAT_FLAG_PRINT_SIGN;
+                    fmt++;
+                    break;
+                case '#':
+                    FormatFlags |= FORMAT_FLAG_ALTERNATE;
+                    fmt++;
+                    break;
+                default:
+                    v = 0;
+                    break;
                 }
             } while (v);
             //
@@ -975,65 +977,65 @@
             //
             switch (c)
             {
-                case 'c':
+            case 'c':
+            {
+                char c0;
+                v = va_arg(args, int);
+                c0 = (char)v;
+                _StoreChar(&BufferDesc, c0);
+                break;
+            }
+            case 'd':
+                v = va_arg(args, int);
+                _PrintInt(&BufferDesc, v, 10u, NumDigits, FieldWidth, FormatFlags);
+                break;
+            case 'u':
+                v = va_arg(args, int);
+                _PrintUnsigned(&BufferDesc, (unsigned)v, 10u, NumDigits, FieldWidth, FormatFlags);
+                break;
+            case 'x':
+            case 'X':
+                v = va_arg(args, int);
+                _PrintUnsigned(&BufferDesc, (unsigned)v, 16u, NumDigits, FieldWidth, FormatFlags);
+                break;
+            case 's':
+            {
+                const char *s = va_arg(args, const char *);
+                do
                 {
-                    char c0;
-                    v = va_arg(args, int);
-                    c0 = (char)v;
-                    _StoreChar(&BufferDesc, c0);
-                    break;
-                }
-                case 'd':
-                    v = va_arg(args, int);
-                    _PrintInt(&BufferDesc, v, 10u, NumDigits, FieldWidth, FormatFlags);
-                    break;
-                case 'u':
-                    v = va_arg(args, int);
-                    _PrintUnsigned(&BufferDesc, (unsigned)v, 10u, NumDigits, FieldWidth, FormatFlags);
-                    break;
-                case 'x':
-                case 'X':
-                    v = va_arg(args, int);
-                    _PrintUnsigned(&BufferDesc, (unsigned)v, 16u, NumDigits, FieldWidth, FormatFlags);
-                    break;
-                case 's':
-                {
-                    const char *s = va_arg(args, const char *);
-                    do
+                    c = *s;
+                    s++;
+                    if (c == '\0')
                     {
-                        c = *s;
-                        s++;
-                        if (c == '\0')
-                        {
-                            break;
-                        }
-                        _StoreChar(&BufferDesc, c);
-                    } while (BufferDesc.ReturnValue >= 0);
-                }
+                        break;
+                    }
+                    _StoreChar(&BufferDesc, c);
+                } while (BufferDesc.ReturnValue >= 0);
+            }
+            break;
+            case 'f':
+            case 'F':
+            {
+                float fv = (float)va_arg(args, double);
+                if (fv < 0)
+                    _StoreChar(&BufferDesc, '-');
+                v = abs((int)fv);
+                _PrintInt(&BufferDesc, v, 10u, NumDigits, FieldWidth, FormatFlags);
+                _StoreChar(&BufferDesc, '.');
+                v = abs((int)(fv * 1000000));
+                v = v % 1000000;
+                _PrintInt(&BufferDesc, v, 10u, 6, FieldWidth, FormatFlags);
+            }
+            break;
+            case 'p':
+                v = va_arg(args, int);
+                _PrintUnsigned(&BufferDesc, (unsigned)v, 16u, 8u, 8u, 0u);
                 break;
-                case 'f':
-                case 'F':
-                {
-                    float fv = (float)va_arg(args, double);
-                    if (fv < 0)
-                        _StoreChar(&BufferDesc, '-');
-                    v = abs((int)fv);
-                    _PrintInt(&BufferDesc, v, 10u, NumDigits, FieldWidth, FormatFlags);
-                    _StoreChar(&BufferDesc, '.');
-                    v = abs((int)(fv * 1000000));
-                    v = v % 1000000;
-                    _PrintInt(&BufferDesc, v, 10u, 6, FieldWidth, FormatFlags);
-                }
+            case '%':
+                _StoreChar(&BufferDesc, '%');
                 break;
-                case 'p':
-                    v = va_arg(args, int);
-                    _PrintUnsigned(&BufferDesc, (unsigned)v, 16u, 8u, 8u, 0u);
-                    break;
-                case '%':
-                    _StoreChar(&BufferDesc, '%');
-                    break;
-                default:
-                    break;
+            default:
+                break;
             }
             fmt++;
         }
@@ -1196,7 +1198,7 @@
     j = 3;
 
     while (*p != '\0')
-    { // fill begin at recdBuf[3]
+    {   // fill begin at recdBuf[3]
         if (*p != '%')
         {
             p++;
@@ -1210,82 +1212,82 @@
 
         switch (*++p)
         {
-            case 's':
+        case 's':
+        {
+            recdBuf[j++] = 0;
+            dataBits |= 1 << 2 * var_count++;
+        }
+        break;
+        case 'c':
+        case 'd':
+        {
+            it = va_arg(aq, int);
+            if (it > 0x7FFF)
             {
-                recdBuf[j++] = 0;
+                *(recdBuf + j++) = 0xff;
+                *(recdBuf + j++) = 0x7f;
+                dataBits |= 2 << 2 * var_count++;
+            }
+
+            if (it < 256)
+            {   // 1byte
+                recdBuf[j++] = (char)it;
                 dataBits |= 1 << 2 * var_count++;
             }
-            break;
-            case 'c':
-            case 'd':
+            else
+            {   // 2byte
+                *(recdBuf + j++) = it & 0xff;
+                *(recdBuf + j++) = it >> 8 & 0xff;
+                dataBits |= 2 << 2 * var_count++;
+            }
+        }
+        break;
+        case 'x':
+        case 'X':
+        case 'u':
+        {
+            it = va_arg(aq, int);
+            if (it > 0xFFFF)
             {
-                it = va_arg(aq, int);
-                if (it > 0x7FFF)
-                {
-                    *(recdBuf + j++) = 0xff;
-                    *(recdBuf + j++) = 0x7f;
-                    dataBits |= 2 << 2 * var_count++;
-                }
+                *(recdBuf + j++) = 0xff;
+                *(recdBuf + j++) = 0xff;
+                dataBits |= 2 << 2 * var_count++;
+            }
 
-                if (it < 256)
-                { // 1byte
-                    recdBuf[j++] = (char)it;
-                    dataBits |= 1 << 2 * var_count++;
-                }
-                else
-                { // 2byte
-                    *(recdBuf + j++) = it & 0xff;
-                    *(recdBuf + j++) = it >> 8 & 0xff;
-                    dataBits |= 2 << 2 * var_count++;
-                }
+            if (it < 0x100) //<0xFF
+            {   // 1byte
+                recdBuf[j++] = (char)it;
+                dataBits |= 1 << 2 * var_count++;
             }
-            break;
-            case 'x':
-            case 'X':
-            case 'u':
+            else
+            {   // 2byte
+                *(recdBuf + j++) = it & 0xff;
+                *(recdBuf + j++) = it >> 8 & 0xff;
+                dataBits |= 2 << 2 * var_count++;
+            }
+        }
+        break;
+        case 'f':
+        {
+            dd = va_arg(aq, double);
+            if (dd > 3.4e38)
             {
-                it = va_arg(aq, int);
-                if (it > 0xFFFF)
-                {
-                    *(recdBuf + j++) = 0xff;
-                    *(recdBuf + j++) = 0xff;
-                    dataBits |= 2 << 2 * var_count++;
-                }
-
-                if (it < 0x100) //<0xFF
-                {               // 1byte
-                    recdBuf[j++] = (char)it;
-                    dataBits |= 1 << 2 * var_count++;
-                }
-                else
-                { // 2byte
-                    *(recdBuf + j++) = it & 0xff;
-                    *(recdBuf + j++) = it >> 8 & 0xff;
-                    dataBits |= 2 << 2 * var_count++;
-                }
+                *(recdBuf + j++) = 0xff;
+                *(recdBuf + j++) = 0xff;
+                *(recdBuf + j++) = 0xff;
+                *(recdBuf + j++) = 0xff;
+                dataBits |= 3 << 2 * var_count++;
             }
-            break;
-            case 'f':
+            else
             {
-                dd = va_arg(aq, double);
-                if (dd > 3.4e38)
-                {
-                    *(recdBuf + j++) = 0xff;
-                    *(recdBuf + j++) = 0xff;
-                    *(recdBuf + j++) = 0xff;
-                    *(recdBuf + j++) = 0xff;
-                    dataBits |= 3 << 2 * var_count++;
-                }
-                else
-                {
-                    *(recdBuf + j++) = (unsigned int)dd & 0xff;
-                    *(recdBuf + j++) = (unsigned int)dd >> 8 & 0xff;
-                    *(recdBuf + j++) = (unsigned int)dd >> 16 & 0xff;
-                    *(recdBuf + j++) = (unsigned int)dd >> 24 & 0xff;
-                    dataBits |= 3 << 2 * var_count++;
-                }
+                *(recdBuf + j++) = (unsigned int)dd & 0xff;
+                *(recdBuf + j++) = (unsigned int)dd >> 8 & 0xff;
+                *(recdBuf + j++) = (unsigned int)dd >> 16 & 0xff;
+                *(recdBuf + j++) = (unsigned int)dd >> 24 & 0xff;
+                dataBits |= 3 << 2 * var_count++;
             }
-            break;
+        }
+        break;
         }
         p++;
     }
@@ -1587,8 +1589,8 @@
 #if defined(__CC_ARM)
 
 #else
-    __ASM volatile("mov %0, sp" : "=r"(sp));
-    __ASM volatile("mov %0, lr" : "=r"(lr));
+__ASM volatile("mov %0, sp" : "=r"(sp));
+__ASM volatile("mov %0, lr" : "=r"(lr));
 #endif
 
     // Parameters

--
Gitblit v1.9.3