From e328ebef585cea2351b37117b2d5ac4978ecd3c0 Mon Sep 17 00:00:00 2001 From: WXK <287788329@qq.com> Date: 星期二, 11 二月 2025 14:57:23 +0800 Subject: [PATCH] 1111111 --- keil/include/components/wsf/sources/port/baremetal/wsf_os.c | 35 +++++++++++------------------------ 1 files changed, 11 insertions(+), 24 deletions(-) diff --git a/keil/include/components/wsf/sources/port/baremetal/wsf_os.c b/keil/include/components/wsf/sources/port/baremetal/wsf_os.c index 0721ab2..5ddfc30 100644 --- a/keil/include/components/wsf/sources/port/baremetal/wsf_os.c +++ b/keil/include/components/wsf/sources/port/baremetal/wsf_os.c @@ -34,6 +34,7 @@ #include "wsf_buf.h" #include "wsf_msg.h" #include "wsf_cs.h" +#include "mk_power.h" #if defined(RTOS_CMSIS_RTX) && (RTOS_CMSIS_RTX == 1) #include "cmsis_os2.h" @@ -110,26 +111,6 @@ /*************************************************************************************************/ /*! - * \brief Lock task scheduling. - */ -/*************************************************************************************************/ -uint32_t WsfTaskLock(void) -{ - return PalEnterCs(); -} - -/*************************************************************************************************/ -/*! - * \brief Unock task scheduling. - */ -/*************************************************************************************************/ -void WsfTaskUnlock(uint32_t lock) -{ - PalExitCs(lock); -} - -/*************************************************************************************************/ -/*! * \brief Set an event for an event handler. * * \param handlerId Handler ID. @@ -147,6 +128,7 @@ uint32_t lock = WSF_CS_ENTER(); wsfOs.task.handlerEventMask[WSF_HANDLER_FROM_ID(handlerId)] |= event; wsfOs.task.taskEventMask |= WSF_HANDLER_EVENT; + power_mode_request(POWER_UNIT_OS, POWER_MODE_ACTIVE); WSF_CS_EXIT(lock); /* set event in OS */ @@ -169,6 +151,7 @@ uint32_t lock = WSF_CS_ENTER(); wsfOs.task.taskEventMask |= event; + power_mode_request(POWER_UNIT_OS, POWER_MODE_ACTIVE); WSF_CS_EXIT(lock); /* set event in OS */ @@ -264,6 +247,7 @@ uint32_t lock = WSF_CS_ENTER(); taskEventMask = pTask->taskEventMask; pTask->taskEventMask = 0; + power_mode_clear(POWER_UNIT_OS); WSF_CS_EXIT(lock); if (taskEventMask & WSF_MSG_QUEUE_EVENT) @@ -281,11 +265,14 @@ if (taskEventMask & WSF_TIMER_EVENT) { /* service timers */ - while ((pTimer = WsfTimerServiceExpired(0)) != NULL) + while ((pTimer = WsfTimerServiceExpired()) != NULL) { - WSF_ASSERT(pTimer->handlerId < WSF_MAX_HANDLERS); - WSF_OS_SET_ACTIVE_HANDLER_ID(pTimer->handlerId); - (*pTask->handler[pTimer->handlerId])(0, &pTimer->msg); + if (pTimer->msg.event != PHY_PD_TIMER_EVENT) + { + WSF_ASSERT(pTimer->handlerId < WSF_MAX_HANDLERS); + WSF_OS_SET_ACTIVE_HANDLER_ID(pTimer->handlerId); + (*pTask->handler[pTimer->handlerId])(0, &pTimer->msg); + } } } -- Gitblit v1.9.3