From 52174ec453d3fb6a21b802807051cdf4f596fb02 Mon Sep 17 00:00:00 2001 From: EricB-ADI <122300463+EricB-ADI@users.noreply.github.com> Date: Fri, 12 Apr 2024 13:25:31 -0500 Subject: [PATCH] fix(BLE): FreeRTOS-tickless (#985) Co-authored-by: EricB-ADI --- .../BLE_FreeRTOS/freertos_tickless.c | 19 +++++++++--------- .../BLE_FreeRTOS/freertos_tickless.c | 17 ++++++++-------- .../BLE_FreeRTOS/freertos_tickless.c | 15 +++++++------- Libraries/BlePhy/MAX32655/libphy.a | Bin 526970 -> 527432 bytes Libraries/Cordio/platform/include/pal_bb.h | 10 +++++++++ 5 files changed, 36 insertions(+), 25 deletions(-) diff --git a/Examples/MAX32655/Bluetooth/BLE_FreeRTOS/freertos_tickless.c b/Examples/MAX32655/Bluetooth/BLE_FreeRTOS/freertos_tickless.c index 6113790add..2a241b2791 100644 --- a/Examples/MAX32655/Bluetooth/BLE_FreeRTOS/freertos_tickless.c +++ b/Examples/MAX32655/Bluetooth/BLE_FreeRTOS/freertos_tickless.c @@ -202,25 +202,26 @@ void vPortSuppressTicksAndSleep(TickType_t xExpectedIdleTime) if (schTimerActive) { /* Stop the BLE scheduler timer */ PalTimerStop(); - - /* Shutdown BB hardware */ - PalBbDisable(); } + /* + Shutdown BB hardware + */ + + PalBbForceDisable(); + LED_Off(SLEEP_LED); LED_Off(DEEPSLEEP_LED); MXC_LP_EnterStandbyMode(); - LED_On(DEEPSLEEP_LED); LED_On(SLEEP_LED); - if (schTimerActive) { - /* Enable and restore the BB hardware */ - PalBbEnable(); - - PalBbRestore(); + /* Enable and restore the BB hardware */ + PalBbEnable(); + PalBbRestore(); + if (schTimerActive) { /* Restore the BB counter */ MXC_WUT_RestoreBBClock(MXC_WUT0, BB_CLK_RATE_HZ); diff --git a/Examples/MAX32665/Bluetooth/BLE_FreeRTOS/freertos_tickless.c b/Examples/MAX32665/Bluetooth/BLE_FreeRTOS/freertos_tickless.c index 7af8f83779..6d09bf46b8 100644 --- a/Examples/MAX32665/Bluetooth/BLE_FreeRTOS/freertos_tickless.c +++ b/Examples/MAX32665/Bluetooth/BLE_FreeRTOS/freertos_tickless.c @@ -41,6 +41,7 @@ #include "pal_timer.h" #include "pal_uart.h" #include "pal_bb.h" +#include "wsf_trace.h" #define MAX_WUT_TICKS (configRTC_TICK_RATE_HZ) /* Maximum deep sleep time, units of 32 kHz ticks */ #define MIN_WUT_TICKS 100 /* Minimum deep sleep time, units of 32 kHz ticks */ @@ -239,6 +240,7 @@ void vPortSuppressTicksAndSleep(TickType_t xExpectedIdleTime) } /* Disable SysTick */ + SysTick->CTRL &= ~(SysTick_CTRL_ENABLE_Msk); /* Enable wakeup from WUT */ @@ -290,11 +292,11 @@ void vPortSuppressTicksAndSleep(TickType_t xExpectedIdleTime) if (schTimerActive) { /* Stop the BLE scheduler timer */ PalTimerStop(); - - /* Shutdown BB hardware */ - PalBbDisable(); } + /* Shutdown BB hardware */ + PalBbDisable(); + LED_Off(SLEEP_LED); LED_Off(DEEPSLEEP_LED); @@ -303,12 +305,11 @@ void vPortSuppressTicksAndSleep(TickType_t xExpectedIdleTime) LED_On(DEEPSLEEP_LED); LED_On(SLEEP_LED); - if (schTimerActive) { - /* Enable and restore the BB hardware */ - PalBbEnable(); - - PalBbRestore(); + /* Enable and restore the BB hardware */ + PalBbEnable(); + PalBbRestore(); + if (schTimerActive) { /* Restore the BB counter */ MXC_WUT_RestoreBBClock(BB_CLK_RATE_HZ); diff --git a/Examples/MAX32690/Bluetooth/BLE_FreeRTOS/freertos_tickless.c b/Examples/MAX32690/Bluetooth/BLE_FreeRTOS/freertos_tickless.c index cc9813c097..7f8b864d75 100644 --- a/Examples/MAX32690/Bluetooth/BLE_FreeRTOS/freertos_tickless.c +++ b/Examples/MAX32690/Bluetooth/BLE_FreeRTOS/freertos_tickless.c @@ -202,11 +202,11 @@ void vPortSuppressTicksAndSleep(TickType_t xExpectedIdleTime) if (schTimerActive) { /* Stop the BLE scheduler timer */ PalTimerStop(); - - /* Shutdown BB hardware */ - PalBbDisable(); } + /* Shutdown BB hardware */ + PalBbDisable(); + LED_Off(SLEEP_LED); LED_Off(DEEPSLEEP_LED); @@ -215,12 +215,11 @@ void vPortSuppressTicksAndSleep(TickType_t xExpectedIdleTime) LED_On(DEEPSLEEP_LED); LED_On(SLEEP_LED); - if (schTimerActive) { - /* Enable and restore the BB hardware */ - PalBbEnable(); - - PalBbRestore(); + /* Enable and restore the BB hardware */ + PalBbEnable(); + PalBbRestore(); + if (schTimerActive) { /* Restore the BB counter */ MXC_WUT_RestoreBBClock(BB_CLK_RATE_HZ); diff --git a/Libraries/BlePhy/MAX32655/libphy.a b/Libraries/BlePhy/MAX32655/libphy.a index d3868f7a572f11e6dd2c90a8e1f3de64cc18986d..3b6161769fbfc4d30587537d5360342b57419c0d 100644 GIT binary patch delta 18157 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 diff --git a/Libraries/Cordio/platform/include/pal_bb.h b/Libraries/Cordio/platform/include/pal_bb.h index e6e8d26507..0f7008e74d 100644 --- a/Libraries/Cordio/platform/include/pal_bb.h +++ b/Libraries/Cordio/platform/include/pal_bb.h @@ -202,6 +202,16 @@ void PalBbEnable(void); /*************************************************************************************************/ void PalBbDisable(void); +/*************************************************************************************************/ +/*! + * \brief Force disable the BB hardware irrespective of reference count state. + * + * This routine signals the BB hardware to go into low power (disable power and clocks) after all + * BB operations have been disabled. + */ +/*************************************************************************************************/ +void PalBbForceDisable(void); + /*************************************************************************************************/ /*! * \brief Load BB timing configuration.