From 681567d6d1bd2894eccde5b22a948eac7d3a22a5 Mon Sep 17 00:00:00 2001 From: chen <15335560115@163.com> Date: 星期五, 20 九月 2024 18:38:25 +0800 Subject: [PATCH] 对应发货标签V1.6,更改版本号为V1.1,与一期标签分开,更改了tag的uwb测距配置与DW1000通讯,并将测距接包逻辑单次接包改为打开循环接收 --- keil/include/drivers/mk_trace.c | 418 +++++++++++++++++++++++++++++------------------------------ 1 files changed, 208 insertions(+), 210 deletions(-) diff --git a/keil/include/drivers/mk_trace.c b/keil/include/drivers/mk_trace.c index d40da8d..b2c8ce8 100644 --- a/keil/include/drivers/mk_trace.c +++ b/keil/include/drivers/mk_trace.c @@ -205,8 +205,7 @@ }; 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]", @@ -297,20 +296,19 @@ { 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); @@ -570,65 +568,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: - { - if (trace_handle.rx_buf[POS_PREAMBLE] == CONSOLE_CMD) + case CONSOLE_RX_HEADER: { - 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); - - 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) + if (trace_handle.rx_buf[POS_PREAMBLE] == CONSOLE_CMD) { - console_cmd_handler_list[id].function(&trace_handle.rx_buf[POS_DATA], payload_len - LEN_CRC - LEN_ID); + 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 { - LOG_ERROR(TRACE_MODULE_DRIVER, "Console CMD ID %04x Function is Null\r\n", id); + uart_receive(trace_uart, &trace_handle.rx_buf[POS_PREAMBLE], 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; + 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) + { + 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); + } + } + 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; } } } @@ -727,15 +725,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; } } @@ -901,25 +899,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); // @@ -977,65 +975,65 @@ // switch (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 + case 'c': { - c = *s; - s++; - if (c == '\0') + 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 { - 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); + c = *s; + s++; + if (c == '\0') + { + break; + } + _StoreChar(&BufferDesc, c); + } while (BufferDesc.ReturnValue >= 0); + } break; - case '%': - _StoreChar(&BufferDesc, '%'); + 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; - default: - break; + case 'p': + v = va_arg(args, int); + _PrintUnsigned(&BufferDesc, (unsigned)v, 16u, 8u, 8u, 0u); + break; + case '%': + _StoreChar(&BufferDesc, '%'); + break; + default: + break; } fmt++; } @@ -1198,7 +1196,7 @@ j = 3; while (*p != '\0') - { // fill begin at recdBuf[3] + { // fill begin at recdBuf[3] if (*p != '%') { p++; @@ -1212,82 +1210,82 @@ switch (*++p) { - case 's': - { - recdBuf[j++] = 0; - dataBits |= 1 << 2 * var_count++; - } - break; - case 'c': - case 'd': - { - it = va_arg(aq, int); - if (it > 0x7FFF) + case 's': { - *(recdBuf + j++) = 0xff; - *(recdBuf + j++) = 0x7f; - dataBits |= 2 << 2 * var_count++; - } - - if (it < 256) - { // 1byte - recdBuf[j++] = (char)it; + recdBuf[j++] = 0; dataBits |= 1 << 2 * var_count++; } - 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) + break; + case 'c': + case 'd': { - *(recdBuf + j++) = 0xff; - *(recdBuf + j++) = 0xff; - dataBits |= 2 << 2 * var_count++; - } + it = va_arg(aq, int); + if (it > 0x7FFF) + { + *(recdBuf + j++) = 0xff; + *(recdBuf + j++) = 0x7f; + dataBits |= 2 << 2 * var_count++; + } - if (it < 0x100) //<0xFF - { // 1byte - recdBuf[j++] = (char)it; - dataBits |= 1 << 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++; + } } - 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) + break; + case 'x': + case 'X': + case 'u': { - *(recdBuf + j++) = 0xff; - *(recdBuf + j++) = 0xff; - *(recdBuf + j++) = 0xff; - *(recdBuf + j++) = 0xff; - dataBits |= 3 << 2 * var_count++; + 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++; + } } - else + break; + case 'f': { - *(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++; + 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++; + } } - } - break; + break; } p++; } @@ -1589,8 +1587,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