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_sys.c |  219 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 219 insertions(+), 0 deletions(-)

diff --git a/keil/include/components/wsf/sources/platform/pal_sys.c b/keil/include/components/wsf/sources/platform/pal_sys.c
new file mode 100644
index 0000000..0fd555e
--- /dev/null
+++ b/keil/include/components/wsf/sources/platform/pal_sys.c
@@ -0,0 +1,219 @@
+/*************************************************************************************************/
+/*!
+ *  \file
+ *
+ *  \brief  System hooks.
+ *
+ *  Copyright (c) 2013-2019 Arm Ltd. All Rights Reserved.
+ *
+ *  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_sys.h"
+#include "pal_uart.h"
+
+#include "mk_common.h"
+#include "mk_misc.h"
+
+/**************************************************************************************************
+  Macros
+**************************************************************************************************/
+
+/*! \brief      Starting memory location of free memory. */
+#define FREE_MEM_START ((uint8_t *)palSysFreeMem)
+
+/**************************************************************************************************
+  Global Variables
+**************************************************************************************************/
+
+/*! \brief      Free memory for pool buffers (align to word boundary). */
+static uint32_t palSysFreeMem[FREE_MEM_SIZE / sizeof(uint32_t)];
+
+uint8_t *SystemHeapStart = (uint8_t *)palSysFreeMem;
+uint32_t SystemHeapSize = FREE_MEM_SIZE;
+
+/*! \brief      Number of assertions. */
+static uint32_t palSysAssertCount;
+
+/*! \brief      Trap enabled flag. */
+static volatile bool_t PalSysAssertTrapEnable;
+
+static volatile uint32_t palSysBusyCount;
+
+/**************************************************************************************************
+  Functions
+**************************************************************************************************/
+
+/*************************************************************************************************/
+/*!
+ *  \brief  Enter a critical section.
+ */
+/*************************************************************************************************/
+uint32_t PalEnterCs(void)
+{
+    return int_lock();
+}
+
+/*************************************************************************************************/
+/*!
+ *  \brief  Exit a critical section.
+ */
+/*************************************************************************************************/
+void PalExitCs(uint32_t lock)
+{
+    int_unlock(lock);
+}
+
+/*************************************************************************************************/
+/*!
+ *  \brief      Common platform initialization.
+ */
+/*************************************************************************************************/
+void PalSysInit(void)
+{
+    palSysAssertCount = 0;
+    PalSysAssertTrapEnable = TRUE;
+    palSysBusyCount = 0;
+
+#ifdef DEBUG
+    /* Reset free memory. */
+    memset(SystemHeapStart, 0, SystemHeapSize);
+#endif
+}
+
+/*************************************************************************************************/
+/*!
+ *  \brief      System fault trap.
+ */
+/*************************************************************************************************/
+void PalSysAssertTrap(void)
+{
+    palSysAssertCount++;
+
+    while (PalSysAssertTrapEnable)
+    {
+    }
+}
+
+/*************************************************************************************************/
+/*!
+ *  \brief      Set system trap.
+ *
+ *  \param      enable    Enable assert trap or not.
+ */
+/*************************************************************************************************/
+void PalSysSetTrap(bool_t enable)
+{
+    PalSysAssertTrapEnable = enable;
+}
+
+/*************************************************************************************************/
+/*!
+ *  \brief      Get assert count.
+ */
+/*************************************************************************************************/
+uint32_t PalSysGetAssertCount(void)
+{
+    return palSysAssertCount;
+}
+
+/*************************************************************************************************/
+/*!
+ *  \brief      Count stack usage.
+ *
+ *  \return     Number of bytes used by the stack.
+ */
+/*************************************************************************************************/
+uint32_t PalSysGetStackUsage(void)
+{
+    /* Not available; stub routine. */
+    return 0;
+}
+
+/*************************************************************************************************/
+/*!
+ *  \brief      System sleep.
+ */
+/*************************************************************************************************/
+void PalSysSleep(void)
+{
+    /* Clock management for low power mode. */
+
+    /* CPU sleep. */
+    __WFI();
+}
+
+/*************************************************************************************************/
+/*!
+ *  \brief      Check if system is busy.
+ *
+ *  \return     TRUE if system is busy.
+ */
+/*************************************************************************************************/
+bool_t PalSysIsBusy(void)
+{
+    bool_t sysIsBusy = FALSE;
+    uint32_t lock = PalEnterCs();
+    sysIsBusy = ((palSysBusyCount == 0) ? FALSE : TRUE);
+    PalExitCs(lock);
+    return sysIsBusy;
+}
+
+/*************************************************************************************************/
+/*!
+ *  \brief      Set system busy.
+ *
+ *  \return     none.
+ */
+/*************************************************************************************************/
+void PalSysSetBusy(void)
+{
+    uint32_t lock = PalEnterCs();
+    palSysBusyCount++;
+    PalExitCs(lock);
+}
+
+/*************************************************************************************************/
+/*!
+ *  \brief      Set system idle.
+ */
+/*************************************************************************************************/
+void PalSysSetIdle(void)
+{
+    uint32_t lock = PalEnterCs();
+    if (palSysBusyCount)
+    {
+        palSysBusyCount--;
+    }
+    PalExitCs(lock);
+}
+
+/*************************************************************************************************/
+/*!
+ *  \brief  Get the Systick elapse time in current tick period.
+ *
+ *  \return Elapse time in current tick period.
+ */
+/*************************************************************************************************/
+uint32_t PalSysTickElapse(void)
+{
+    return sys_tick_elapse_ms();
+}
+
+uint32_t PalSysTickGet(void)
+{
+    return sys_tick_get();
+}

--
Gitblit v1.9.3