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