From cc432b761c884a0bd8e9d83db0a4e26109fc08b1 Mon Sep 17 00:00:00 2001
From: chen <15335560115@163.com>
Date: 星期五, 08 十一月 2024 15:35:38 +0800
Subject: [PATCH] 安邦手环GPS删除部分无用数据和修改4G波特率9600出厂测试固件

---
 keil/include/components/wsf/sources/platform/pal_uart.c |  211 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 211 insertions(+), 0 deletions(-)

diff --git a/keil/include/components/wsf/sources/platform/pal_uart.c b/keil/include/components/wsf/sources/platform/pal_uart.c
new file mode 100644
index 0000000..ca63f08
--- /dev/null
+++ b/keil/include/components/wsf/sources/platform/pal_uart.c
@@ -0,0 +1,211 @@
+/*************************************************************************************************/
+/*!
+ *  \file
+ *
+ *  \brief      UART driver definition.
+ *
+ *  Copyright (c) 2019-2020 Packetcraft, Inc.
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+/*************************************************************************************************/
+
+#include "pal_uart.h"
+
+/**************************************************************************************************
+  Type definitions
+**************************************************************************************************/
+
+/*! \brief      Control block. */
+typedef struct
+{
+    PalUartState_t state;   /*!< UART state. */
+    PalUartConfig_t config; /*!< UART configuration. */
+} palUartCtrlBlk_t;
+
+/**************************************************************************************************
+  Local Variables
+**************************************************************************************************/
+
+#define PAL_UART_INVALID_INSTANCE_NUM 0xFF
+
+#ifdef DEBUG
+
+/*! \brief      Parameter check. */
+#define PAL_UART_PARAM_CHECK(p, expr)        \
+    {                                        \
+        if (!(expr))                         \
+        {                                    \
+            p->state = PAL_UART_STATE_ERROR; \
+            return;                          \
+        }                                    \
+    }
+
+#else
+
+/*! \brief      Parameter check (disabled). */
+#define PAL_UART_PARAM_CHECK(p, expr)
+
+#endif
+
+/*! \brief      Control block. */
+static palUartCtrlBlk_t palUartCb[2];
+
+/**************************************************************************************************
+  Local Functions
+**************************************************************************************************/
+
+/*************************************************************************************************/
+/*!
+ *  \brief      Get UART instance number from UART ID.
+ *
+ *  \param      id      UART ID.
+ *
+ *  \return     UART instance number.
+ */
+/*************************************************************************************************/
+static palUartCtrlBlk_t *palUartGetContext(PalUartId_t id)
+{
+    switch ((uint8_t)id)
+    {
+        case PAL_UART_ID_UCI:
+        case PAL_UART_ID_TERMINAL:
+            return &palUartCb[0];
+
+        case PAL_UART_ID_USER:
+            return &palUartCb[1];
+
+        default:
+            break;
+    }
+
+    return NULL;
+}
+
+/*************************************************************************************************/
+/*!
+ *  \brief  UART event handler.
+ *
+ *  \param  pEvent      UART event.
+ *  \param  pContext    Instance context.
+ */
+/*************************************************************************************************/
+
+/*************************************************************************************************/
+/*!
+ *  \brief      Initialize UART.
+ *
+ *  \param      id      UART ID.
+ *  \param      pCfg    Peripheral configuration.
+ */
+/*************************************************************************************************/
+void PalUartInit(PalUartId_t id, const PalUartConfig_t *pCfg)
+{
+    palUartCtrlBlk_t *pCtx = palUartGetContext(id);
+    PAL_UART_PARAM_CHECK(pCtx, pCtx != NULL);
+    PAL_UART_PARAM_CHECK(pCtx, pCfg != NULL);
+
+    pCtx->config = *pCfg;
+
+    /* Resolve instance. */
+    switch (pCtx - palUartCb)
+    {
+        case 0:
+            break;
+        default:
+            break;
+    }
+
+    pCtx->state = PAL_UART_STATE_READY;
+}
+
+/*************************************************************************************************/
+/*!
+ *  \brief      De-Initialize UART.
+ *
+ *  \param      id      UART ID.
+ */
+/*************************************************************************************************/
+void PalUartDeInit(PalUartId_t id)
+{
+    palUartCtrlBlk_t *pCtx = palUartGetContext(id);
+    PAL_UART_PARAM_CHECK(pCtx, pCtx != NULL);
+    PAL_UART_PARAM_CHECK(pCtx, pCtx->state == PAL_UART_STATE_READY);
+
+    pCtx->state = PAL_UART_STATE_UNINIT;
+}
+
+/*************************************************************************************************/
+/*!
+ *  \brief      Get the current state.
+ *
+ *  \param      id      UART id.
+ *
+ *  \return      Current state.
+ */
+/*************************************************************************************************/
+PalUartState_t PalUartGetState(PalUartId_t id)
+{
+    palUartCtrlBlk_t *pCtx = palUartGetContext(id);
+
+    if (pCtx == NULL)
+    {
+        return PAL_UART_STATE_ERROR;
+    }
+
+    return pCtx->state;
+}
+
+/*************************************************************************************************/
+/*!
+ *  \brief      Read data from Rx FIFO.
+ *
+ *  \param      id      UART ID.
+ *  \param      pData   Read buffer.
+ *  \param      len     Number of bytes to read.
+ */
+/*************************************************************************************************/
+void PalUartReadData(PalUartId_t id, uint8_t *pData, uint16_t len)
+{
+    palUartCtrlBlk_t *pCtx = palUartGetContext(id);
+    PAL_UART_PARAM_CHECK(pCtx, pCtx != NULL);
+    PAL_UART_PARAM_CHECK(pCtx, pCtx->state != PAL_UART_STATE_UNINIT);
+    PAL_UART_PARAM_CHECK(pCtx, pData != NULL);
+    PAL_UART_PARAM_CHECK(pCtx, len > 0);
+
+    pCtx->state = PAL_UART_STATE_BUSY;
+
+    PAL_UART_PARAM_CHECK(pCtx, err == NRFX_SUCCESS);
+}
+
+/*************************************************************************************************/
+/*!
+ *  \brief      Write data to Tx FIFO.
+ *
+ *  \param      id      UART ID.
+ *  \param      pData   Write buffer.
+ *  \param      len     Number of bytes to write.
+ */
+/*************************************************************************************************/
+void PalUartWriteData(PalUartId_t id, const uint8_t *pData, uint16_t len)
+{
+    palUartCtrlBlk_t *pCtx = palUartGetContext(id);
+    PAL_UART_PARAM_CHECK(pCtx, pCtx != NULL);
+    PAL_UART_PARAM_CHECK(pCtx, pCtx->state != PAL_UART_STATE_UNINIT);
+    PAL_UART_PARAM_CHECK(pCtx, pData != NULL);
+    PAL_UART_PARAM_CHECK(pCtx, len > 0);
+
+    pCtx->state = PAL_UART_STATE_BUSY;
+
+    PAL_UART_PARAM_CHECK(pCtx, err == NRFX_SUCCESS);
+}

--
Gitblit v1.9.3