diff --git a/lib/stm32wba/BLE_TransparentMode/Core/Inc/app_conf.h b/lib/stm32wba/BLE_TransparentMode/Core/Inc/app_conf.h index c737b7f5f..87485e8f8 100644 --- a/lib/stm32wba/BLE_TransparentMode/Core/Inc/app_conf.h +++ b/lib/stm32wba/BLE_TransparentMode/Core/Inc/app_conf.h @@ -155,12 +155,13 @@ * * When CFG_LPM_LEVEL is set to: * - 0 : Low Power Mode is not activated, RUN mode will be used. - * - 1 : Low power active, the one selected with CFG_LPM_STDBY_SUPPORTED - * - 2 : In addition, force to disable modules to reach lowest power figures. + * - 1 : Low power active, mode selected with CFG_LPM_STDBY_SUPPORTED + * - 2 : In addition log and debug are disabled to reach lowest power figures. * * When CFG_LPM_STDBY_SUPPORTED is set to: + * - 2 : Stop mode 2 is used as low power mode (if supported by target) * - 1 : Standby is used as low power mode. - * - 0 : Standby is not used, so stop mode 1 is used as low power mode. + * - 0 : Stop mode 1 is used as low power mode. * ******************************************************************************/ #define CFG_LPM_LEVEL (1) @@ -214,12 +215,10 @@ typedef enum /** * Enable or disable LOG over UART in the application. * Low power level(CFG_LPM_LEVEL) above 1 will disable LOG. - * Standby low power mode(CFG_LPM_STDBY_SUPPORTED) will disable LOG. + * Standby low power mode(CFG_LPM_STDBY_SUPPORTED) above 0 will disable LOG. */ #define CFG_LOG_SUPPORTED (0U) -/* Usart used by LOG */ - /* Configure Log display settings */ #define CFG_LOG_INSERT_COLOR_INSIDE_THE_TRACE (0U) #define CFG_LOG_INSERT_TIME_STAMP_INSIDE_THE_TRACE (0U) @@ -238,6 +237,18 @@ typedef enum /****************************************************************************** * Configure Log level for Application + * + * APPLI_CONFIG_LOG_LEVEL can be any value of the Log_Verbose_Level_t enum. + * + * APPLI_CONFIG_LOG_REGION can either be : + * - LOG_REGION_ALL_REGIONS to enable all regions + * or + * - One or several specific regions (any value except LOG_REGION_ALL_REGIONS) + * from the Log_Region_t enum and matching the mask value. + * + * For example, to enable both LOG_REGION_BLE and LOG_REGION_APP, + * the value assigned to the define is : + * (1U << LOG_REGION_BLE | 1U << LOG_REGION_APP) ******************************************************************************/ #define APPLI_CONFIG_LOG_LEVEL LOG_VERBOSE_INFO #define APPLI_CONFIG_LOG_REGION (LOG_REGION_ALL_REGIONS) @@ -267,8 +278,8 @@ typedef enum CFG_TASK_BLE_HOST, CFG_TASK_AMM, CFG_TASK_BPKA, - CFG_TASK_FLASH_MANAGER, CFG_TASK_BLE_TIMER_BCKGND, + CFG_TASK_FLASH_MANAGER, /* USER CODE BEGIN CFG_Task_Id_t */ TASK_BUTTON_1, TASK_BUTTON_2, @@ -364,12 +375,6 @@ typedef enum /****************************************************************************** * HW RADIO configuration ******************************************************************************/ -/* Do not modify - must be 1 */ -#define USE_RADIO_LOW_ISR (1) - -/* Do not modify - must be 1 */ -#define NEXT_EVENT_SCHEDULING_FROM_ISR (1) - /* Link Layer uses temperature based calibration (0 --> NO ; 1 --> YES) */ #define USE_TEMPERATURE_BASED_RADIO_CALIBRATION (0) @@ -377,13 +382,8 @@ typedef enum #define RADIO_INTR_PRIO_HIGH (0) /* 2.4GHz RADIO interrupt priority when radio is Active */ #define RADIO_INTR_PRIO_LOW (5) /* 2.4GHz RADIO interrupt priority when radio is Not Active - Sleep Timer Only */ -#if (USE_RADIO_LOW_ISR == 1) #define RADIO_SW_LOW_INTR_NUM HASH_IRQn /* Selected interrupt vector for 2.4GHz RADIO low ISR */ #define RADIO_SW_LOW_INTR_PRIO (14) /* 2.4GHz RADIO low ISR priority */ -#endif /* USE_RADIO_LOW_ISR */ - -/* Link Layer supported number of antennas */ -#define RADIO_NUM_OF_ANTENNAS (4) #define RCC_INTR_PRIO (1) /* HSERDY and PLL1RDY */ @@ -397,12 +397,10 @@ typedef enum #define CFG_EXTERNAL_PA_ENABLE (0) #define CFG_BLE_AOA_AOD_ENABLE (0) +#define CFG_RADIO_NUM_OF_ANTENNAS (8) /* Link Layer supported number of antennas */ -/* Custom LSE sleep clock accuracy to use if both conditions are met: - * - LSE is selected as Link Layer sleep clock source - * - the LSE used is different from the default one. - */ -#define CFG_RADIO_LSE_SLEEP_TIMER_CUSTOM_SCA_RANGE (0) +/* Radio sleep clock LSE accuracy configuration */ +#define CFG_RADIO_LSE_SLEEP_TIMER_CUSTOM_SCA_RANGE (0x00) /* USER CODE BEGIN Radio_Configuration */ @@ -472,12 +470,12 @@ typedef enum #endif /* CFG_DEBUGGER_LEVEL */ #endif /* CFG_LPM_LEVEL */ -#if (CFG_LPM_STDBY_SUPPORTED == 1) +#if (CFG_LPM_STDBY_SUPPORTED != 0) && (CFG_LPM_LEVEL != 0) #if CFG_LOG_SUPPORTED #undef CFG_LOG_SUPPORTED #define CFG_LOG_SUPPORTED (0) #endif /* CFG_LOG_SUPPORTED */ -#endif /* CFG_LPM_STDBY_SUPPORTED */ +#endif /* (CFG_LPM_STDBY_SUPPORTED > 0) && (CFG_LPM_LEVEL != 0) */ /* USER CODE BEGIN Defines_2 */ diff --git a/lib/stm32wba/BLE_TransparentMode/STM32_WPAN/Target/linklayer_plat.c b/lib/stm32wba/BLE_TransparentMode/STM32_WPAN/Target/linklayer_plat.c index 74e699b50..e173c11f6 100644 --- a/lib/stm32wba/BLE_TransparentMode/STM32_WPAN/Target/linklayer_plat.c +++ b/lib/stm32wba/BLE_TransparentMode/STM32_WPAN/Target/linklayer_plat.c @@ -18,7 +18,7 @@ */ /* USER CODE END Header */ -#ifndef __ZEPHYR__ + #include "stm32wbaxx_hal.h" #include "stm32wbaxx_hal_conf.h" #include "stm32wbaxx_ll_rcc.h" @@ -31,10 +31,12 @@ #if (USE_TEMPERATURE_BASED_RADIO_CALIBRATION == 1) #include "adc_ctrl.h" #endif /* (USE_TEMPERATURE_BASED_RADIO_CALIBRATION == 1) */ - +#ifndef __ZEPHYR__ #if (CFG_LPM_LEVEL != 0) #include "stm32_lpm.h" +#include "stm32_lpm_if.h" #endif /* (CFG_LPM_LEVEL != 0) */ + /* USER CODE BEGIN Includes */ /* USER CODE END Includes */ @@ -78,7 +80,6 @@ void LINKLAYER_PLAT_ClockInit(void) /* Enable AHB5ENR peripheral clock (bus CLK) */ __HAL_RCC_RADIO_CLK_ENABLE(); } - #ifndef __ZEPHYR__ /** * @brief Link Layer active waiting loop. @@ -87,12 +88,12 @@ void LINKLAYER_PLAT_ClockInit(void) */ void LINKLAYER_PLAT_DelayUs(uint32_t delay) { -__IO register uint32_t Delay = delay * (SystemCoreClock / 1000000U); - do - { - __NOP(); - } - while (Delay --); + __IO register uint32_t Delay = delay * (SystemCoreClock / 1000000U); + do + { + __NOP(); + } + while (Delay --); } /** @@ -113,8 +114,12 @@ void LINKLAYER_PLAT_Assert(uint8_t condition) */ void LINKLAYER_PLAT_WaitHclkRdy(void) { - /* Wait on radio bus clock readiness */ - while(HAL_RCCEx_GetRadioBusClockReadiness() != RCC_RADIO_BUS_CLOCK_READY); + /* Wait on radio bus clock readiness if it has been turned of */ + if (AHB5_SwitchedOff == 1) + { + AHB5_SwitchedOff = 0; + while (radio_sleep_timer_val == ll_intf_cmn_get_slptmr_value()); + } } /** @@ -470,16 +475,15 @@ void LINKLAYER_PLAT_StopRadioEvt(void) */ void LINKLAYER_PLAT_RCOStartClbr(void) { -#if (CFG_SCM_SUPPORTED == 1) #if (CFG_LPM_LEVEL != 0) -#if (CFG_LPM_STDBY_SUPPORTED == 1) - UTIL_LPM_SetOffMode(1U << CFG_LPM_LL_HW_RCO_CLBR, UTIL_LPM_DISABLE); -#endif /* (CFG_LPM_STDBY_SUPPORTED == 1) */ + PWR_DisableSleepMode(); + /* Disabling stop mode prevents also from entering in standby */ UTIL_LPM_SetStopMode(1U << CFG_LPM_LL_HW_RCO_CLBR, UTIL_LPM_DISABLE); #endif /* (CFG_LPM_LEVEL != 0) */ +#if (CFG_SCM_SUPPORTED == 1) scm_setsystemclock(SCM_USER_LL_HW_RCO_CLBR, HSE_32MHZ); while (LL_PWR_IsActiveFlag_VOS() == 0); -#endif /* CFG_SCM_SUPPORTED */ +#endif /* (CFG_SCM_SUPPORTED == 1) */ } /** @@ -489,16 +493,14 @@ void LINKLAYER_PLAT_RCOStartClbr(void) */ void LINKLAYER_PLAT_RCOStopClbr(void) { -#if (CFG_SCM_SUPPORTED == 1) #if (CFG_LPM_LEVEL != 0) -#if (CFG_LPM_STDBY_SUPPORTED == 1) - UTIL_LPM_SetOffMode(1U << CFG_LPM_LL_HW_RCO_CLBR, UTIL_LPM_ENABLE); -#endif /* (CFG_LPM_STDBY_SUPPORTED == 1) */ + PWR_EnableSleepMode(); UTIL_LPM_SetStopMode(1U << CFG_LPM_LL_HW_RCO_CLBR, UTIL_LPM_ENABLE); #endif /* (CFG_LPM_LEVEL != 0) */ +#if (CFG_SCM_SUPPORTED == 1) scm_setsystemclock(SCM_USER_LL_HW_RCO_CLBR, HSE_16MHZ); while (LL_PWR_IsActiveFlag_VOS() == 0); -#endif /* CFG_SCM_SUPPORTED */ +#endif /* (CFG_SCM_SUPPORTED == 1) */ } /** diff --git a/lib/stm32wba/BLE_TransparentMode/STM32_WPAN/Target/ll_sys_if.c b/lib/stm32wba/BLE_TransparentMode/STM32_WPAN/Target/ll_sys_if.c index 0ba4ff6fd..2a6e42a6d 100644 --- a/lib/stm32wba/BLE_TransparentMode/STM32_WPAN/Target/ll_sys_if.c +++ b/lib/stm32wba/BLE_TransparentMode/STM32_WPAN/Target/ll_sys_if.c @@ -20,12 +20,17 @@ #include #include "ll_intf.h" #include "ll_intf_cmn.h" +#include "ll_sys.h" +#include "ll_sys_if.h" #include "utilities_common.h" #if (USE_TEMPERATURE_BASED_RADIO_CALIBRATION == 1) #include "temp_measurement.h" #endif /* (USE_TEMPERATURE_BASED_RADIO_CALIBRATION == 1) */ /* Private defines -----------------------------------------------------------*/ +/* Radio event scheduling method - must be set at 1 */ +#define USE_RADIO_LOW_ISR (1) +#define NEXT_EVENT_SCHEDULING_FROM_ISR (1) /* USER CODE BEGIN PD */ @@ -57,9 +62,7 @@ static void ll_sys_bg_temperature_measurement_init(void); #endif /* USE_TEMPERATURE_BASED_RADIO_CALIBRATION */ static void ll_sys_sleep_clock_source_selection(void); -#if (CFG_RADIO_LSE_SLEEP_TIMER_CUSTOM_SCA_RANGE == 0) static uint8_t ll_sys_BLE_sleep_clock_accuracy_selection(void); -#endif /* CFG_RADIO_LSE_SLEEP_TIMER_CUSTOM_SCA_RANGE */ void ll_sys_reset(void); /* USER CODE BEGIN PFP */ @@ -82,18 +85,28 @@ void ll_sys_reset(void); */ void ll_sys_bg_process_init(void) { - /* Register Link Layer task */ - UTIL_SEQ_RegTask(1U << CFG_TASK_LINK_LAYER, UTIL_SEQ_RFU, ll_sys_bg_process); + /* Register Link Layer task */ + UTIL_SEQ_RegTask(1U << CFG_TASK_LINK_LAYER, UTIL_SEQ_RFU, ll_sys_bg_process); } +/** + * @brief Link Layer background process next iteration scheduling + * @param None + * @retval None + */ void ll_sys_schedule_bg_process(void) { - UTIL_SEQ_SetTask(1U << CFG_TASK_LINK_LAYER, TASK_PRIO_LINK_LAYER); + UTIL_SEQ_SetTask(1U << CFG_TASK_LINK_LAYER, TASK_PRIO_LINK_LAYER); } +/** + * @brief Link Layer background process next iteration scheduling from ISR + * @param None + * @retval None + */ void ll_sys_schedule_bg_process_isr(void) { - UTIL_SEQ_SetTask(1U << CFG_TASK_LINK_LAYER, TASK_PRIO_LINK_LAYER); + UTIL_SEQ_SetTask(1U << CFG_TASK_LINK_LAYER, TASK_PRIO_LINK_LAYER); } #endif @@ -113,6 +126,8 @@ void ll_sys_config_params(void) * - Next event is scheduled from ISR. */ ll_intf_cmn_config_ll_ctx_params(USE_RADIO_LOW_ISR, NEXT_EVENT_SCHEDULING_FROM_ISR); + /* Apply the selected link layer sleep timer source */ + ll_sys_sleep_clock_source_selection(); #ifndef __ZEPHYR__ /* USER CODE BEGIN ll_sys_config_params_1 */ @@ -145,8 +160,8 @@ void ll_sys_config_params(void) */ void ll_sys_bg_temperature_measurement_init(void) { - /* Register Temperature Measurement task */ - UTIL_SEQ_RegTask(1U << CFG_TASK_TEMP_MEAS, UTIL_SEQ_RFU, TEMPMEAS_RequestTemperatureMeasurement); + /* Register Temperature Measurement task */ + UTIL_SEQ_RegTask(1U << CFG_TASK_TEMP_MEAS, UTIL_SEQ_RFU, TEMPMEAS_RequestTemperatureMeasurement); } /** @@ -156,101 +171,138 @@ void ll_sys_bg_temperature_measurement_init(void) */ void ll_sys_bg_temperature_measurement(void) { - static uint8_t initial_temperature_acquisition = 0; - - if (initial_temperature_acquisition == 0) { - TEMPMEAS_RequestTemperatureMeasurement(); - initial_temperature_acquisition = 1; - } else { - UTIL_SEQ_SetTask(1U << CFG_TASK_TEMP_MEAS, CFG_SEQ_PRIO_0); - } + static uint8_t initial_temperature_acquisition = 0; + + if(initial_temperature_acquisition == 0) + { + TEMPMEAS_RequestTemperatureMeasurement(); + initial_temperature_acquisition = 1; + } + else + { + UTIL_SEQ_SetTask(1U << CFG_TASK_TEMP_MEAS, CFG_SEQ_PRIO_0); + } } + #endif /* USE_TEMPERATURE_BASED_RADIO_CALIBRATION */ #endif -#if (CFG_RADIO_LSE_SLEEP_TIMER_CUSTOM_SCA_RANGE == 0) uint8_t ll_sys_BLE_sleep_clock_accuracy_selection(void) { - uint8_t BLE_sleep_clock_accuracy = 0; - uint32_t RevID = LL_DBGMCU_GetRevisionID(); - uint32_t linklayer_slp_clk_src = LL_RCC_RADIO_GetSleepTimerClockSource(); + uint8_t BLE_sleep_clock_accuracy = 0; +#if (CFG_RADIO_LSE_SLEEP_TIMER_CUSTOM_SCA_RANGE == 0) + uint32_t RevID = LL_DBGMCU_GetRevisionID(); +#endif + uint32_t linklayer_slp_clk_src = LL_RCC_RADIO_GetSleepTimerClockSource(); - if (linklayer_slp_clk_src == LL_RCC_RADIOSLEEPSOURCE_LSE) { - /* LSE selected as Link Layer sleep clock source. */ - /* Sleep clock accuracy is different regarding the WBA device ID and revision */ + if(linklayer_slp_clk_src == LL_RCC_RADIOSLEEPSOURCE_LSE) + { + /* LSE selected as Link Layer sleep clock source. + Sleep clock accuracy is different regarding the WBA device ID and revision + */ +#if (CFG_RADIO_LSE_SLEEP_TIMER_CUSTOM_SCA_RANGE == 0) #if defined(STM32WBA52xx) || defined(STM32WBA54xx) || defined(STM32WBA55xx) - if (RevID == REV_ID_A) { - BLE_sleep_clock_accuracy = STM32WBA5x_REV_ID_A_SCA_RANGE; - } else if (RevID == REV_ID_B) { - BLE_sleep_clock_accuracy = STM32WBA5x_REV_ID_B_SCA_RANGE; - } else { - /* Revision ID not supported, default value of 500ppm applied */ - BLE_sleep_clock_accuracy = STM32WBA5x_DEFAULT_SCA_RANGE; - } + if(RevID == REV_ID_A) + { + BLE_sleep_clock_accuracy = STM32WBA5x_REV_ID_A_SCA_RANGE; + } + else if(RevID == REV_ID_B) + { + BLE_sleep_clock_accuracy = STM32WBA5x_REV_ID_B_SCA_RANGE; + } + else + { + /* Revision ID not supported, default value of 500ppm applied */ + BLE_sleep_clock_accuracy = STM32WBA5x_DEFAULT_SCA_RANGE; + } +#elif defined(STM32WBA65xx) + BLE_sleep_clock_accuracy = STM32WBA6x_SCA_RANGE; + UNUSED(RevID); #else - UNUSED(RevID); -#endif - /* defined(STM32WBA52xx) || defined(STM32WBA54xx) || defined(STM32WBA55xx) */ - } else { - /* LSE is not the Link Layer sleep clock source, */ - /* sleep clock accuracy default value is 500 ppm */ - BLE_sleep_clock_accuracy = STM32WBA5x_DEFAULT_SCA_RANGE; - } - - return BLE_sleep_clock_accuracy; -} + UNUSED(RevID); +#endif /* defined(STM32WBA52xx) || defined(STM32WBA54xx) || defined(STM32WBA55xx) */ +#else /* CFG_RADIO_LSE_SLEEP_TIMER_CUSTOM_SCA_RANGE */ + BLE_sleep_clock_accuracy = CFG_RADIO_LSE_SLEEP_TIMER_CUSTOM_SCA_RANGE; #endif /* CFG_RADIO_LSE_SLEEP_TIMER_CUSTOM_SCA_RANGE */ + } + else + { + /* LSE is not the Link Layer sleep clock source, sleep clock accurcay default value is 500 ppm */ + BLE_sleep_clock_accuracy = STM32WBA5x_DEFAULT_SCA_RANGE; + } + + return BLE_sleep_clock_accuracy; +} void ll_sys_sleep_clock_source_selection(void) { - uint16_t freq_value = 0; - uint32_t linklayer_slp_clk_src = LL_RCC_RADIOSLEEPSOURCE_NONE; - - linklayer_slp_clk_src = LL_RCC_RADIO_GetSleepTimerClockSource(); - switch (linklayer_slp_clk_src) { - case LL_RCC_RADIOSLEEPSOURCE_LSE: - linklayer_slp_clk_src = RTC_SLPTMR; - break; - - case LL_RCC_RADIOSLEEPSOURCE_LSI: - linklayer_slp_clk_src = RCO_SLPTMR; - break; - - case LL_RCC_RADIOSLEEPSOURCE_HSE_DIV1000: - linklayer_slp_clk_src = CRYSTAL_OSCILLATOR_SLPTMR; - break; - - case LL_RCC_RADIOSLEEPSOURCE_NONE: - /* No Link Layer sleep clock source selected */ - assert_param(0); - break; - } - ll_intf_cmn_le_select_slp_clk_src((uint8_t)linklayer_slp_clk_src, &freq_value); + uint16_t freq_value = 0; + uint32_t linklayer_slp_clk_src = LL_RCC_RADIOSLEEPSOURCE_NONE; + + linklayer_slp_clk_src = LL_RCC_RADIO_GetSleepTimerClockSource(); + switch(linklayer_slp_clk_src) + { + case LL_RCC_RADIOSLEEPSOURCE_LSE: + linklayer_slp_clk_src = RTC_SLPTMR; + break; + + case LL_RCC_RADIOSLEEPSOURCE_LSI: + linklayer_slp_clk_src = RCO_SLPTMR; + break; + + case LL_RCC_RADIOSLEEPSOURCE_HSE_DIV1000: + linklayer_slp_clk_src = CRYSTAL_OSCILLATOR_SLPTMR; + break; + + case LL_RCC_RADIOSLEEPSOURCE_NONE: + /* No Link Layer sleep clock source selected */ + assert_param(0); + break; + } + ll_intf_cmn_le_select_slp_clk_src((uint8_t)linklayer_slp_clk_src, &freq_value); } void ll_sys_reset(void) { + uint8_t bsca = 0; + /* Link layer timings */ + uint8_t drift_time = DRIFT_TIME_DEFAULT; + uint8_t exec_time = EXEC_TIME_DEFAULT; + /* USER CODE BEGIN ll_sys_reset_0 */ /* USER CODE END ll_sys_reset_0 */ -#if (CFG_RADIO_LSE_SLEEP_TIMER_CUSTOM_SCA_RANGE == 0) - uint8_t bsca = 0; -#endif /* CFG_RADIO_LSE_SLEEP_TIMER_CUSTOM_SCA_RANGE */ - /* Apply the selected link layer sleep timer source */ - ll_sys_sleep_clock_source_selection(); + /* Apply the selected link layer sleep timer source */ + ll_sys_sleep_clock_source_selection(); + + /* Configure the link layer sleep clock accuracy */ + bsca = ll_sys_BLE_sleep_clock_accuracy_selection(); + ll_intf_le_set_sleep_clock_accuracy(bsca); + + /* Update link layer timings depending on selected configuration */ + if(LL_RCC_RADIO_GetSleepTimerClockSource() == LL_RCC_RADIOSLEEPSOURCE_LSI) + { + drift_time += DRIFT_TIME_EXTRA_LSI2; + exec_time += EXEC_TIME_EXTRA_LSI2; + } + else + { +#if defined(__GNUC__) && defined(DEBUG) + drift_time += DRIFT_TIME_EXTRA_GCC_DEBUG; + exec_time += EXEC_TIME_EXTRA_GCC_DEBUG; +#endif + } + + /* USER CODE BEGIN ll_sys_reset_1 */ - /* Configure the link layer sleep clock accuracy if different from the default one */ -#if (CFG_RADIO_LSE_SLEEP_TIMER_CUSTOM_SCA_RANGE != 0) - ll_intf_le_set_sleep_clock_accuracy(CFG_RADIO_LSE_SLEEP_TIMER_CUSTOM_SCA_RANGE); -#else - bsca = ll_sys_BLE_sleep_clock_accuracy_selection(); - if (bsca != STM32WBA5x_DEFAULT_SCA_RANGE) { - ll_intf_le_set_sleep_clock_accuracy(bsca); - } -#endif /* CFG_RADIO_LSE_SLEEP_TIMER_CUSTOM_SCA_RANGE */ + /* USER CODE END ll_sys_reset_1 */ -/* USER CODE BEGIN ll_sys_reset_1 */ + if((drift_time != DRIFT_TIME_DEFAULT) || (exec_time != EXEC_TIME_DEFAULT)) + { + ll_sys_config_BLE_schldr_timings(drift_time, exec_time); + } + /* USER CODE BEGIN ll_sys_reset_2 */ -/* USER CODE END ll_sys_reset_1 */ + /* USER CODE END ll_sys_reset_2 */ } diff --git a/lib/stm32wba/BLE_TransparentMode/STM32_WPAN/Target/ll_sys_if.h b/lib/stm32wba/BLE_TransparentMode/STM32_WPAN/Target/ll_sys_if.h new file mode 100644 index 000000000..3dfbab756 --- /dev/null +++ b/lib/stm32wba/BLE_TransparentMode/STM32_WPAN/Target/ll_sys_if.h @@ -0,0 +1,77 @@ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file ll_sys_if.h + * @author MCD Application Team + * @brief Header file for initiating system + ****************************************************************************** + * @attention + * + * Copyright (c) 2022 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ +/* USER CODE END Header */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef LL_SYS_IF_H +#define LL_SYS_IF_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ + +/* Private includes ----------------------------------------------------------*/ +/* USER CODE BEGIN Includes */ + +/* USER CODE END Includes */ + +/* Exported types ------------------------------------------------------------*/ +/* USER CODE BEGIN ET */ + +/* USER CODE END ET */ + +/* Exported constants --------------------------------------------------------*/ +#define DRIFT_TIME_DEFAULT (13) +#define DRIFT_TIME_EXTRA_LSI2 (9) +#define DRIFT_TIME_EXTRA_GCC_DEBUG (6) + +#define EXEC_TIME_DEFAULT (10) +#define EXEC_TIME_EXTRA_LSI2 (3) +#define EXEC_TIME_EXTRA_GCC_DEBUG (4) + +#define SCHDL_TIME_DEFAULT (20) +/* USER CODE BEGIN EC */ + +/* USER CODE END EC */ + +/* External variables --------------------------------------------------------*/ +/* USER CODE BEGIN EV */ + +/* USER CODE END EV */ + +/* Exported macro ------------------------------------------------------------*/ +/* USER CODE BEGIN EM */ + +/* USER CODE END EM */ + +/* Exported functions prototypes ---------------------------------------------*/ +#if (USE_TEMPERATURE_BASED_RADIO_CALIBRATION == 1) +void ll_sys_bg_temperature_measurement(void); +#endif /* USE_TEMPERATURE_BASED_RADIO_CALIBRATION */ +/* USER CODE BEGIN EFP */ + +/* USER CODE END EFP */ + +#ifdef __cplusplus +} +#endif + +#endif /*LL_SYS_IF_H */ diff --git a/lib/stm32wba/BLE_TransparentMode/System/Config/Debug_GPIO/debug_config.h b/lib/stm32wba/BLE_TransparentMode/System/Config/Debug_GPIO/debug_config.h index d212bc90e..e8a83448c 100644 --- a/lib/stm32wba/BLE_TransparentMode/System/Config/Debug_GPIO/debug_config.h +++ b/lib/stm32wba/BLE_TransparentMode/System/Config/Debug_GPIO/debug_config.h @@ -7,7 +7,7 @@ ****************************************************************************** * @attention * - * Copyright (c) 2022 STMicroelectronics. + * Copyright (c) 2023 STMicroelectronics. * All rights reserved. * * This software is licensed under terms that can be found in the LICENSE file @@ -86,6 +86,15 @@ extern "C" { #define USE_RT_DEBUG_LOW_POWER_STOP_MODE_ACTIVE (0) #define GPIO_DEBUG_LOW_POWER_STOP_MODE_ACTIVE {GPIOB, GPIO_PIN_3} +#define USE_RT_DEBUG_LOW_POWER_STOP2_MODE_ENTER (0) +#define GPIO_DEBUG_LOW_POWER_STOP2_MODE_ENTER {GPIOA, GPIO_PIN_0} + +#define USE_RT_DEBUG_LOW_POWER_STOP2_MODE_EXIT (0) +#define GPIO_DEBUG_LOW_POWER_STOP2_MODE_EXIT {GPIOA, GPIO_PIN_0} + +#define USE_RT_DEBUG_LOW_POWER_STOP2_MODE_ACTIVE (0) +#define GPIO_DEBUG_LOW_POWER_STOP2_MODE_ACTIVE {GPIOA, GPIO_PIN_0} + #define USE_RT_DEBUG_LOW_POWER_STANDBY_MODE_ENTER (0) #define GPIO_DEBUG_LOW_POWER_STANDBY_MODE_ENTER {GPIOA, GPIO_PIN_0} @@ -602,7 +611,7 @@ extern "C" { /* Application signal selection and GPIO assignment. CAN BE MODIFIED BY USER */ -#define USE_RT_DEBUG_APP_APPE_INIT (1) +#define USE_RT_DEBUG_APP_APPE_INIT (0) #define GPIO_DEBUG_APP_APPE_INIT {GPIOA, GPIO_PIN_0} /********************************/ @@ -772,7 +781,7 @@ extern "C" { #include "debug_signals.h" -#if(CFG_RT_DEBUG_GPIO_MODULE == 1) +#if (CFG_RT_DEBUG_GPIO_MODULE == 1) #include "stm32wbaxx_hal.h" @@ -781,747 +790,7 @@ typedef struct { uint16_t GPIO_pin; } st_gpio_debug_t; -static const st_gpio_debug_t general_debug_table[] = { -#if (USE_RT_DEBUG_SCM_SYSTEM_CLOCK_CONFIG == 1) - [RT_DEBUG_SCM_SYSTEM_CLOCK_CONFIG] = GPIO_DEBUG_SCM_SYSTEM_CLOCK_CONFIG, -#endif /* USE_RT_DEBUG_SCM_SYSTEM_CLOCK_CONFIG */ - -#if (USE_RT_DEBUG_SCM_SETUP == 1) - [RT_DEBUG_SCM_SETUP] = GPIO_DEBUG_SCM_SETUP, -#endif /* USE_RT_DEBUG_SCM_SETUP */ - -#if (USE_RT_DEBUG_SCM_HSERDY_ISR == 1) - [RT_DEBUG_SCM_HSERDY_ISR] = GPIO_DEBUG_SCM_HSERDY_ISR, -#endif /* USE_RT_DEBUG_SCM_HSERDY_ISR */ - -#if (USE_RT_DEBUG_ADC_ACTIVATION == 1) - [RT_DEBUG_ADC_ACTIVATION] = GPIO_DEBUG_ADC_ACTIVATION, -#endif /* USE_RT_DEBUG_ADC_ACTIVATION */ - -#if (USE_RT_DEBUG_ADC_DEACTIVATION == 1) - [RT_DEBUG_ADC_DEACTIVATION] = GPIO_DEBUG_ADC_DEACTIVATION, -#endif /* USE_RT_DEBUG_ADC_DEACTIVATION */ - -#if (USE_RT_DEBUG_ADC_TEMPERATURE_ACQUISITION == 1) - [RT_DEBUG_ADC_TEMPERATURE_ACQUISITION] = GPIO_DEBUG_ADC_TEMPERATURE_ACQUISITION, -#endif /* USE_RT_DEBUG_ADC_TEMPERATURE_ACQUISITION */ - -#if (USE_RT_DEBUG_RNG_ENABLE == 1) - [RT_DEBUG_RNG_ENABLE] = GPIO_DEBUG_RNG_ENABLE, -#endif /* USE_RT_DEBUG_RNG_ENABLE */ - -#if (USE_RT_DEBUG_RNG_DISABLE == 1) - [RT_DEBUG_RNG_DISABLE] = GPIO_DEBUG_RNG_DISABLE, -#endif /* USE_RT_DEBUG_RNG_DISABLE */ - -#if (USE_RT_DEBUG_RNG_GEN_RAND_NUM == 1) - [RT_DEBUG_RNG_GEN_RAND_NUM] = GPIO_DEBUG_RNG_GEN_RAND_NUM, -#endif /* USE_RT_DEBUG_RNG_GEN_RAND_NUM */ - -#if (USE_RT_DEBUG_LOW_POWER_STOP_MODE_ENTER == 1) - [RT_DEBUG_LOW_POWER_STOP_MODE_ENTER] = GPIO_DEBUG_LOW_POWER_STOP_MODE_ENTER, -#endif /* USE_RT_DEBUG_LOW_POWER_STOP_MODE_ENTER */ - -#if (USE_RT_DEBUG_LOW_POWER_STOP_MODE_EXIT == 1) - [RT_DEBUG_LOW_POWER_STOP_MODE_EXIT] = GPIO_DEBUG_LOW_POWER_STOP_MODE_EXIT, -#endif /* USE_RT_DEBUG_LOW_POWER_STOP_MODE_EXIT */ - -#if (USE_RT_DEBUG_LOW_POWER_STOP_MODE_ACTIVE == 1) - [RT_DEBUG_LOW_POWER_STOP_MODE_ACTIVE] = GPIO_DEBUG_LOW_POWER_STOP_MODE_ACTIVE, -#endif /* USE_RT_DEBUG_LOW_POWER_STOP_MODE_ACTIVE */ - -#if (USE_RT_DEBUG_LOW_POWER_STANDBY_MODE_ENTER == 1) - [RT_DEBUG_LOW_POWER_STANDBY_MODE_ENTER] = GPIO_DEBUG_LOW_POWER_STANDBY_MODE_ENTER, -#endif /* USE_RT_DEBUG_LOW_POWER_STANDBY_MODE_ENTER */ - -#if (USE_RT_DEBUG_LOW_POWER_STANDBY_MODE_EXIT == 1) - [RT_DEBUG_LOW_POWER_STANDBY_MODE_EXIT] = GPIO_DEBUG_LOW_POWER_STANDBY_MODE_EXIT, -#endif /* USE_RT_DEBUG_LOW_POWER_STANDBY_MODE_EXIT */ - -#if (USE_RT_DEBUG_LOW_POWER_STANDBY_MODE_ACTIVE == 1) - [RT_DEBUG_LOW_POWER_STANDBY_MODE_ACTIVE] = GPIO_DEBUG_LOW_POWER_STANDBY_MODE_ACTIVE, -#endif /* USE_RT_DEBUG_LOW_POWER_STANDBY_MODE_ACTIVE */ - -#if (USE_RT_DEBUG_HCI_READ_DONE == 1) - [RT_DEBUG_HCI_READ_DONE] = GPIO_DEBUG_HCI_READ_DONE, -#endif /* USE_RT_DEBUG_HCI_READ_DONE */ - -#if (USE_RT_DEBUG_HCI_RCVD_CMD == 1) - [RT_DEBUG_HCI_RCVD_CMD] = GPIO_DEBUG_HCI_RCVD_CMD, -#endif /* USE_RT_DEBUG_HCI_RCVD_CMD */ - -#if (USE_RT_DEBUG_HCI_WRITE_DONE == 1) - [RT_DEBUG_HCI_WRITE_DONE] = GPIO_DEBUG_HCI_WRITE_DONE, -#endif /* USE_RT_DEBUG_HCI_WRITE_DONE */ - -#if (USE_RT_DEBUG_SCHDLR_EVNT_UPDATE == 1) - [RT_DEBUG_SCHDLR_EVNT_UPDATE] = GPIO_DEBUG_SCHDLR_EVNT_UPDATE, -#endif /* USE_RT_DEBUG_SCHDLR_EVNT_UPDATE */ - -#if (USE_RT_DEBUG_SCHDLR_TIMER_SET == 1) - [RT_DEBUG_SCHDLR_TIMER_SET] = GPIO_DEBUG_SCHDLR_TIMER_SET, -#endif /* USE_RT_DEBUG_SCHDLR_TIMER_SET */ - -#if (USE_RT_DEBUG_SCHDLR_PHY_CLBR_TIMER == 1) - [RT_DEBUG_SCHDLR_PHY_CLBR_TIMER] = GPIO_DEBUG_SCHDLR_PHY_CLBR_TIMER, -#endif /* USE_RT_DEBUG_SCHDLR_PHY_CLBR_TIMER */ - -#if (USE_RT_DEBUG_SCHDLR_EVNT_SKIPPED == 1) - [RT_DEBUG_SCHDLR_EVNT_SKIPPED] = GPIO_DEBUG_SCHDLR_EVNT_SKIPPED, -#endif /* USE_RT_DEBUG_SCHDLR_EVNT_SKIPPED */ - -#if (USE_RT_DEBUG_SCHDLR_HNDL_NXT_TRACE == 1) - [RT_DEBUG_SCHDLR_HNDL_NXT_TRACE] = GPIO_DEBUG_SCHDLR_HNDL_NXT_TRACE, -#endif /* USE_RT_DEBUG_SCHDLR_HNDL_NXT_TRACE */ - -#if (USE_RT_DEBUG_ACTIVE_SCHDLR_NEAR_DETEDTED == 1) - [RT_DEBUG_ACTIVE_SCHDLR_NEAR_DETEDTED] = GPIO_DEBUG_ACTIVE_SCHDLR_NEAR_DETEDTED, -#endif /* USE_RT_DEBUG_ACTIVE_SCHDLR_NEAR_DETEDTED */ - -#if (USE_RT_DEBUG_ACTIVE_SCHDLR_NEAR_GAP_CHECK == 1) - [RT_DEBUG_ACTIVE_SCHDLR_NEAR_GAP_CHECK] = GPIO_DEBUG_ACTIVE_SCHDLR_NEAR_GAP_CHECK, -#endif /* USE_RT_DEBUG_ACTIVE_SCHDLR_NEAR_GAP_CHECK */ - -#if (USE_RT_DEBUG_ACTIVE_SCHDLR_NEAR_TIME_CHECK == 1) - [RT_DEBUG_ACTIVE_SCHDLR_NEAR_TIME_CHECK] = GPIO_DEBUG_ACTIVE_SCHDLR_NEAR_TIME_CHECK, -#endif /* USE_RT_DEBUG_ACTIVE_SCHDLR_NEAR_TIME_CHECK */ - -#if (USE_RT_DEBUG_ACTIVE_SCHDLR_NEAR_TRACE == 1) - [RT_DEBUG_ACTIVE_SCHDLR_NEAR_TRACE] = GPIO_DEBUG_ACTIVE_SCHDLR_NEAR_TRACE, -#endif /* USE_RT_DEBUG_ACTIVE_SCHDLR_NEAR_TRACE */ - -#if (USE_RT_DEBUG_SCHDLR_EVNT_RGSTR == 1) - [RT_DEBUG_SCHDLR_EVNT_RGSTR] = GPIO_DEBUG_SCHDLR_EVNT_RGSTR, -#endif /* USE_RT_DEBUG_SCHDLR_EVNT_RGSTR */ - -#if (USE_RT_DEBUG_SCHDLR_ADD_CONFLICT_Q == 1) - [RT_DEBUG_SCHDLR_ADD_CONFLICT_Q] = GPIO_DEBUG_SCHDLR_ADD_CONFLICT_Q, -#endif /* USE_RT_DEBUG_SCHDLR_ADD_CONFLICT_Q */ - -#if (USE_RT_DEBUG_SCHDLR_HNDL_MISSED_EVNT == 1) - [RT_DEBUG_SCHDLR_HNDL_MISSED_EVNT] = GPIO_DEBUG_SCHDLR_HNDL_MISSED_EVNT, -#endif /* USE_RT_DEBUG_SCHDLR_HNDL_MISSED_EVNT */ - -#if (USE_RT_DEBUG_SCHDLR_UNRGSTR_EVNT == 1) - [RT_DEBUG_SCHDLR_UNRGSTR_EVNT] = GPIO_DEBUG_SCHDLR_UNRGSTR_EVNT, -#endif /* USE_RT_DEBUG_SCHDLR_UNRGSTR_EVNT */ - -#if (USE_RT_DEBUG_SCHDLR_EXEC_EVNT_TRACE == 1) - [RT_DEBUG_SCHDLR_EXEC_EVNT_TRACE] = GPIO_DEBUG_SCHDLR_EXEC_EVNT_TRACE, -#endif /* USE_RT_DEBUG_SCHDLR_EXEC_EVNT_TRACE */ - -#if (USE_RT_DEBUG_SCHDLR_EXEC_EVNT_PROFILE == 1) - [RT_DEBUG_SCHDLR_EXEC_EVNT_PROFILE] = GPIO_DEBUG_SCHDLR_EXEC_EVNT_PROFILE, -#endif /* USE_RT_DEBUG_SCHDLR_EXEC_EVNT_PROFILE */ - -#if (USE_RT_DEBUG_SCHDLR_EXEC_EVNT_ERROR == 1) - [RT_DEBUG_SCHDLR_EXEC_EVNT_ERROR] = GPIO_DEBUG_SCHDLR_EXEC_EVNT_ERROR, -#endif /* USE_RT_DEBUG_SCHDLR_EXEC_EVNT_ERROR */ - -#if (USE_RT_DEBUG_SCHDLR_EXEC_EVNT_WINDOW_WIDENING == 1) - [RT_DEBUG_SCHDLR_EXEC_EVNT_WINDOW_WIDENING] = GPIO_DEBUG_SCHDLR_EXEC_EVNT_WINDOW_WIDENING, -#endif /* USE_RT_DEBUG_SCHDLR_EXEC_EVNT_WINDOW_WIDENING */ - -#if (USE_RT_DEBUG_LLHWC_CMN_CLR_ISR == 1) - [RT_DEBUG_LLHWC_CMN_CLR_ISR] = GPIO_DEBUG_LLHWC_CMN_CLR_ISR, -#endif /* USE_RT_DEBUG_LLHWC_CMN_CLR_ISR */ - -#if (USE_RT_DEBUG_LLWCC_CMN_HG_ISR == 1) - [RT_DEBUG_LLWCC_CMN_HG_ISR] = GPIO_DEBUG_LLWCC_CMN_HG_ISR, -#endif /* USE_RT_DEBUG_LLWCC_CMN_HG_ISR */ - -#if (USE_RT_DEBUG_LLHWC_CMN_LW_ISR == 1) - [RT_DEBUG_LLHWC_CMN_LW_ISR] = GPIO_DEBUG_LLHWC_CMN_LW_ISR, -#endif /* USE_RT_DEBUG_LLHWC_CMN_LW_ISR */ - -#if (USE_RT_DEBUG_LLHWC_CMN_CLR_TIMER_ERROR == 1) - [RT_DEBUG_LLHWC_CMN_CLR_TIMER_ERROR] = GPIO_DEBUG_LLHWC_CMN_CLR_TIMER_ERROR, -#endif /* USE_RT_DEBUG_LLHWC_CMN_CLR_TIMER_ERROR */ - -#if (USE_RT_DEBUG_LLHWC_LL_ISR == 1) - [RT_DEBUG_LLHWC_LL_ISR] = GPIO_DEBUG_LLHWC_LL_ISR, -#endif /* USE_RT_DEBUG_LLHWC_LL_ISR */ - -#if (USE_RT_DEBUG_LLHWC_SPLTMR_SET == 1) - [RT_DEBUG_LLHWC_SPLTMR_SET] = GPIO_DEBUG_LLHWC_SPLTMR_SET, -#endif /* USE_RT_DEBUG_LLHWC_SPLTMR_SET */ - -#if (USE_RT_DEBUG_LLHWC_SPLTMR_GET == 1) - [RT_DEBUG_LLHWC_SPLTMR_GET] = GPIO_DEBUG_LLHWC_SPLTMR_GET, -#endif /* USE_RT_DEBUG_LLHWC_SPLTMR_GET */ - -#if (USE_RT_DEBUG_LLHWC_LOW_ISR == 1) - [RT_DEBUG_LLHWC_LOW_ISR] = GPIO_DEBUG_LLHWC_LOW_ISR, -#endif /* USE_RT_DEBUG_LLHWC_LOW_ISR */ - -#if (USE_RT_DEBUG_LLHWC_STOP_SCN == 1) - [RT_DEBUG_LLHWC_STOP_SCN] = GPIO_DEBUG_LLHWC_STOP_SCN, -#endif /* USE_RT_DEBUG_LLHWC_STOP_SCN */ - -#if (USE_RT_DEBUG_LLHWC_WAIT_ENVT_ON_AIR == 1) - [RT_DEBUG_LLHWC_WAIT_ENVT_ON_AIR] = GPIO_DEBUG_LLHWC_WAIT_ENVT_ON_AIR, -#endif /* USE_RT_DEBUG_LLHWC_WAIT_ENVT_ON_AIR */ - -#if (USE_RT_DEBUG_LLHWC_SET_CONN_EVNT_PARAM == 1) - [RT_DEBUG_LLHWC_SET_CONN_EVNT_PARAM] = GPIO_DEBUG_LLHWC_SET_CONN_EVNT_PARAM, -#endif /* USE_RT_DEBUG_LLHWC_SET_CONN_EVNT_PARAM */ - -#if (USE_RT_DEBUG_POST_EVNT == 1) - [RT_DEBUG_POST_EVNT] = GPIO_DEBUG_POST_EVNT, -#endif /* USE_RT_DEBUG_POST_EVNT */ - -#if (USE_RT_DEBUG_HNDL_ALL_EVNTS == 1) - [RT_DEBUG_HNDL_ALL_EVNTS] = GPIO_DEBUG_HNDL_ALL_EVNTS, -#endif /* USE_RT_DEBUG_HNDL_ALL_EVNTS */ - -#if (USE_RT_DEBUG_PROCESS_EVNT == 1) - [RT_DEBUG_PROCESS_EVNT] = GPIO_DEBUG_PROCESS_EVNT, -#endif /* USE_RT_DEBUG_PROCESS_EVNT */ - -#if (USE_RT_DEBUG_PROCESS_ISO_DATA == 1) - [RT_DEBUG_PROCESS_ISO_DATA] = GPIO_DEBUG_PROCESS_ISO_DATA, -#endif /* USE_RT_DEBUG_PROCESS_ISO_DATA */ - -#if (USE_RT_DEBUG_ALLOC_TX_ISO_EMPTY_PKT == 1) - [RT_DEBUG_ALLOC_TX_ISO_EMPTY_PKT] = GPIO_DEBUG_ALLOC_TX_ISO_EMPTY_PKT, -#endif /* USE_RT_DEBUG_ALLOC_TX_ISO_EMPTY_PKT */ - -#if (USE_RT_DEBUG_BIG_FREE_EMPTY_PKTS == 1) - [RT_DEBUG_BIG_FREE_EMPTY_PKTS] = GPIO_DEBUG_BIG_FREE_EMPTY_PKTS, -#endif /* USE_RT_DEBUG_BIG_FREE_EMPTY_PKTS */ - -#if (USE_RT_DEBUG_RECOMBINE_UNFRMD_DATA_OK == 1) - [RT_DEBUG_RECOMBINE_UNFRMD_DATA_OK] = GPIO_DEBUG_RECOMBINE_UNFRMD_DATA_OK, -#endif /* USE_RT_DEBUG_RECOMBINE_UNFRMD_DATA_OK */ - -#if (USE_RT_DEBUG_RECOMBINE_UNFRMD_DATA_CRC == 1) - [RT_DEBUG_RECOMBINE_UNFRMD_DATA_CRC] = GPIO_DEBUG_RECOMBINE_UNFRMD_DATA_CRC, -#endif /* USE_RT_DEBUG_RECOMBINE_UNFRMD_DATA_CRC */ - -#if (USE_RT_DEBUG_RECOMBINE_UNFRMD_DATA_NoRX == 1) - [RT_DEBUG_RECOMBINE_UNFRMD_DATA_NoRX] = GPIO_DEBUG_RECOMBINE_UNFRMD_DATA_NoRX, -#endif /* USE_RT_DEBUG_RECOMBINE_UNFRMD_DATA_NoRX */ - -#if (USE_RT_DEBUG_RECOMBINE_UNFRMD_DATA_TRACE == 1) - [RT_DEBUG_RECOMBINE_UNFRMD_DATA_TRACE] = GPIO_DEBUG_RECOMBINE_UNFRMD_DATA_TRACE, -#endif /* USE_RT_DEBUG_RECOMBINE_UNFRMD_DATA_TRACE */ - -#if (USE_RT_DEBUG_ISO_HNDL_SDU == 1) - [RT_DEBUG_ISO_HNDL_SDU] = GPIO_DEBUG_ISO_HNDL_SDU, -#endif /* USE_RT_DEBUG_ISO_HNDL_SDU */ - -#if (USE_RT_DEBUG_LL_INTF_INIT == 1) - [RT_DEBUG_LL_INTF_INIT] = GPIO_DEBUG_LL_INTF_INIT, -#endif /* USE_RT_DEBUG_LL_INTF_INIT */ - -#if (USE_RT_DEBUG_DATA_TO_CNTRLR == 1) - [RT_DEBUG_DATA_TO_CNTRLR] = GPIO_DEBUG_DATA_TO_CNTRLR, -#endif /* USE_RT_DEBUG_DATA_TO_CNTRLR */ - -#if (USE_RT_DEBUG_FREE_LL_PKT_HNDLR == 1) - [RT_DEBUG_FREE_LL_PKT_HNDLR] = GPIO_DEBUG_FREE_LL_PKT_HNDLR, -#endif /* USE_RT_DEBUG_FREE_LL_PKT_HNDLR */ - -#if (USE_RT_DEBUG_PHY_INIT_CLBR_TRACE == 1) - [RT_DEBUG_PHY_INIT_CLBR_TRACE] = GPIO_DEBUG_PHY_INIT_CLBR_TRACE, -#endif /* USE_RT_DEBUG_PHY_INIT_CLBR_TRACE */ - -#if (USE_RT_DEBUG_PHY_RUNTIME_CLBR_TRACE == 1) - [RT_DEBUG_PHY_RUNTIME_CLBR_TRACE] = GPIO_DEBUG_PHY_RUNTIME_CLBR_TRACE, -#endif /* USE_RT_DEBUG_PHY_RUNTIME_CLBR_TRACE */ - -#if (USE_RT_DEBUG_PHY_CLBR_ISR == 1) - [RT_DEBUG_PHY_CLBR_ISR] = GPIO_DEBUG_PHY_CLBR_ISR, -#endif /* USE_RT_DEBUG_PHY_CLBR_ISR */ - -#if (USE_RT_DEBUG_PHY_INIT_CLBR_SINGLE_CH == 1) - [RT_DEBUG_PHY_INIT_CLBR_SINGLE_CH] = GPIO_DEBUG_PHY_INIT_CLBR_SINGLE_CH, -#endif /* USE_RT_DEBUG_PHY_INIT_CLBR_SINGLE_CH */ - -#if (USE_RT_DEBUG_PHY_CLBR_STRTD == 1) - [RT_DEBUG_PHY_CLBR_STRTD] = GPIO_DEBUG_PHY_CLBR_STRTD, -#endif /* USE_RT_DEBUG_PHY_CLBR_STRTD */ - -#if (USE_RT_DEBUG_PHY_CLBR_EXEC == 1) - [RT_DEBUG_PHY_CLBR_EXEC] = GPIO_DEBUG_PHY_CLBR_EXEC, -#endif /* USE_RT_DEBUG_PHY_CLBR_EXEC */ - -#if (USE_RT_DEBUG_RCO_STRT_STOP_RUNTIME_CLBR_ACTV == 1) - [RT_DEBUG_RCO_STRT_STOP_RUNTIME_CLBR_ACTV] = GPIO_DEBUG_RCO_STRT_STOP_RUNTIME_CLBR_ACTV, -#endif /* USE_RT_DEBUG_RCO_STRT_STOP_RUNTIME_CLBR_ACTV */ - -#if (USE_RT_DEBUG_RCO_STRT_STOP_RUNTIME_RCO_CLBR == 1) - [RT_DEBUG_RCO_STRT_STOP_RUNTIME_RCO_CLBR] = GPIO_DEBUG_RCO_STRT_STOP_RUNTIME_RCO_CLBR, -#endif /* USE_RT_DEBUG_RCO_STRT_STOP_RUNTIME_RCO_CLBR */ - -#if (USE_RT_DEBUG_STRT_STOP_RUNTIME_RCO_CLBR_SWT == 1) - [RT_DEBUG_STRT_STOP_RUNTIME_RCO_CLBR_SWT] = GPIO_DEBUG_STRT_STOP_RUNTIME_RCO_CLBR_SWT, -#endif /* USE_RT_DEBUG_STRT_STOP_RUNTIME_RCO_CLBR_SWT */ - -#if (USE_RT_DEBUG_STRT_STOP_RUNTIME_RCO_CLBR_TRACE == 1) - [RT_DEBUG_STRT_STOP_RUNTIME_RCO_CLBR_TRACE] = GPIO_DEBUG_STRT_STOP_RUNTIME_RCO_CLBR_TRACE, -#endif /* USE_RT_DEBUG_STRT_STOP_RUNTIME_RCO_CLBR_TRACE */ - -#if (USE_RT_DEBUG_RCO_ISR_TRACE == 1) - [RT_DEBUG_RCO_ISR_TRACE] = GPIO_DEBUG_RCO_ISR_TRACE, -#endif /* USE_RT_DEBUG_RCO_ISR_TRACE */ - -#if (USE_RT_DEBUG_RCO_ISR_COMPENDATE == 1) - [RT_DEBUG_RCO_ISR_COMPENDATE] = GPIO_DEBUG_RCO_ISR_COMPENDATE, -#endif /* USE_RT_DEBUG_RCO_ISR_COMPENDATE */ - -#if (USE_RT_DEBUG_RAL_STRT_TX == 1) - [RT_DEBUG_RAL_STRT_TX] = GPIO_DEBUG_RAL_STRT_TX, -#endif /* USE_RT_DEBUG_RAL_STRT_TX */ - -#if (USE_RT_DEBUG_RAL_ISR_TIMER_ERROR == 1) - [RT_DEBUG_RAL_ISR_TIMER_ERROR] = GPIO_DEBUG_RAL_ISR_TIMER_ERROR, -#endif /* USE_RT_DEBUG_RAL_ISR_TIMER_ERROR */ - -#if (USE_RT_DEBUG_RAL_ISR_TRACE == 1) - [RT_DEBUG_RAL_ISR_TRACE] = GPIO_DEBUG_RAL_ISR_TRACE, -#endif /* USE_RT_DEBUG_RAL_ISR_TRACE */ - -#if (USE_RT_DEBUG_RAL_STOP_OPRTN == 1) - [RT_DEBUG_RAL_STOP_OPRTN] = GPIO_DEBUG_RAL_STOP_OPRTN, -#endif /* USE_RT_DEBUG_RAL_STOP_OPRTN */ - -#if (USE_RT_DEBUG_RAL_STRT_RX == 1) - [RT_DEBUG_RAL_STRT_RX] = GPIO_DEBUG_RAL_STRT_RX, -#endif /* USE_RT_DEBUG_RAL_STRT_RX */ - -#if (USE_RT_DEBUG_RAL_DONE_CLBK_TX == 1) - [RT_DEBUG_RAL_DONE_CLBK_TX] = GPIO_DEBUG_RAL_DONE_CLBK_TX, -#endif /* USE_RT_DEBUG_RAL_DONE_CLBK_TX */ - -#if (USE_RT_DEBUG_RAL_DONE_CLBK_RX == 1) - [RT_DEBUG_RAL_DONE_CLBK_RX] = GPIO_DEBUG_RAL_DONE_CLBK_RX, -#endif /* USE_RT_DEBUG_RAL_DONE_CLBK_RX */ - -#if (USE_RT_DEBUG_RAL_DONE_CLBK_ED == 1) - [RT_DEBUG_RAL_DONE_CLBK_ED] = GPIO_DEBUG_RAL_DONE_CLBK_ED, -#endif /* USE_RT_DEBUG_RAL_DONE_CLBK_ED */ - -#if (USE_RT_DEBUG_RAL_ED_SCAN == 1) - [RT_DEBUG_RAL_ED_SCAN] = GPIO_DEBUG_RAL_ED_SCAN, -#endif /* USE_RT_DEBUG_RAL_ED_SCAN */ - -#if (USE_RT_DEBUG_ERROR_MEM_CAP_EXCED == 1) - [RT_DEBUG_ERROR_MEM_CAP_EXCED] = GPIO_DEBUG_ERROR_MEM_CAP_EXCED, -#endif /* USE_RT_DEBUG_ERROR_MEM_CAP_EXCED */ - -#if (USE_RT_DEBUG_ERROR_COMMAND_DISALLOWED == 1) - [RT_DEBUG_ERROR_COMMAND_DISALLOWED] = GPIO_DEBUG_ERROR_COMMAND_DISALLOWED, -#endif /* USE_RT_DEBUG_ERROR_COMMAND_DISALLOWED */ - -#if (USE_RT_DEBUG_PTA_INIT == 1) - [RT_DEBUG_PTA_INIT] = GPIO_DEBUG_PTA_INIT, -#endif /* USE_RT_DEBUG_PTA_INIT */ - -#if (USE_RT_DEBUG_PTA_EN == 1) - [RT_DEBUG_PTA_EN] = GPIO_DEBUG_PTA_EN, -#endif /* USE_RT_DEBUG_PTA_EN */ - -#if (USE_RT_DEBUG_LLHWC_PTA_SET_EN == 1) - [RT_DEBUG_LLHWC_PTA_SET_EN] = GPIO_DEBUG_LLHWC_PTA_SET_EN, -#endif /* USE_RT_DEBUG_LLHWC_PTA_SET_EN */ - -#if (USE_RT_DEBUG_LLHWC_PTA_SET_PARAMS == 1) - [RT_DEBUG_LLHWC_PTA_SET_PARAMS] = GPIO_DEBUG_LLHWC_PTA_SET_PARAMS, -#endif /* USE_RT_DEBUG_LLHWC_PTA_SET_PARAMS */ - -#if (USE_RT_DEBUG_COEX_STRT_ON_IDLE == 1) - [RT_DEBUG_COEX_STRT_ON_IDLE] = GPIO_DEBUG_COEX_STRT_ON_IDLE, -#endif /* USE_RT_DEBUG_COEX_STRT_ON_IDLE */ - -#if (USE_RT_DEBUG_COEX_ASK_FOR_AIR == 1) - [RT_DEBUG_COEX_ASK_FOR_AIR] = GPIO_DEBUG_COEX_ASK_FOR_AIR, -#endif /* USE_RT_DEBUG_COEX_ASK_FOR_AIR */ - -#if (USE_RT_DEBUG_COEX_TIMER_EVNT_CLBK == 1) - [RT_DEBUG_COEX_TIMER_EVNT_CLBK] = GPIO_DEBUG_COEX_TIMER_EVNT_CLBK, -#endif /* USE_RT_DEBUG_COEX_TIMER_EVNT_CLBK */ - -#if (USE_RT_DEBUG_COEX_STRT_ONE_SHOT == 1) - [RT_DEBUG_COEX_STRT_ONE_SHOT] = GPIO_DEBUG_COEX_STRT_ONE_SHOT, -#endif /* USE_RT_DEBUG_COEX_STRT_ONE_SHOT */ - -#if (USE_RT_DEBUG_COEX_FORCE_STOP_RX == 1) - [RT_DEBUG_COEX_FORCE_STOP_RX] = GPIO_DEBUG_COEX_FORCE_STOP_RX, -#endif /* USE_RT_DEBUG_COEX_FORCE_STOP_RX */ - -#if (USE_RT_DEBUG_LLHWC_ADV_DONE == 1) - [RT_DEBUG_LLHWC_ADV_DONE] = GPIO_DEBUG_LLHWC_ADV_DONE, -#endif /* USE_RT_DEBUG_LLHWC_ADV_DONE */ - -#if (USE_RT_DEBUG_LLHWC_SCN_DONE == 1) - [RT_DEBUG_LLHWC_SCN_DONE] = GPIO_DEBUG_LLHWC_SCN_DONE, -#endif /* USE_RT_DEBUG_LLHWC_SCN_DONE */ - -#if (USE_RT_DEBUG_LLHWC_INIT_DONE == 1) - [RT_DEBUG_LLHWC_INIT_DONE] = GPIO_DEBUG_LLHWC_INIT_DONE, -#endif /* USE_RT_DEBUG_LLHWC_INIT_DONE */ - -#if (USE_RT_DEBUG_LLHWC_CONN_DONE == 1) - [RT_DEBUG_LLHWC_CONN_DONE] = GPIO_DEBUG_LLHWC_CONN_DONE, -#endif /* USE_RT_DEBUG_LLHWC_CONN_DONE */ - -#if (USE_RT_DEBUG_LLHWC_CIG_DONE == 1) - [RT_DEBUG_LLHWC_CIG_DONE] = GPIO_DEBUG_LLHWC_CIG_DONE, -#endif /* USE_RT_DEBUG_LLHWC_CIG_DONE */ - -#if (USE_RT_DEBUG_LLHWC_BIG_DONE == 1) - [RT_DEBUG_LLHWC_BIG_DONE] = GPIO_DEBUG_LLHWC_BIG_DONE, -#endif /* USE_RT_DEBUG_LLHWC_BIG_DONE */ - -#if (USE_RT_DEBUG_OS_TMR_CREATE == 1) - [RT_DEBUG_OS_TMR_CREATE] = GPIO_DEBUG_OS_TMR_CREATE, -#endif /* USE_RT_DEBUG_OS_TMR_CREATE */ - -#if (USE_RT_DEBUG_ADV_EXT_TIMEOUT_CBK == 1) - [RT_DEBUG_ADV_EXT_TIMEOUT_CBK] = GPIO_DEBUG_ADV_EXT_TIMEOUT_CBK, -#endif /* USE_RT_DEBUG_ADV_EXT_TIMEOUT_CBK */ - -#if (USE_RT_DEBUG_ADV_EXT_SCN_DUR_CBK == 1) - [RT_DEBUG_ADV_EXT_SCN_DUR_CBK] = GPIO_DEBUG_ADV_EXT_SCN_DUR_CBK, -#endif /* USE_RT_DEBUG_ADV_EXT_SCN_DUR_CBK */ - -#if (USE_RT_DEBUG_ADV_EXT_SCN_PERIOD_CBK == 1) - [RT_DEBUG_ADV_EXT_SCN_PERIOD_CBK] = GPIO_DEBUG_ADV_EXT_SCN_PERIOD_CBK, -#endif /* USE_RT_DEBUG_ADV_EXT_SCN_PERIOD_CBK */ - -#if (USE_RT_DEBUG_ADV_EXT_PRDC_SCN_TIMEOUT_CBK == 1) - [RT_DEBUG_ADV_EXT_PRDC_SCN_TIMEOUT_CBK] = GPIO_DEBUG_ADV_EXT_PRDC_SCN_TIMEOUT_CBK, -#endif /* USE_RT_DEBUG_ADV_EXT_PRDC_SCN_TIMEOUT_CBK */ - -#if (USE_RT_DEBUG_BIS_SYNC_TIMEOUT_TMR_CBK == 1) - [RT_DEBUG_BIS_SYNC_TIMEOUT_TMR_CBK] = GPIO_DEBUG_BIS_SYNC_TIMEOUT_TMR_CBK, -#endif /* USE_RT_DEBUG_BIS_SYNC_TIMEOUT_TMR_CBK */ - -#if (USE_RT_DEBUG_BIS_TERM_TMR_CBK == 1) - [RT_DEBUG_BIS_TERM_TMR_CBK] = GPIO_DEBUG_BIS_TERM_TMR_CBK, -#endif /* USE_RT_DEBUG_BIS_TERM_TMR_CBK */ - -#if (USE_RT_DEBUG_BIS_TST_MODE_CBK == 1) - [RT_DEBUG_BIS_TST_MODE_CBK] = GPIO_DEBUG_BIS_TST_MODE_CBK, -#endif /* USE_RT_DEBUG_BIS_TST_MODE_CBK */ - -#if (USE_RT_DEBUG_BIS_TST_MODE_TMR_CBK == 1) - [RT_DEBUG_BIS_TST_MODE_TMR_CBK] = GPIO_DEBUG_BIS_TST_MODE_TMR_CBK, -#endif /* USE_RT_DEBUG_BIS_TST_MODE_TMR_CBK */ - -#if (USE_RT_DEBUG_ISO_POST_TMR_CBK == 1) - [RT_DEBUG_ISO_POST_TMR_CBK] = GPIO_DEBUG_ISO_POST_TMR_CBK, -#endif /* USE_RT_DEBUG_ISO_POST_TMR_CBK */ - -#if (USE_RT_DEBUG_ISO_TST_MODE_TMR_CBK == 1) - [RT_DEBUG_ISO_TST_MODE_TMR_CBK] = GPIO_DEBUG_ISO_TST_MODE_TMR_CBK, -#endif /* USE_RT_DEBUG_ISO_TST_MODE_TMR_CBK */ - -#if (USE_RT_DEBUG_CONN_POST_TMR_CBK == 1) - [RT_DEBUG_CONN_POST_TMR_CBK] = GPIO_DEBUG_CONN_POST_TMR_CBK, -#endif /* USE_RT_DEBUG_CONN_POST_TMR_CBK */ - -#if (USE_RT_DEBUG_EVNT_SCHDLR_TMR_CBK == 1) - [RT_DEBUG_EVNT_SCHDLR_TMR_CBK] = GPIO_DEBUG_EVNT_SCHDLR_TMR_CBK, -#endif /* USE_RT_DEBUG_EVNT_SCHDLR_TMR_CBK */ - -#if (USE_RT_DEBUG_HCI_POST_TMR_CBK == 1) - [RT_DEBUG_HCI_POST_TMR_CBK] = GPIO_DEBUG_HCI_POST_TMR_CBK, -#endif /* USE_RT_DEBUG_HCI_POST_TMR_CBK */ - -#if (USE_RT_DEBUG_LLCP_POST_TMR_CBK == 1) - [RT_DEBUG_LLCP_POST_TMR_CBK] = GPIO_DEBUG_LLCP_POST_TMR_CBK, -#endif /* USE_RT_DEBUG_LLCP_POST_TMR_CBK */ - -#if (USE_RT_DEBUG_LLHWC_ENRGY_DETECT_CBK == 1) - [RT_DEBUG_LLHWC_ENRGY_DETECT_CBK] = GPIO_DEBUG_LLHWC_ENRGY_DETECT_CBK, -#endif /* USE_RT_DEBUG_LLHWC_ENRGY_DETECT_CBK */ - -#if (USE_RT_DEBUG_PRVCY_POST_TMR_CBK == 1) - [RT_DEBUG_PRVCY_POST_TMR_CBK] = GPIO_DEBUG_PRVCY_POST_TMR_CBK, -#endif /* USE_RT_DEBUG_PRVCY_POST_TMR_CBK */ - -#if (USE_RT_DEBUG_ANT_PRPR_TMR_CBK == 1) - [RT_DEBUG_ANT_PRPR_TMR_CBK] = GPIO_DEBUG_ANT_PRPR_TMR_CBK, -#endif /* USE_RT_DEBUG_ANT_PRPR_TMR_CBK */ - -#if (USE_RT_DEBUG_COEX_TMR_FRC_STOP_AIR_GRANT_CBK == 1) - [RT_DEBUG_COEX_TMR_FRC_STOP_AIR_GRANT_CBK] = GPIO_DEBUG_COEX_TMR_FRC_STOP_AIR_GRANT_CBK, -#endif /* USE_RT_DEBUG_COEX_TMR_FRC_STOP_AIR_GRANT_CBK */ - -#if (USE_RT_DEBUG_MLME_RX_EN_TMR_CBK == 1) - [RT_DEBUG_MLME_RX_EN_TMR_CBK] = GPIO_DEBUG_MLME_RX_EN_TMR_CBK, -#endif /* USE_RT_DEBUG_MLME_RX_EN_TMR_CBK */ - -#if (USE_RT_DEBUG_MLME_GNRC_TMR_CBK == 1) - [RT_DEBUG_MLME_GNRC_TMR_CBK] = GPIO_DEBUG_MLME_GNRC_TMR_CBK, -#endif /* USE_RT_DEBUG_MLME_GNRC_TMR_CBK */ - -#if (USE_RT_DEBUG_MIB_JOIN_LST_TMR_CBK == 1) - [RT_DEBUG_MIB_JOIN_LST_TMR_CBK] = GPIO_DEBUG_MIB_JOIN_LST_TMR_CBK, -#endif /* USE_RT_DEBUG_MIB_JOIN_LST_TMR_CBK */ - -#if (USE_RT_DEBUG_MLME_PWR_PRES_TMR_CBK == 1) - [RT_DEBUG_MLME_PWR_PRES_TMR_CBK] = GPIO_DEBUG_MLME_PWR_PRES_TMR_CBK, -#endif /* USE_RT_DEBUG_MLME_PWR_PRES_TMR_CBK */ - -#if (USE_RT_DEBUG_PRESISTENCE_TMR_CBK == 1) - [RT_DEBUG_PRESISTENCE_TMR_CBK] = GPIO_DEBUG_PRESISTENCE_TMR_CBK, -#endif /* USE_RT_DEBUG_PRESISTENCE_TMR_CBK */ - -#if (USE_RT_DEBUG_RADIO_PHY_PRDC_CLBK_TMR_CBK == 1) - [RT_DEBUG_RADIO_PHY_PRDC_CLBK_TMR_CBK] = GPIO_DEBUG_RADIO_PHY_PRDC_CLBK_TMR_CBK, -#endif /* USE_RT_DEBUG_RADIO_PHY_PRDC_CLBK_TMR_CBK */ - -#if (USE_RT_DEBUG_RADIO_CSMA_TMR_CBK == 1) - [RT_DEBUG_RADIO_CSMA_TMR_CBK] = GPIO_DEBUG_RADIO_CSMA_TMR_CBK, -#endif /* USE_RT_DEBUG_RADIO_CSMA_TMR_CBK */ - -#if (USE_RT_DEBUG_RADIO_CSL_RCV_TMR_CBK == 1) - [RT_DEBUG_RADIO_CSL_RCV_TMR_CBK] = GPIO_DEBUG_RADIO_CSL_RCV_TMR_CBK, -#endif /* USE_RT_DEBUG_RADIO_CSL_RCV_TMR_CBK */ - -#if (USE_RT_DEBUG_ED_TMR_CBK == 1) - [RT_DEBUG_ED_TMR_CBK] = GPIO_DEBUG_ED_TMR_CBK, -#endif /* USE_RT_DEBUG_ED_TMR_CBK */ - -#if (USE_RT_DEBUG_DIO_EXT_TMR_CBK == 1) - [RT_DEBUG_DIO_EXT_TMR_CBK] = GPIO_DEBUG_DIO_EXT_TMR_CBK, -#endif /* USE_RT_DEBUG_DIO_EXT_TMR_CBK */ - -#if (USE_RT_DEBUG_RCO_CLBR_TMR_CBK == 1) - [RT_DEBUG_RCO_CLBR_TMR_CBK] = GPIO_DEBUG_RCO_CLBR_TMR_CBK, -#endif /* USE_RT_DEBUG_RCO_CLBR_TMR_CBK */ - -#if (USE_RT_DEBUG_ADV_EXT_MNGR_ADV_CBK == 1) - [RT_DEBUG_ADV_EXT_MNGR_ADV_CBK] = GPIO_DEBUG_ADV_EXT_MNGR_ADV_CBK, -#endif /* USE_RT_DEBUG_ADV_EXT_MNGR_ADV_CBK */ - -#if (USE_RT_DEBUG_ADV_EXT_MNGR_SCN_CBK == 1) - [RT_DEBUG_ADV_EXT_MNGR_SCN_CBK] = GPIO_DEBUG_ADV_EXT_MNGR_SCN_CBK, -#endif /* USE_RT_DEBUG_ADV_EXT_MNGR_SCN_CBK */ - -#if (USE_RT_DEBUG_ADV_EXT_MNGR_SCN_ERR_CBK == 1) - [RT_DEBUG_ADV_EXT_MNGR_SCN_ERR_CBK] = GPIO_DEBUG_ADV_EXT_MNGR_SCN_ERR_CBK, -#endif /* USE_RT_DEBUG_ADV_EXT_MNGR_SCN_ERR_CBK */ - -#if (USE_RT_DEBUG_ADV_EXT_MNGR_PRDC_SCN_CBK == 1) - [RT_DEBUG_ADV_EXT_MNGR_PRDC_SCN_CBK] = GPIO_DEBUG_ADV_EXT_MNGR_PRDC_SCN_CBK, -#endif /* USE_RT_DEBUG_ADV_EXT_MNGR_PRDC_SCN_CBK */ - -#if (USE_RT_DEBUG_ADV_EXT_MNGR_PRDC_SCN_ERR_CBK == 1) - [RT_DEBUG_ADV_EXT_MNGR_PRDC_SCN_ERR_CBK] = GPIO_DEBUG_ADV_EXT_MNGR_PRDC_SCN_ERR_CBK, -#endif /* USE_RT_DEBUG_ADV_EXT_MNGR_PRDC_SCN_ERR_CBK */ - -#if (USE_RT_DEBUG_BIG_ADV_CBK == 1) - [RT_DEBUG_BIG_ADV_CBK] = GPIO_DEBUG_BIG_ADV_CBK, -#endif /* USE_RT_DEBUG_BIG_ADV_CBK */ - -#if (USE_RT_DEBUG_BIG_ADV_ERR_CBK == 1) - [RT_DEBUG_BIG_ADV_ERR_CBK] = GPIO_DEBUG_BIG_ADV_ERR_CBK, -#endif /* USE_RT_DEBUG_BIG_ADV_ERR_CBK */ - -#if (USE_RT_DEBUG_BIG_SYNC_CBK == 1) - [RT_DEBUG_BIG_SYNC_CBK] = GPIO_DEBUG_BIG_SYNC_CBK, -#endif /* USE_RT_DEBUG_BIG_SYNC_CBK */ - -#if (USE_RT_DEBUG_BIG_SYNC_ERR_CBK == 1) - [RT_DEBUG_BIG_SYNC_ERR_CBK] = GPIO_DEBUG_BIG_SYNC_ERR_CBK, -#endif /* USE_RT_DEBUG_BIG_SYNC_ERR_CBK */ - -#if (USE_RT_DEBUG_ISO_CIS_PKT_TRNSM_RECEIVED_CBK == 1) - [RT_DEBUG_ISO_CIS_PKT_TRNSM_RECEIVED_CBK] = GPIO_DEBUG_ISO_CIS_PKT_TRNSM_RECEIVED_CBK, -#endif /* USE_RT_DEBUG_ISO_CIS_PKT_TRNSM_RECEIVED_CBK */ - -#if (USE_RT_DEBUG_ISO_CIG_ERR_CBK == 1) - [RT_DEBUG_ISO_CIG_ERR_CBK] = GPIO_DEBUG_ISO_CIG_ERR_CBK, -#endif /* USE_RT_DEBUG_ISO_CIG_ERR_CBK */ - -#if (USE_RT_DEBUG_CONN_PKT_TRNSM_RECEIVED_CBK == 1) - [RT_DEBUG_CONN_PKT_TRNSM_RECEIVED_CBK] = GPIO_DEBUG_CONN_PKT_TRNSM_RECEIVED_CBK, -#endif /* USE_RT_DEBUG_CONN_PKT_TRNSM_RECEIVED_CBK */ - -#if (USE_RT_DEBUG_PRDC_CLBR_EXTRL_CBK == 1) - [RT_DEBUG_PRDC_CLBR_EXTRL_CBK] = GPIO_DEBUG_PRDC_CLBR_EXTRL_CBK, -#endif /* USE_RT_DEBUG_PRDC_CLBR_EXTRL_CBK */ - -#if (USE_RT_DEBUG_PTR_PRDC_ADV_SYNC_CBK == 1) - [RT_DEBUG_PTR_PRDC_ADV_SYNC_CBK] = GPIO_DEBUG_PTR_PRDC_ADV_SYNC_CBK, -#endif /* USE_RT_DEBUG_PTR_PRDC_ADV_SYNC_CBK */ - -#if (USE_RT_DEBUG_NCONN_SCN_CBK == 1) - [RT_DEBUG_NCONN_SCN_CBK] = GPIO_DEBUG_NCONN_SCN_CBK, -#endif /* USE_RT_DEBUG_NCONN_SCN_CBK */ - -#if (USE_RT_DEBUG_NCONN_ADV_CBK == 1) - [RT_DEBUG_NCONN_ADV_CBK] = GPIO_DEBUG_NCONN_ADV_CBK, -#endif /* USE_RT_DEBUG_NCONN_ADV_CBK */ - -#if (USE_RT_DEBUG_NCONN_INIT_CBK == 1) - [RT_DEBUG_NCONN_INIT_CBK] = GPIO_DEBUG_NCONN_INIT_CBK, -#endif /* USE_RT_DEBUG_NCONN_INIT_CBK */ - -#if (USE_RT_DEBUG_ANT_RADIO_CMPLT_EVNT_CBK == 1) - [RT_DEBUG_ANT_RADIO_CMPLT_EVNT_CBK] = GPIO_DEBUG_ANT_RADIO_CMPLT_EVNT_CBK, -#endif /* USE_RT_DEBUG_ANT_RADIO_CMPLT_EVNT_CBK */ - -#if (USE_RT_DEBUG_ANT_STACK_EVNT_CBK == 1) - [RT_DEBUG_ANT_STACK_EVNT_CBK] = GPIO_DEBUG_ANT_STACK_EVNT_CBK, -#endif /* USE_RT_DEBUG_ANT_STACK_EVNT_CBK */ - -#if (USE_RT_DEBUG_ADV_EXT_PROCESS_TMOUT_EVNT_CBK == 1) - [RT_DEBUG_ADV_EXT_PROCESS_TMOUT_EVNT_CBK] = GPIO_DEBUG_ADV_EXT_PROCESS_TMOUT_EVNT_CBK, -#endif /* USE_RT_DEBUG_ADV_EXT_PROCESS_TMOUT_EVNT_CBK */ - -#if (USE_RT_DEBUG_ADV_EXT_MNGR_SCN_DUR_EVNT == 1) - [RT_DEBUG_ADV_EXT_MNGR_SCN_DUR_EVNT] = GPIO_DEBUG_ADV_EXT_MNGR_SCN_DUR_EVNT, -#endif /* USE_RT_DEBUG_ADV_EXT_MNGR_SCN_DUR_EVNT */ - -#if (USE_RT_DEBUG_ADV_EXT_MNGR_SCN_PERIODIC_EVNT == 1) - [RT_DEBUG_ADV_EXT_MNGR_SCN_PERIODIC_EVNT] = GPIO_DEBUG_ADV_EXT_MNGR_SCN_PERIODIC_EVNT, -#endif /* USE_RT_DEBUG_ADV_EXT_MNGR_SCN_PERIODIC_EVNT */ - -#if (USE_RT_DEBUG_ADV_EXT_MNGR_PRDC_SCN_TMOUT_EVNT == 1) - [RT_DEBUG_ADV_EXT_MNGR_PRDC_SCN_TMOUT_EVNT] = GPIO_DEBUG_ADV_EXT_MNGR_PRDC_SCN_TMOUT_EVNT, -#endif /* USE_RT_DEBUG_ADV_EXT_MNGR_PRDC_SCN_TMOUT_EVNT */ - -#if (USE_RT_DEBUG_ADV_EXT_MNGR_PRDC_SCN_CNCEL_EVNT == 1) - [RT_DEBUG_ADV_EXT_MNGR_PRDC_SCN_CNCEL_EVNT] = GPIO_DEBUG_ADV_EXT_MNGR_PRDC_SCN_CNCEL_EVNT, -#endif /* USE_RT_DEBUG_ADV_EXT_MNGR_PRDC_SCN_CNCEL_EVNT */ - -#if (USE_RT_DEBUG_BIS_MNGR_BIG_TERM_CBK == 1) - [RT_DEBUG_BIS_MNGR_BIG_TERM_CBK] = GPIO_DEBUG_BIS_MNGR_BIG_TERM_CBK, -#endif /* USE_RT_DEBUG_BIS_MNGR_BIG_TERM_CBK */ - -#if (USE_RT_DEBUG_BIS_MNGR_SYNC_TMOUT_CBK == 1) - [RT_DEBUG_BIS_MNGR_SYNC_TMOUT_CBK] = GPIO_DEBUG_BIS_MNGR_SYNC_TMOUT_CBK, -#endif /* USE_RT_DEBUG_BIS_MNGR_SYNC_TMOUT_CBK */ - -#if (USE_RT_DEBUG_ISOAL_MNGR_SDU_GEN == 1) - [RT_DEBUG_ISOAL_MNGR_SDU_GEN] = GPIO_DEBUG_ISOAL_MNGR_SDU_GEN, -#endif /* USE_RT_DEBUG_ISOAL_MNGR_SDU_GEN */ - -#if (USE_RT_DEBUG_ISO_MNGR_CIS_PROCESS_EVNT_CBK == 1) - [RT_DEBUG_ISO_MNGR_CIS_PROCESS_EVNT_CBK] = GPIO_DEBUG_ISO_MNGR_CIS_PROCESS_EVNT_CBK, -#endif /* USE_RT_DEBUG_ISO_MNGR_CIS_PROCESS_EVNT_CBK */ - -#if (USE_RT_DEBUG_CONN_MNGR_PROCESS_EVNT_CLBK == 1) - [RT_DEBUG_CONN_MNGR_PROCESS_EVNT_CLBK] = GPIO_DEBUG_CONN_MNGR_PROCESS_EVNT_CLBK, -#endif /* USE_RT_DEBUG_CONN_MNGR_PROCESS_EVNT_CLBK */ - -#if (USE_RT_DEBUG_CONN_MNGR_UPDT_CONN_PARAM_CBK == 1) - [RT_DEBUG_CONN_MNGR_UPDT_CONN_PARAM_CBK] = GPIO_DEBUG_CONN_MNGR_UPDT_CONN_PARAM_CBK, -#endif /* USE_RT_DEBUG_CONN_MNGR_UPDT_CONN_PARAM_CBK */ - -#if (USE_RT_DEBUG_EVNT_SCHDLR_HW_EVNT_CMPLT == 1) - [RT_DEBUG_EVNT_SCHDLR_HW_EVNT_CMPLT] = GPIO_DEBUG_EVNT_SCHDLR_HW_EVNT_CMPLT, -#endif /* USE_RT_DEBUG_EVNT_SCHDLR_HW_EVNT_CMPLT */ - -#if (USE_RT_DEBUG_HCI_EVENT_HNDLR == 1) - [RT_DEBUG_HCI_EVENT_HNDLR] = GPIO_DEBUG_HCI_EVENT_HNDLR, -#endif /* USE_RT_DEBUG_HCI_EVENT_HNDLR */ - -#if (USE_RT_DEBUG_MLME_TMRS_CBK == 1) - [RT_DEBUG_MLME_TMRS_CBK] = GPIO_DEBUG_MLME_TMRS_CBK, -#endif /* USE_RT_DEBUG_MLME_TMRS_CBK */ - -#if (USE_RT_DEBUG_DIRECT_TX_EVNT_CBK == 1) - [RT_DEBUG_DIRECT_TX_EVNT_CBK] = GPIO_DEBUG_DIRECT_TX_EVNT_CBK, -#endif /* USE_RT_DEBUG_DIRECT_TX_EVNT_CBK */ - -#if (USE_RT_DEBUG_INDIRECT_PKT_TOUR_CBK == 1) - [RT_DEBUG_INDIRECT_PKT_TOUR_CBK] = GPIO_DEBUG_INDIRECT_PKT_TOUR_CBK, -#endif /* USE_RT_DEBUG_INDIRECT_PKT_TOUR_CBK */ - -#if (USE_RT_DEBUG_RADIO_CSMA_TMR == 1) - [RT_DEBUG_RADIO_CSMA_TMR] = GPIO_DEBUG_RADIO_CSMA_TMR, -#endif /* USE_RT_DEBUG_RADIO_CSMA_TMR */ - -#if (USE_RT_DEBUG_RAL_SM_DONE_EVNT_CBK == 1) - [RT_DEBUG_RAL_SM_DONE_EVNT_CBK] = GPIO_DEBUG_RAL_SM_DONE_EVNT_CBK, -#endif /* USE_RT_DEBUG_RAL_SM_DONE_EVNT_CBK */ - -#if (USE_RT_DEBUG_ED_TMR_HNDL == 1) - [RT_DEBUG_ED_TMR_HNDL] = GPIO_DEBUG_ED_TMR_HNDL, -#endif /* USE_RT_DEBUG_ED_TMR_HNDL */ - -#if (USE_RT_DEBUG_OS_TMR_EVNT_CBK == 1) - [RT_DEBUG_OS_TMR_EVNT_CBK] = GPIO_DEBUG_OS_TMR_EVNT_CBK, -#endif /* USE_RT_DEBUG_OS_TMR_EVNT_CBK */ - -#if (USE_RT_DEBUG_PROFILE_MARKER_PHY_WAKEUP_TIME == 1) - [RT_DEBUG_PROFILE_MARKER_PHY_WAKEUP_TIME] = GPIO_DEBUG_PROFILE_MARKER_PHY_WAKEUP_TIME, -#endif /* USE_RT_DEBUG_PROFILE_MARKER_PHY_WAKEUP_TIME */ - -#if (USE_RT_DEBUG_PROFILE_END_DRIFT_TIME == 1) - [RT_DEBUG_PROFILE_END_DRIFT_TIME] = GPIO_DEBUG_PROFILE_END_DRIFT_TIME, -#endif /* USE_RT_DEBUG_PROFILE_END_DRIFT_TIME */ - -#if (USE_RT_DEBUG_PROC_RADIO_RCV == 1) - [RT_DEBUG_PROC_RADIO_RCV] = GPIO_DEBUG_PROC_RADIO_RCV, -#endif /* USE_RT_DEBUG_PROC_RADIO_RCV */ - -#if (USE_RT_DEBUG_EVNT_TIME_UPDT == 1) - [RT_DEBUG_EVNT_TIME_UPDT] = GPIO_DEBUG_EVNT_TIME_UPDT, -#endif /* USE_RT_DEBUG_EVNT_TIME_UPDT */ - -#if (USE_RT_DEBUG_MAC_RECEIVE_DONE == 1) - [RT_DEBUG_MAC_RECEIVE_DONE] = GPIO_DEBUG_MAC_RECEIVE_DONE, -#endif /* USE_RT_DEBUG_MAC_RECEIVE_DONE */ - -#if (USE_RT_DEBUG_MAC_TX_DONE == 1) - [RT_DEBUG_MAC_TX_DONE] = GPIO_DEBUG_MAC_TX_DONE, -#endif /* USE_RT_DEBUG_MAC_TX_DONE */ - -#if (USE_RT_DEBUG_RADIO_APPLY_CSMA == 1) - [RT_DEBUG_RADIO_APPLY_CSMA] = GPIO_DEBUG_RADIO_APPLY_CSMA, -#endif /* USE_RT_DEBUG_RADIO_APPLY_CSMA */ - -#if (USE_RT_DEBUG_RADIO_TRANSMIT == 1) - [RT_DEBUG_RADIO_TRANSMIT] = GPIO_DEBUG_RADIO_TRANSMIT, -#endif /* USE_RT_DEBUG_RADIO_TRANSMIT */ - -#if (USE_RT_DEBUG_PROC_RADIO_TX == 1) - [RT_DEBUG_PROC_RADIO_TX] = GPIO_DEBUG_PROC_RADIO_TX, -#endif /* USE_RT_DEBUG_PROC_RADIO_TX */ - -#if (USE_RT_DEBUG_RAL_TX_DONE == 1) - [RT_DEBUG_RAL_TX_DONE] = GPIO_DEBUG_RAL_TX_DONE, -#endif /* USE_RT_DEBUG_RAL_TX_DONE */ - -#if (USE_RT_DEBUG_RAL_TX_DONE_INCREMENT_BACKOFF_COUNT == 1) - [RT_DEBUG_RAL_TX_DONE_INCREMENT_BACKOFF_COUNT] = GPIO_DEBUG_RAL_TX_DONE_INCREMENT_BACKOFF_COUNT, -#endif /* USE_RT_DEBUG_RAL_TX_DONE_INCREMENT_BACKOFF_COUNT */ - -#if (USE_RT_DEBUG_RAL_TX_DONE_RST_BACKOFF_COUNT == 1) - [RT_DEBUG_RAL_TX_DONE_RST_BACKOFF_COUNT] = GPIO_DEBUG_RAL_TX_DONE_RST_BACKOFF_COUNT, -#endif /* USE_RT_DEBUG_RAL_TX_DONE_RST_BACKOFF_COUNT */ - -#if (USE_RT_DEBUG_RAL_CONTINUE_RX == 1) - [RT_DEBUG_RAL_CONTINUE_RX] = GPIO_DEBUG_RAL_CONTINUE_RX, -#endif /* USE_RT_DEBUG_RAL_CONTINUE_RX */ - -#if (USE_RT_DEBUG_RAL_PERFORM_CCA == 1) - [RT_DEBUG_RAL_PERFORM_CCA] = GPIO_DEBUG_RAL_PERFORM_CCA, -#endif /* USE_RT_DEBUG_RAL_PERFORM_CCA */ - -#if (USE_RT_DEBUG_RAL_ENABLE_TRANSMITTER == 1) - [RT_DEBUG_RAL_ENABLE_TRANSMITTER] = GPIO_DEBUG_RAL_ENABLE_TRANSMITTER, -#endif /* USE_RT_DEBUG_RAL_ENABLE_TRANSMITTER */ - -#if (USE_RT_DEBUG_LLHWC_GET_CH_IDX_ALGO_2 == 1) - [RT_DEBUG_LLHWC_GET_CH_IDX_ALGO_2] = GPIO_DEBUG_LLHWC_GET_CH_IDX_ALGO_2, -#endif /* USE_RT_DEBUG_LLHWC_GET_CH_IDX_ALGO_2 */ - -/************************************************/ -/** Application signals in general debug table **/ -/************************************************/ - -#if (USE_RT_DEBUG_APP_APPE_INIT == 1) - [RT_DEBUG_APP_APPE_INIT] = GPIO_DEBUG_APP_APPE_INIT, -#endif /* USE_RT_DEBUG_OS_TMR_EVNT_CBK */ -}; +extern const st_gpio_debug_t general_debug_table[RT_DEBUG_SIGNALS_TOTAL_NUM]; #endif /* CFG_RT_DEBUG_GPIO_MODULE */ diff --git a/lib/stm32wba/BLE_TransparentMode/System/Config/Log/log_module_conf.h b/lib/stm32wba/BLE_TransparentMode/System/Config/Log/log_module_conf.h index 997b8a72d..67134f788 100644 --- a/lib/stm32wba/BLE_TransparentMode/System/Config/Log/log_module_conf.h +++ b/lib/stm32wba/BLE_TransparentMode/System/Config/Log/log_module_conf.h @@ -1,7 +1,7 @@ /* USER CODE BEGIN Header */ /** ****************************************************************************** - * @file log_module.h + * @file log_module_conf.h * @author MCD Application Team * @brief Header file of the log module. ****************************************************************************** diff --git a/lib/stm32wba/CMakeLists.txt b/lib/stm32wba/CMakeLists.txt index c4412b2cf..69ad95e15 100644 --- a/lib/stm32wba/CMakeLists.txt +++ b/lib/stm32wba/CMakeLists.txt @@ -8,10 +8,11 @@ zephyr_include_directories(BLE_TransparentMode/Core/Inc) zephyr_include_directories(BLE_TransparentMode/STM32_WPAN/Target) zephyr_include_directories(BLE_TransparentMode/System/Config/Debug_GPIO) zephyr_include_directories(BLE_TransparentMode/System/Config/Log) -zephyr_include_directories(BLE_TransparentMode/System/Interfaces) -zephyr_include_directories(BLE_TransparentMode/System/Modules) -zephyr_include_directories(BLE_TransparentMode/System/Modules/Flash) -zephyr_include_directories(BLE_TransparentMode/System/Modules/RTDebug) +zephyr_include_directories(Common/WPAN/Interfaces) +zephyr_include_directories(Common/WPAN/Modules) +zephyr_include_directories(Common/WPAN/Modules/Flash) +zephyr_include_directories(Common/WPAN/Modules/RTDebug) +zephyr_include_directories(Common/WPAN/Modules/Log) zephyr_include_directories(STM32_WPAN) zephyr_include_directories(STM32_WPAN/ble/stack/include) zephyr_include_directories(STM32_WPAN/ble/stack/include/auto) @@ -27,21 +28,21 @@ zephyr_sources(BLE_TransparentMode/STM32_WPAN/Target/bpka.c) zephyr_sources(BLE_TransparentMode/STM32_WPAN/Target/linklayer_plat.c) zephyr_sources(BLE_TransparentMode/STM32_WPAN/Target/ll_sys_if.c) zephyr_sources(BLE_TransparentMode/STM32_WPAN/Target/power_table.c) -zephyr_sources(BLE_TransparentMode/System/Config/Log/log_module.c) -zephyr_sources(BLE_TransparentMode/System/Interfaces/hw_pka.c) -zephyr_sources(BLE_TransparentMode/System/Interfaces/hw_pka_p256.c) -zephyr_sources(BLE_TransparentMode/System/Modules/scm.c) -zephyr_sources(BLE_TransparentMode/System/Modules/RTDebug/RTDebug.c) +zephyr_sources(Common/WPAN/Modules/Log/log_module.c) +zephyr_sources(Common/WPAN/Interfaces/hw_pka.c) +zephyr_sources(Common/WPAN/Interfaces/hw_pka_p256.c) +zephyr_sources(Common/WPAN/Modules/scm.c) +zephyr_sources(Common/WPAN/Modules/RTDebug/RTDebug.c) zephyr_sources(STM32_WPAN/link_layer/ll_sys/src/ll_sys_cs.c) zephyr_sources(STM32_WPAN/link_layer/ll_sys/src/ll_sys_dp_slp.c) zephyr_sources(STM32_WPAN/link_layer/ll_sys/src/ll_sys_intf.c) zephyr_sources(STM32_WPAN/link_layer/ll_sys/src/ll_sys_startup.c) if(CONFIG_FLASH) - zephyr_sources(BLE_TransparentMode/System/Modules/Flash/flash_manager.c) - zephyr_sources(BLE_TransparentMode/System/Modules/Flash/flash_driver.c) - zephyr_sources(BLE_TransparentMode/System/Modules/stm_list.c) - zephyr_sources(BLE_TransparentMode/System/Modules/Flash/rf_timing_synchro.c) + zephyr_sources(Common/WPAN/Modules/Flash/flash_manager.c) + zephyr_sources(Common/WPAN/Modules/Flash/flash_driver.c) + zephyr_sources(Common/WPAN/Modules/stm_list.c) + zephyr_sources(Common/WPAN/Modules/Flash/rf_timing_synchro.c) endif() set(STM32WBA_BLE_LIB_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../zephyr/blobs/stm32wba/lib) @@ -58,10 +59,22 @@ add_dependencies( set_target_properties( stm32wba_ble_lib PROPERTIES IMPORTED_LOCATION ${STM32WBA_BLE_LIB_DIR}/stm32wba_ble_stack_llo.a ) -set_target_properties( - stm32wba_ll_lib PROPERTIES IMPORTED_LOCATION ${STM32WBA_BLE_LIB_DIR}/LinkLayer_BLE_Full_lib.a -) +# Selecting the proper version of link layer lib according the soc +# Checking all the soc variants and not simply relying on board name + +if(CONFIG_SOC_STM32WBA65XX) + message(STATUS "STM32WBA6 link layer lib selected") + set(LL_LIB "WBA6_LinkLayer_BLE_Full_lib.a") +endif() + +if(CONFIG_SOC_STM32WBA55XX OR SOC_STM32WBA52XX) + message(STATUS "STM32WBA5 link layer lib selected") + set(LL_LIB "LinkLayer_BLE_Full_lib.a") +endif() + +# Using the selected version of link layer lib +set_target_properties(stm32wba_ll_lib PROPERTIES IMPORTED_LOCATION ${STM32WBA_BLE_LIB_DIR}/${LL_LIB}) set_target_properties(stm32wba_ble_lib PROPERTIES INTERFACE_INCLUDE_DIRECTORIES ${STM32WBA_BLE_LIB_INCLUDE_DIR}) set_target_properties(stm32wba_ll_lib PROPERTIES INTERFACE_INCLUDE_DIRECTORIES ${STM32WBA_LL_LIB_INCLUDE_DIR}) diff --git a/lib/stm32wba/BLE_TransparentMode/System/Interfaces/hw.h b/lib/stm32wba/Common/WPAN/Interfaces/hw.h similarity index 98% rename from lib/stm32wba/BLE_TransparentMode/System/Interfaces/hw.h rename to lib/stm32wba/Common/WPAN/Interfaces/hw.h index 905f103d9..8129950ed 100644 --- a/lib/stm32wba/BLE_TransparentMode/System/Interfaces/hw.h +++ b/lib/stm32wba/Common/WPAN/Interfaces/hw.h @@ -1,4 +1,3 @@ -/* USER CODE BEGIN Header */ /** ****************************************************************************** * @file hw.h @@ -16,7 +15,6 @@ * ****************************************************************************** */ -/* USER CODE END Header */ #ifndef HW_H__ #define HW_H__ @@ -115,6 +113,16 @@ extern void HW_AES_SetKey( uint32_t mode, extern void HW_AES_Crypt( const uint32_t* input, uint32_t* output ); +/* + * HW_AES_Crypt + * + * Encrypts/decrypts the 16-byte input data ("input"). + * Result is written in the 16-byte buffer ("output") allocated by the user. + * + * Note : input & output are 8 bits aligned. + */ +extern void HW_AES_Crypt8( const uint8_t* input, uint8_t* output ); + /* * HW_AES_Disable * diff --git a/lib/stm32wba/BLE_TransparentMode/System/Interfaces/hw_aes.c b/lib/stm32wba/Common/WPAN/Interfaces/hw_aes.c similarity index 87% rename from lib/stm32wba/BLE_TransparentMode/System/Interfaces/hw_aes.c rename to lib/stm32wba/Common/WPAN/Interfaces/hw_aes.c index 9c3687fba..d38288197 100644 --- a/lib/stm32wba/BLE_TransparentMode/System/Interfaces/hw_aes.c +++ b/lib/stm32wba/Common/WPAN/Interfaces/hw_aes.c @@ -1,4 +1,3 @@ -/* USER CODE BEGIN Header */ /** ****************************************************************************** * @file hw_aes.c @@ -16,7 +15,6 @@ * ****************************************************************************** */ -/* USER CODE END Header */ #include "app_common.h" #include "stm32wbaxx_ll_bus.h" @@ -30,6 +28,9 @@ #define HW_AES_CLOCK_IS_ENABLE( ) LL_AHB2_GRP1_IsEnabledClock( LL_AHB2_GRP1_PERIPH_AES ) +#define AES_BLOCK_SIZE_WORD (4U) +#define AES_BLOCK_SIZE_BYTE (16U) + /*****************************************************************************/ typedef struct @@ -178,6 +179,38 @@ void HW_AES_Disable( void ) /*****************************************************************************/ +void HW_AES_Crypt8( const uint8_t * pInput, uint8_t * pOutput ) +{ + uint32_t pTemp[AES_BLOCK_SIZE_WORD]; + + // Transfer 8 -> 32 bits */ + memcpy( pTemp, pInput, AES_BLOCK_SIZE_BYTE ); + + /* Write the input block into the input FIFO */ + HW_AESX->DINR = __REV( pTemp[0] ); + HW_AESX->DINR = __REV( pTemp[1] ); + HW_AESX->DINR = __REV( pTemp[2] ); + HW_AESX->DINR = __REV( pTemp[3] ); + + // -- Wait for CCF flag to be raised / + while ( (HW_AESX->SR & AES_SR_CCF) == 0x00u ) + { } + + /* Read the output block from the output FIFO */ + pTemp[0] = __REV( HW_AESX->DOUTR ); + pTemp[1] = __REV( HW_AESX->DOUTR ); + pTemp[2] = __REV( HW_AESX->DOUTR ); + pTemp[3] = __REV( HW_AESX->DOUTR ); + + /* Transfer 32 -> 8 bits */ + memcpy( pOutput, pTemp, AES_BLOCK_SIZE_BYTE ); + + /* Clear CCF Flag */ + HW_AESX->ICR |= AES_ICR_CCF; +} + +/*****************************************************************************/ + void HW_AES_InitCcm( uint8_t decrypt, const uint8_t* key, const uint32_t* b0, diff --git a/lib/stm32wba/BLE_TransparentMode/System/Interfaces/hw_if.h b/lib/stm32wba/Common/WPAN/Interfaces/hw_if.h similarity index 79% rename from lib/stm32wba/BLE_TransparentMode/System/Interfaces/hw_if.h rename to lib/stm32wba/Common/WPAN/Interfaces/hw_if.h index 671298ddd..c1b9ac90b 100644 --- a/lib/stm32wba/BLE_TransparentMode/System/Interfaces/hw_if.h +++ b/lib/stm32wba/Common/WPAN/Interfaces/hw_if.h @@ -1,4 +1,3 @@ -/* USER CODE BEGIN Header */ /** ****************************************************************************** * @file hw_if.h @@ -16,7 +15,6 @@ * ****************************************************************************** */ -/* USER CODE END Header */ /* Define to prevent recursive inclusion -------------------------------------*/ #ifndef HW_IF_H @@ -41,56 +39,26 @@ extern "C" { #include "stm32wbaxx_ll_rtc.h" /* Private includes ----------------------------------------------------------*/ -/* USER CODE BEGIN Includes */ - -/* USER CODE END Includes */ /* Private typedef -----------------------------------------------------------*/ -/* USER CODE BEGIN PTD */ - -/* USER CODE END PTD */ /* Private define ------------------------------------------------------------*/ -/* USER CODE BEGIN PD */ - -/* USER CODE END PD */ /* Exported types ------------------------------------------------------------*/ -/* USER CODE BEGIN ET */ - -/* USER CODE END ET */ /* Exported constants --------------------------------------------------------*/ -/* USER CODE BEGIN EC */ - -/* USER CODE END EC */ /* External variables --------------------------------------------------------*/ -/* USER CODE BEGIN EV */ - -/* USER CODE END EV */ /* Private variables ---------------------------------------------------------*/ -/* USER CODE BEGIN PV */ - -/* USER CODE END PV */ /* Exported macro ------------------------------------------------------------*/ -/* USER CODE BEGIN EM */ - -/* USER CODE END EM */ /* Private function prototypes -----------------------------------------------*/ -/* USER CODE BEGIN PFP */ - -/* USER CODE END PFP */ /* Exported functions prototypes ---------------------------------------------*/ -/* USER CODE BEGIN EFP */ - -/* USER CODE END EFP */ #ifdef __cplusplus } diff --git a/lib/stm32wba/BLE_TransparentMode/System/Interfaces/hw_pka.c b/lib/stm32wba/Common/WPAN/Interfaces/hw_pka.c similarity index 98% rename from lib/stm32wba/BLE_TransparentMode/System/Interfaces/hw_pka.c rename to lib/stm32wba/Common/WPAN/Interfaces/hw_pka.c index 0ea4982b1..6fa576192 100644 --- a/lib/stm32wba/BLE_TransparentMode/System/Interfaces/hw_pka.c +++ b/lib/stm32wba/Common/WPAN/Interfaces/hw_pka.c @@ -1,4 +1,3 @@ -/* USER CODE BEGIN Header */ /** ****************************************************************************** * @file hw_pka.c @@ -16,7 +15,6 @@ * ****************************************************************************** */ -/* USER CODE END Header */ #include "app_common.h" #include "stm32wbaxx_ll_bus.h" diff --git a/lib/stm32wba/BLE_TransparentMode/System/Interfaces/hw_pka_p256.c b/lib/stm32wba/Common/WPAN/Interfaces/hw_pka_p256.c similarity index 96% rename from lib/stm32wba/BLE_TransparentMode/System/Interfaces/hw_pka_p256.c rename to lib/stm32wba/Common/WPAN/Interfaces/hw_pka_p256.c index 64aa3028b..f67e0392e 100644 --- a/lib/stm32wba/BLE_TransparentMode/System/Interfaces/hw_pka_p256.c +++ b/lib/stm32wba/Common/WPAN/Interfaces/hw_pka_p256.c @@ -1,8 +1,9 @@ -/* USER CODE BEGIN Header */ /** ****************************************************************************** - * File Name : - * Description : + * @file hw_pka_p256.c + * @author MCD Application Team + * @brief This file is an optional part of the PKA driver for STM32WBA. + * It is dedicated to the P256 elliptic curve. ****************************************************************************** * @attention * @@ -15,7 +16,6 @@ * ****************************************************************************** */ -/* USER CODE END Header */ #include "app_common.h" #include "stm32wbaxx_ll_pka.h" diff --git a/lib/stm32wba/BLE_TransparentMode/System/Modules/Flash/flash_driver.c b/lib/stm32wba/Common/WPAN/Modules/Flash/flash_driver.c similarity index 97% rename from lib/stm32wba/BLE_TransparentMode/System/Modules/Flash/flash_driver.c rename to lib/stm32wba/Common/WPAN/Modules/Flash/flash_driver.c index 026ea83cc..25f0dec75 100644 --- a/lib/stm32wba/BLE_TransparentMode/System/Modules/Flash/flash_driver.c +++ b/lib/stm32wba/Common/WPAN/Modules/Flash/flash_driver.c @@ -1,4 +1,3 @@ -/* USER CODE BEGIN Header */ /** ****************************************************************************** * @file flash_driver.c @@ -8,7 +7,7 @@ ****************************************************************************** * @attention * - * Copyright (c) 2024 STMicroelectronics. + * Copyright (c) 2023 STMicroelectronics. * All rights reserved. * * This software is licensed under terms that can be found in the LICENSE file @@ -17,7 +16,6 @@ * ****************************************************************************** */ -/* USER CODE END Header */ /* Includes ------------------------------------------------------------------*/ #include "flash_driver.h" diff --git a/lib/stm32wba/BLE_TransparentMode/System/Modules/Flash/flash_driver.h b/lib/stm32wba/Common/WPAN/Modules/Flash/flash_driver.h similarity index 98% rename from lib/stm32wba/BLE_TransparentMode/System/Modules/Flash/flash_driver.h rename to lib/stm32wba/Common/WPAN/Modules/Flash/flash_driver.h index d7c5f9b47..02e297933 100644 --- a/lib/stm32wba/BLE_TransparentMode/System/Modules/Flash/flash_driver.h +++ b/lib/stm32wba/Common/WPAN/Modules/Flash/flash_driver.h @@ -1,4 +1,3 @@ -/* USER CODE BEGIN Header */ /** ****************************************************************************** * @file flash_driver.h @@ -16,7 +15,6 @@ * ****************************************************************************** */ -/* USER CODE END Header */ /* Define to prevent recursive inclusion -------------------------------------*/ #ifndef FLASH_DRIVER_H diff --git a/lib/stm32wba/BLE_TransparentMode/System/Modules/Flash/flash_manager.c b/lib/stm32wba/Common/WPAN/Modules/Flash/flash_manager.c similarity index 91% rename from lib/stm32wba/BLE_TransparentMode/System/Modules/Flash/flash_manager.c rename to lib/stm32wba/Common/WPAN/Modules/Flash/flash_manager.c index d71597306..5c3ff0680 100644 --- a/lib/stm32wba/BLE_TransparentMode/System/Modules/Flash/flash_manager.c +++ b/lib/stm32wba/Common/WPAN/Modules/Flash/flash_manager.c @@ -1,4 +1,3 @@ -/* USER CODE BEGIN Header */ /** ****************************************************************************** * @file flash_manager.c @@ -17,7 +16,6 @@ * ****************************************************************************** */ -/* USER CODE END Header */ /* Includes ------------------------------------------------------------------*/ #include @@ -169,7 +167,7 @@ FM_Cmd_Status_t FM_Write(uint32_t *Src, uint32_t *Dest, int32_t Size, FM_Callbac FM_ProcessRequest(); } - LOG_INFO_SYSTEM("\r\nFM_Write - Returned value : %d", status); + LOG_DEBUG_SYSTEM("\r\nFM_Write - Returned value : %d", status); return status; } @@ -218,7 +216,7 @@ FM_Cmd_Status_t FM_Erase(uint32_t FirstSect, uint32_t NbrSect, FM_CallbackNode_t FM_ProcessRequest(); } - LOG_INFO_SYSTEM("\r\nFM_Erase - Returned value : %d", status); + LOG_DEBUG_SYSTEM("\r\nFM_Erase - Returned value : %d", status); return status; } @@ -239,11 +237,11 @@ void FM_BackgroundProcess (void) { case FM_BKGND_NOWINDOW_FLASHOP: { - LOG_INFO_SYSTEM("\r\nFM_BackgroundProcess - Case FM_BKGND_NOWINDOW_FLASHOP"); + LOG_DEBUG_SYSTEM("\r\nFM_BackgroundProcess - Case FM_BKGND_NOWINDOW_FLASHOP"); if (fm_flashop == FM_WRITE_OP) { - LOG_INFO_SYSTEM("\r\nFM_BackgroundProcess - Case FM_BKGND_NOWINDOW_FLASHOP - Write operation"); + LOG_DEBUG_SYSTEM("\r\nFM_BackgroundProcess - Case FM_BKGND_NOWINDOW_FLASHOP - Write operation"); /* Update duration time value */ duration = TIME_WINDOW_WRITE_REQUEST; @@ -277,7 +275,7 @@ void FM_BackgroundProcess (void) } else { - LOG_INFO_SYSTEM("\r\nFM_BackgroundProcess - Case FM_BKGND_NOWINDOW_FLASHOP - Erase operation"); + LOG_DEBUG_SYSTEM("\r\nFM_BackgroundProcess - Case FM_BKGND_NOWINDOW_FLASHOP - Erase operation"); /* Update duration time value */ duration = TIME_WINDOW_ERASE_REQUEST; @@ -311,23 +309,23 @@ void FM_BackgroundProcess (void) case FM_BKGND_WINDOWED_FLASHOP: { - LOG_INFO_SYSTEM("\r\nFM_BackgroundProcess - Case FM_BKGND_WINDOWED_FLASHOP"); + LOG_DEBUG_SYSTEM("\r\nFM_BackgroundProcess - Case FM_BKGND_WINDOWED_FLASHOP"); if (fm_window_granted == false) { - LOG_INFO_SYSTEM("\r\nFM_BackgroundProcess - Case FM_BKGND_WINDOWED_FLASHOP - No time window granted yet, request one"); + LOG_DEBUG_SYSTEM("\r\nFM_BackgroundProcess - Case FM_BKGND_WINDOWED_FLASHOP - No time window granted yet, request one"); /* No time window granted yet, request one */ RFTS_ReqWindow(duration, &FM_WindowAllowed_Callback); } else { - LOG_INFO_SYSTEM("\r\nFM_BackgroundProcess - Case FM_BKGND_WINDOWED_FLASHOP - Time window granted"); + LOG_DEBUG_SYSTEM("\r\nFM_BackgroundProcess - Case FM_BKGND_WINDOWED_FLASHOP - Time window granted"); if (fm_flashop == FM_WRITE_OP) { /* Flash Write operation */ - LOG_INFO_SYSTEM("\r\nFM_BackgroundProcess - Case FM_BKGND_WINDOWED_FLASHOP - Write operation"); + LOG_DEBUG_SYSTEM("\r\nFM_BackgroundProcess - Case FM_BKGND_WINDOWED_FLASHOP - Write operation"); HAL_FLASH_Unlock(); @@ -351,7 +349,7 @@ void FM_BackgroundProcess (void) else { /* Flash Erase operation */ - LOG_INFO_SYSTEM("\r\nFM_BackgroundProcess - Case FM_BKGND_WINDOWED_FLASHOP - Erase operation"); + LOG_DEBUG_SYSTEM("\r\nFM_BackgroundProcess - Case FM_BKGND_WINDOWED_FLASHOP - Erase operation"); HAL_FLASH_Unlock(); @@ -416,7 +414,7 @@ void FM_BackgroundProcess (void) else { /* Flash operation not complete yet */ - LOG_INFO_SYSTEM("\r\nFM_BackgroundProcess - Flash operation not complete yet, request a new time window"); + LOG_DEBUG_SYSTEM("\r\nFM_BackgroundProcess - Flash operation not complete yet, request a new time window"); /* Request a new time window */ RFTS_ReqWindow(duration, &FM_WindowAllowed_Callback); @@ -507,7 +505,7 @@ static void FM_WindowAllowed_Callback(void) { fm_window_granted = true; - LOG_INFO_SYSTEM("\r\nFM_WindowAllowed_Callback"); + LOG_DEBUG_SYSTEM("\r\nFM_WindowAllowed_Callback"); /* Flash operation to be executed in background */ FM_ProcessRequest(); diff --git a/lib/stm32wba/BLE_TransparentMode/System/Modules/Flash/flash_manager.h b/lib/stm32wba/Common/WPAN/Modules/Flash/flash_manager.h similarity index 96% rename from lib/stm32wba/BLE_TransparentMode/System/Modules/Flash/flash_manager.h rename to lib/stm32wba/Common/WPAN/Modules/Flash/flash_manager.h index 7627573f4..74aabf6d4 100644 --- a/lib/stm32wba/BLE_TransparentMode/System/Modules/Flash/flash_manager.h +++ b/lib/stm32wba/Common/WPAN/Modules/Flash/flash_manager.h @@ -1,4 +1,3 @@ -/* USER CODE BEGIN Header */ /** ****************************************************************************** * @file flash_manager.h @@ -7,7 +6,7 @@ ****************************************************************************** * @attention * - * Copyright (c) 2024 STMicroelectronics. + * Copyright (c) 2023 STMicroelectronics. * All rights reserved. * * This software is licensed under terms that can be found in the LICENSE file @@ -16,7 +15,6 @@ * ****************************************************************************** */ -/* USER CODE END Header */ /* Define to prevent recursive inclusion -------------------------------------*/ #ifndef FLASH_MANAGER_H diff --git a/lib/stm32wba/BLE_TransparentMode/System/Modules/Flash/rf_timing_synchro.c b/lib/stm32wba/Common/WPAN/Modules/Flash/rf_timing_synchro.c similarity index 99% rename from lib/stm32wba/BLE_TransparentMode/System/Modules/Flash/rf_timing_synchro.c rename to lib/stm32wba/Common/WPAN/Modules/Flash/rf_timing_synchro.c index 1142b8256..d32b73994 100644 --- a/lib/stm32wba/BLE_TransparentMode/System/Modules/Flash/rf_timing_synchro.c +++ b/lib/stm32wba/Common/WPAN/Modules/Flash/rf_timing_synchro.c @@ -1,4 +1,3 @@ -/* USER CODE BEGIN Header */ /** ****************************************************************************** * @file rf_timing_synchro.c @@ -18,7 +17,6 @@ * ****************************************************************************** */ -/* USER CODE END Header */ /* Includes ------------------------------------------------------------------*/ #include @@ -30,9 +28,13 @@ #include "flash_driver.h" /* Global variables ----------------------------------------------------------*/ + /* Private typedef -----------------------------------------------------------*/ + /* Private defines -----------------------------------------------------------*/ + /* Private macros ------------------------------------------------------------*/ + /* Private variables ---------------------------------------------------------*/ #if (DISABLE_RFTS_EXT_EVNT_HNDLR == 0u) diff --git a/lib/stm32wba/BLE_TransparentMode/System/Modules/Flash/rf_timing_synchro.h b/lib/stm32wba/Common/WPAN/Modules/Flash/rf_timing_synchro.h similarity index 97% rename from lib/stm32wba/BLE_TransparentMode/System/Modules/Flash/rf_timing_synchro.h rename to lib/stm32wba/Common/WPAN/Modules/Flash/rf_timing_synchro.h index cdef0cf30..cec6f09dd 100644 --- a/lib/stm32wba/BLE_TransparentMode/System/Modules/Flash/rf_timing_synchro.h +++ b/lib/stm32wba/Common/WPAN/Modules/Flash/rf_timing_synchro.h @@ -1,4 +1,3 @@ -/* USER CODE BEGIN Header */ /** ****************************************************************************** * @file rf_timing_synchro.h @@ -16,7 +15,6 @@ * ****************************************************************************** */ -/* USER CODE END Header */ /* Define to prevent recursive inclusion -------------------------------------*/ #ifndef RF_TIMING_SYNCHRO_H @@ -40,8 +38,11 @@ typedef enum } RFTS_Cmd_Status_t; /* Exported constants --------------------------------------------------------*/ + /* Exported variables --------------------------------------------------------*/ + /* Exported macros -----------------------------------------------------------*/ + /* Exported functions prototypes ---------------------------------------------*/ RFTS_Cmd_Status_t RFTS_ReqWindow(uint32_t Duration, void (*Callback)(void)); RFTS_Cmd_Status_t RFTS_RelWindow(void); diff --git a/lib/stm32wba/BLE_TransparentMode/System/Config/Log/log_module.c b/lib/stm32wba/Common/WPAN/Modules/Log/log_module.c similarity index 100% rename from lib/stm32wba/BLE_TransparentMode/System/Config/Log/log_module.c rename to lib/stm32wba/Common/WPAN/Modules/Log/log_module.c diff --git a/lib/stm32wba/BLE_TransparentMode/System/Config/Log/log_module.h b/lib/stm32wba/Common/WPAN/Modules/Log/log_module.h similarity index 100% rename from lib/stm32wba/BLE_TransparentMode/System/Config/Log/log_module.h rename to lib/stm32wba/Common/WPAN/Modules/Log/log_module.h diff --git a/lib/stm32wba/BLE_TransparentMode/System/Modules/RTDebug/RTDebug.c b/lib/stm32wba/Common/WPAN/Modules/RTDebug/RTDebug.c similarity index 97% rename from lib/stm32wba/BLE_TransparentMode/System/Modules/RTDebug/RTDebug.c rename to lib/stm32wba/Common/WPAN/Modules/RTDebug/RTDebug.c index 82c8a9229..aa4d4d184 100644 --- a/lib/stm32wba/BLE_TransparentMode/System/Modules/RTDebug/RTDebug.c +++ b/lib/stm32wba/Common/WPAN/Modules/RTDebug/RTDebug.c @@ -1,4 +1,3 @@ -/* USER CODE BEGIN Header */ /** ****************************************************************************** * @file RTDebug.c @@ -16,7 +15,7 @@ * ****************************************************************************** */ -/* USER CODE END Header */ + #include "RTDebug.h" #include "local_debug_tables.h" #include "stm32wbaxx_hal.h" diff --git a/lib/stm32wba/BLE_TransparentMode/System/Modules/RTDebug/RTDebug.h b/lib/stm32wba/Common/WPAN/Modules/RTDebug/RTDebug.h similarity index 98% rename from lib/stm32wba/BLE_TransparentMode/System/Modules/RTDebug/RTDebug.h rename to lib/stm32wba/Common/WPAN/Modules/RTDebug/RTDebug.h index 880b8fc91..e819c6225 100644 --- a/lib/stm32wba/BLE_TransparentMode/System/Modules/RTDebug/RTDebug.h +++ b/lib/stm32wba/Common/WPAN/Modules/RTDebug/RTDebug.h @@ -1,4 +1,3 @@ -/* USER CODE BEGIN Header */ /** ****************************************************************************** * @file RTDebug.h @@ -16,7 +15,7 @@ * ****************************************************************************** */ -/* USER CODE END Header */ + #ifndef SYSTEM_DEBUG_H #define SYSTEM_DEBUG_H diff --git a/lib/stm32wba/BLE_TransparentMode/System/Modules/RTDebug/debug_signals.h b/lib/stm32wba/Common/WPAN/Modules/RTDebug/debug_signals.h similarity index 97% rename from lib/stm32wba/BLE_TransparentMode/System/Modules/RTDebug/debug_signals.h rename to lib/stm32wba/Common/WPAN/Modules/RTDebug/debug_signals.h index 36001b4d6..5f3fba4b1 100644 --- a/lib/stm32wba/BLE_TransparentMode/System/Modules/RTDebug/debug_signals.h +++ b/lib/stm32wba/Common/WPAN/Modules/RTDebug/debug_signals.h @@ -1,4 +1,3 @@ -/* USER CODE BEGIN Header */ /** ****************************************************************************** * @file debug_signals.h @@ -16,7 +15,7 @@ * ****************************************************************************** */ -/* USER CODE END Header */ + #ifndef DEBUG_SIGNALS_H #define DEBUG_SIGNALS_H @@ -40,6 +39,9 @@ typedef enum { LOW_POWER_STOP_MODE_ENTER, LOW_POWER_STOP_MODE_EXIT, LOW_POWER_STOP_MODE_ACTIVE, + LOW_POWER_STOP2_MODE_ENTER, + LOW_POWER_STOP2_MODE_EXIT, + LOW_POWER_STOP2_MODE_ACTIVE, LOW_POWER_STANDBY_MODE_ENTER, LOW_POWER_STANDBY_MODE_EXIT, LOW_POWER_STANDBY_MODE_ACTIVE, @@ -108,7 +110,19 @@ typedef enum { #if (USE_RT_DEBUG_LOW_POWER_STOP_MODE_ACTIVE == 1) RT_DEBUG_LOW_POWER_STOP_MODE_ACTIVE, #endif /* USE_RT_DEBUG_LOW_POWER_STOP_MODE_ACTIVE */ - + +#if (USE_RT_DEBUG_LOW_POWER_STOP2_MODE_ENTER == 1) + RT_DEBUG_LOW_POWER_STOP2_MODE_ENTER, +#endif /* USE_RT_DEBUG_LOW_POWER_STOP2_MODE_ENTER */ + +#if (USE_RT_DEBUG_LOW_POWER_STOP2_MODE_EXIT == 1) + RT_DEBUG_LOW_POWER_STOP2_MODE_EXIT, +#endif /* USE_RT_DEBUG_LOW_POWER_STOP2_MODE_EXIT */ + +#if (USE_RT_DEBUG_LOW_POWER_STOP2_MODE_ACTIVE == 1) + RT_DEBUG_LOW_POWER_STOP2_MODE_ACTIVE, +#endif /* USE_RT_DEBUG_LOW_POWER_STOP2_MODE_ACTIVE */ + #if (USE_RT_DEBUG_LOW_POWER_STANDBY_MODE_ENTER == 1) RT_DEBUG_LOW_POWER_STANDBY_MODE_ENTER, #endif /* USE_RT_DEBUG_LOW_POWER_STANDBY_MODE_ENTER */ diff --git a/lib/stm32wba/BLE_TransparentMode/System/Modules/RTDebug/local_debug_tables.h b/lib/stm32wba/Common/WPAN/Modules/RTDebug/local_debug_tables.h similarity index 98% rename from lib/stm32wba/BLE_TransparentMode/System/Modules/RTDebug/local_debug_tables.h rename to lib/stm32wba/Common/WPAN/Modules/RTDebug/local_debug_tables.h index 85f5955b4..1afa50791 100644 --- a/lib/stm32wba/BLE_TransparentMode/System/Modules/RTDebug/local_debug_tables.h +++ b/lib/stm32wba/Common/WPAN/Modules/RTDebug/local_debug_tables.h @@ -1,4 +1,3 @@ -/* USER CODE BEGIN Header */ /** ****************************************************************************** * @file local_debug_tables.h @@ -17,7 +16,7 @@ * ****************************************************************************** */ -/* USER CODE END Header */ + #ifndef LOCAL_DEBUG_TABLES_H #define LOCAL_DEBUG_TABLES_H @@ -100,6 +99,24 @@ static const rt_debug_signal_t system_debug_table[] = { [LOW_POWER_STOP_MODE_ACTIVE] = RT_DEBUG_SIGNAL_UNUSED, #endif /* USE_RT_DEBUG_LOW_POWER_STOP_MODE_ACTIVE */ +#if (USE_RT_DEBUG_LOW_POWER_STOP2_MODE_ENTER == 1) + [LOW_POWER_STOP2_MODE_ENTER] = RT_DEBUG_LOW_POWER_STOP2_MODE_ENTER, +#else + [LOW_POWER_STOP2_MODE_ENTER] = RT_DEBUG_SIGNAL_UNUSED, +#endif /* USE_RT_DEBUG_LOW_POWER_STOP2_MODE_ENTER */ + +#if (USE_RT_DEBUG_LOW_POWER_STOP2_MODE_EXIT == 1) + [LOW_POWER_STOP2_MODE_EXIT] = RT_DEBUG_LOW_POWER_STOP2_MODE_EXIT, +#else + [LOW_POWER_STOP2_MODE_EXIT] = RT_DEBUG_SIGNAL_UNUSED, +#endif /* USE_RT_DEBUG_LOW_POWER_STOP2_MODE_EXIT */ + +#if (USE_RT_DEBUG_LOW_POWER_STOP2_MODE_ACTIVE == 1) + [LOW_POWER_STOP2_MODE_ACTIVE] = RT_DEBUG_LOW_POWER_STOP2_MODE_ACTIVE, +#else + [LOW_POWER_STOP2_MODE_ACTIVE] = RT_DEBUG_SIGNAL_UNUSED, +#endif /* USE_RT_DEBUG_LOW_POWER_STOP2_MODE_ACTIVE */ + #if (USE_RT_DEBUG_LOW_POWER_STANDBY_MODE_ENTER == 1) [LOW_POWER_STANDBY_MODE_ENTER] = RT_DEBUG_LOW_POWER_STANDBY_MODE_ENTER, #else @@ -117,6 +134,7 @@ static const rt_debug_signal_t system_debug_table[] = { #else [LOW_POWER_STANDBY_MODE_ACTIVE] = RT_DEBUG_SIGNAL_UNUSED, #endif /* USE_RT_DEBUG_LOW_POWER_STANDBY_MODE_ACTIVE */ + }; /***********************************/ diff --git a/lib/stm32wba/BLE_TransparentMode/System/Modules/scm.c b/lib/stm32wba/Common/WPAN/Modules/scm.c similarity index 100% rename from lib/stm32wba/BLE_TransparentMode/System/Modules/scm.c rename to lib/stm32wba/Common/WPAN/Modules/scm.c diff --git a/lib/stm32wba/BLE_TransparentMode/System/Modules/scm.h b/lib/stm32wba/Common/WPAN/Modules/scm.h similarity index 100% rename from lib/stm32wba/BLE_TransparentMode/System/Modules/scm.h rename to lib/stm32wba/Common/WPAN/Modules/scm.h diff --git a/lib/stm32wba/BLE_TransparentMode/System/Modules/stm_list.c b/lib/stm32wba/Common/WPAN/Modules/stm_list.c similarity index 100% rename from lib/stm32wba/BLE_TransparentMode/System/Modules/stm_list.c rename to lib/stm32wba/Common/WPAN/Modules/stm_list.c diff --git a/lib/stm32wba/BLE_TransparentMode/System/Modules/stm_list.h b/lib/stm32wba/Common/WPAN/Modules/stm_list.h similarity index 100% rename from lib/stm32wba/BLE_TransparentMode/System/Modules/stm_list.h rename to lib/stm32wba/Common/WPAN/Modules/stm_list.h diff --git a/lib/stm32wba/BLE_TransparentMode/System/Modules/utilities_common.h b/lib/stm32wba/Common/WPAN/Modules/utilities_common.h similarity index 96% rename from lib/stm32wba/BLE_TransparentMode/System/Modules/utilities_common.h rename to lib/stm32wba/Common/WPAN/Modules/utilities_common.h index dd8b11d46..9dfe35d8d 100644 --- a/lib/stm32wba/BLE_TransparentMode/System/Modules/utilities_common.h +++ b/lib/stm32wba/Common/WPAN/Modules/utilities_common.h @@ -1,4 +1,3 @@ -/* USER CODE BEGIN Header */ /** ****************************************************************************** * @file utilities_common.h @@ -16,7 +15,6 @@ * ****************************************************************************** */ -/* USER CODE END Header */ /* Define to prevent recursive inclusion -------------------------------------*/ #ifndef UTILITIES_COMMON_H @@ -141,8 +139,11 @@ extern "C" { } while(0) #define STM32WBA5x_DEFAULT_SCA_RANGE (0) -#define STM32WBA5x_REV_ID_A_SCA_RANGE (STM32WBA5x_DEFAULT_SCA_RANGE) -#define STM32WBA5x_REV_ID_B_SCA_RANGE (4) +#define STM32WBA5x_REV_ID_A_SCA_RANGE (0) +#define STM32WBA5x_REV_ID_B_SCA_RANGE (0) +#ifdef STM32WBA65xx +#define STM32WBA6x_SCA_RANGE (0) +#endif /* Macro helper for optimizing by speed specific functions. * For IAR only: The functions with this definition will be optimized @@ -159,3 +160,4 @@ extern "C" { #define UTIL_UNUSED(X) (void)X /* To avoid gcc/g++ warnings */ #endif /* UTILITIES_COMMON_H */ + diff --git a/lib/stm32wba/README.rst b/lib/stm32wba/README.rst index 4a2981cd1..6b7e84fde 100644 --- a/lib/stm32wba/README.rst +++ b/lib/stm32wba/README.rst @@ -6,7 +6,7 @@ Origin: https://github.com/STMicroelectronics/STM32CubeWBA Status: - version v1.5.0 + version v1.6.0 Purpose: This library is used on STM32WBA series to port BLE controller library in @@ -43,40 +43,41 @@ Description: Middlewares/ST/STM32_WPAN/link_layer/ll_sys/src/ll_sys_startup.c Middlewares/ST/STM32_WPAN/link_layer/ll_sys/inc/ll_sys_startup.h Middlewares/ST/STM32_WPAN/stm32_wpan_common.h - Projects/NUCLEO-WBA55CG/Applications/BLE/BLE_TransparentMode/Core/Inc/app_common.h - Projects/NUCLEO-WBA55CG/Applications/BLE/BLE_TransparentMode/Core/Inc/app_conf.h - Projects/NUCLEO-WBA55CG/Applications/BLE/BLE_TransparentMode/Core/Inc/app_entry.h - Projects/NUCLEO-WBA55CG/Applications/BLE/BLE_TransparentMode/Core/Inc/utilities_conf.h - Projects/NUCLEO-WBA55CG/Applications/BLE/BLE_TransparentMode/Core/Inc/main.h - Projects/NUCLEO-WBA55CG/Applications/BLE/BLE_TransparentMode/System/Modules/Flash/rf_timing_synchro.c - Projects/NUCLEO-WBA55CG/Applications/BLE/BLE_TransparentMode/System/Modules/Flash/rf_timing_synchro.h - Projects/NUCLEO-WBA55CG/Applications/BLE/BLE_TransparentMode/System/Modules/Flash/flash_driver.c - Projects/NUCLEO-WBA55CG/Applications/BLE/BLE_TransparentMode/System/Modules/Flash/flash_driver.h - Projects/NUCLEO-WBA55CG/Applications/BLE/BLE_TransparentMode/System/Modules/Flash/flash_manager.c - Projects/NUCLEO-WBA55CG/Applications/BLE/BLE_TransparentMode/System/Modules/Flash/flash_manager.h - Projects/NUCLEO-WBA55CG/Applications/BLE/BLE_TransparentMode/System/Modules/RTDebug/debug_signals.h - Projects/NUCLEO-WBA55CG/Applications/BLE/BLE_TransparentMode/System/Modules/RTDebug/RTDebug.c - Projects/NUCLEO-WBA55CG/Applications/BLE/BLE_TransparentMode/System/Modules/RTDebug/RTDebug.h - Projects/NUCLEO-WBA55CG/Applications/BLE/BLE_TransparentMode/System/Modules/RTDebug/local_debug_tables.h - Projects/NUCLEO-WBA55CG/Applications/BLE/BLE_TransparentMode/System/Modules/scm.c - Projects/NUCLEO-WBA55CG/Applications/BLE/BLE_TransparentMode/System/Modules/scm.h - Projects/NUCLEO-WBA55CG/Applications/BLE/BLE_TransparentMode/System/Modules/stm_list.c - Projects/NUCLEO-WBA55CG/Applications/BLE/BLE_TransparentMode/System/Modules/stm_list.h - Projects/NUCLEO-WBA55CG/Applications/BLE/BLE_TransparentMode/System/Modules/utilities_common.h - Projects/NUCLEO-WBA55CG/Applications/BLE/BLE_TransparentMode/System/Interfaces/hw.h - Projects/NUCLEO-WBA55CG/Applications/BLE/BLE_TransparentMode/System/Interfaces/hw_aes.c - Projects/NUCLEO-WBA55CG/Applications/BLE/BLE_TransparentMode/System/Interfaces/hw_if.h - Projects/NUCLEO-WBA55CG/Applications/BLE/BLE_TransparentMode/System/Interfaces/hw_pka.c - Projects/NUCLEO-WBA55CG/Applications/BLE/BLE_TransparentMode/System/Interfaces/pka_p256.c - Projects/NUCLEO-WBA55CG/Applications/BLE/BLE_TransparentMode/System/Config/Log/log_module.c - Projects/NUCLEO-WBA55CG/Applications/BLE/BLE_TransparentMode/System/Config/Log/log_module.h - Projects/NUCLEO-WBA55CG/Applications/BLE/BLE_TransparentMode/System/Config/Debug_GPIO/app_debug.h - Projects/NUCLEO-WBA55CG/Applications/BLE/BLE_TransparentMode/System/Config/Debug_GPIO/debug_config.h - Projects/NUCLEO-WBA55CG/Applications/BLE/BLE_TransparentMode/STM32_WPAN/Target/power_table.c - Projects/NUCLEO-WBA55CG/Applications/BLE/BLE_TransparentMode/STM32_WPAN/Target/bpka.c - Projects/NUCLEO-WBA55CG/Applications/BLE/BLE_TransparentMode/STM32_WPAN/Target/bpka.h - Projects/NUCLEO-WBA55CG/Applications/BLE/BLE_TransparentMode/STM32_WPAN/Target/linklayer_plat.c - Projects/NUCLEO-WBA55CG/Applications/BLE/BLE_TransparentMode/STM32_WPAN/Target/ll_sys_if.c + Projects/NUCLEO-WBA65RI/Applications/BLE/BLE_TransparentMode/Core/Inc/app_common.h + Projects/NUCLEO-WBA65RI/Applications/BLE/BLE_TransparentMode/Core/Inc/app_conf.h + Projects/NUCLEO-WBA65RI/Applications/BLE/BLE_TransparentMode/Core/Inc/app_entry.h + Projects/NUCLEO-WBA65RI/Applications/BLE/BLE_TransparentMode/Core/Inc/utilities_conf.h + Projects/NUCLEO-WBA65RI/Applications/BLE/BLE_TransparentMode/Core/Inc/main.h + Projects/Common/WPAN/Modules/Flash/rf_timing_synchro.c + Projects/Common/WPAN/Modules/Flash/rf_timing_synchro.h + Projects/Common/WPAN/Modules/Flash/flash_driver.c + Projects/Common/WPAN/Modules/Flash/flash_driver.h + Projects/Common/WPAN/Modules/Flash/flash_manager.c + Projects/Common/WPAN/Modules/Flash/flash_manager.h + Projects/Common/WPAN/Modules/RTDebug/debug_signals.h + Projects/Common/WPAN/Modules/RTDebug/RTDebug.c + Projects/Common/WPAN/Modules/RTDebug/RTDebug.h + Projects/Common/WPAN/Modules/RTDebug/local_debug_tables.h + Projects/Common/WPAN/Modules/scm.c + Projects/Common/WPAN/Modules/scm.h + Projects/Common/WPAN/Modules/stm_list.c + Projects/Common/WPAN/Modules/stm_list.h + Projects/Common/WPAN/Modules/utilities_common.h + Projects/Common/WPAN/Interfaces/hw.h + Projects/Common/WPAN/Interfaces/hw_aes.c + Projects/Common/WPAN/Interfaces/hw_if.h + Projects/Common/WPAN/Interfaces/hw_pka.c + Projects/Common/WPAN/Interfaces/hw_pka_p256.c + Projects/Common/WPAN/Modules/Log/log_module.c + Projects/Common/WPAN/Modules/Log/log_module.h + Projects/NUCLEO-WBA65RI/Applications/BLE/BLE_TransparentMode/System/Config/Debug_GPIO/app_debug.h + Projects/NUCLEO-WBA65RI/Applications/BLE/BLE_TransparentMode/System/Config/Debug_GPIO/debug_config.h + Projects/NUCLEO-WBA65RI/Applications/BLE/BLE_TransparentMode/STM32_WPAN/Target/power_table.c + Projects/NUCLEO-WBA65RI/Applications/BLE/BLE_TransparentMode/STM32_WPAN/Target/bpka.c + Projects/NUCLEO-WBA65RI/Applications/BLE/BLE_TransparentMode/STM32_WPAN/Target/bpka.h + Projects/NUCLEO-WBA65RI/Applications/BLE/BLE_TransparentMode/STM32_WPAN/Target/linklayer_plat.c + Projects/NUCLEO-WBA65RI/Applications/BLE/BLE_TransparentMode/STM32_WPAN/Target/ll_sys_if.c + Projects/NUCLEO-WBA65RI/Applications/BLE/BLE_TransparentMode/STM32_WPAN/Target/ll_sys_if.h Utilities/trace/adv_trace/stm32_adv_trace.h Utilities/misc/stm32_mem.h Utilities/tim_serv/stm32_timer.h @@ -90,7 +91,7 @@ URL: https://github.com/STMicroelectronics/STM32CubeWBA Commit: - 06402010bb3e1eb4d49ee22cbe45d3408ce413c5 + e7d27c496416aae8f4ba8b3e84f963f0c5a0b69f Maintained-by: External diff --git a/lib/stm32wba/STM32_WPAN/ble/stack/include/auto/ble_types.h b/lib/stm32wba/STM32_WPAN/ble/stack/include/auto/ble_types.h index 0e36dbe76..437e2e463 100644 --- a/lib/stm32wba/STM32_WPAN/ble/stack/include/auto/ble_types.h +++ b/lib/stm32wba/STM32_WPAN/ble/stack/include/auto/ble_types.h @@ -5,7 +5,7 @@ ***************************************************************************** * @attention * - * Copyright (c) 2018-2024 STMicroelectronics. + * Copyright (c) 2018-2025 STMicroelectronics. * All rights reserved. * * This software is licensed under terms that can be found in the LICENSE file @@ -2916,17 +2916,6 @@ typedef __PACKED_STRUCT uint8_t Status; } aci_gap_send_pairing_req_rp0; -typedef __PACKED_STRUCT -{ - uint8_t Address[6]; -} aci_gap_resolve_private_addr_cp0; - -typedef __PACKED_STRUCT -{ - uint8_t Status; - uint8_t Actual_Address[6]; -} aci_gap_resolve_private_addr_rp0; - typedef __PACKED_STRUCT { uint16_t Advertising_Interval_Min; @@ -2974,12 +2963,14 @@ typedef __PACKED_STRUCT { uint8_t Peer_Address_Type; uint8_t Peer_Address[6]; -} aci_gap_is_device_bonded_cp0; +} aci_gap_check_bonded_device_cp0; typedef __PACKED_STRUCT { uint8_t Status; -} aci_gap_is_device_bonded_rp0; + uint8_t Id_Address_Type; + uint8_t Id_Address[6]; +} aci_gap_check_bonded_device_rp0; typedef __PACKED_STRUCT { @@ -4416,6 +4407,32 @@ typedef __PACKED_STRUCT uint16_t Supervision_Timeout; } hci_le_subrate_change_event_rp0; +typedef __PACKED_STRUCT +{ + uint8_t Status; + uint16_t Connection_Handle; + uint8_t CIG_Sync_Delay[3]; + uint8_t CIS_Sync_Delay[3]; + uint8_t Transport_Latency_C_To_P[3]; + uint8_t Transport_Latency_P_To_C[3]; + uint8_t PHY_C_To_P; + uint8_t PHY_P_To_C; + uint8_t NSE; + uint8_t BN_C_To_P; + uint8_t BN_P_To_C; + uint8_t FT_C_To_P; + uint8_t FT_P_To_C; + uint16_t Max_PDU_C_To_P; + uint16_t Max_PDU_P_To_C; + uint16_t ISO_Interval; + uint8_t Sub_Interval[3]; + uint16_t Max_SDU_C_To_P; + uint16_t Max_SDU_P_To_C; + uint8_t SDU_Interval_C_To_P[3]; + uint8_t SDU_Interval_P_To_C[3]; + uint8_t Framing; +} hci_le_cis_established_v2_event_rp0; + typedef __PACKED_STRUCT { uint8_t Last_State; @@ -4427,10 +4444,10 @@ typedef __PACKED_STRUCT typedef __PACKED_STRUCT { - uint8_t FW_Error_Type; + uint8_t Warning_Type; uint8_t Data_Length; uint8_t Data[(BLE_EVT_MAX_PARAM_LEN - 2) - 2]; -} aci_hal_fw_error_event_rp0; +} aci_hal_warning_event_rp0; typedef __PACKED_STRUCT { @@ -4457,6 +4474,11 @@ typedef __PACKED_STRUCT uint16_t Connection_Handle; } aci_gap_authorization_req_event_rp0; +typedef __PACKED_STRUCT +{ + uint16_t Connection_Handle; +} aci_gap_bond_lost_event_rp0; + typedef __PACKED_STRUCT { uint8_t Procedure_Code; diff --git a/lib/stm32wba/STM32_WPAN/ble/stack/include/ble_bufsize.h b/lib/stm32wba/STM32_WPAN/ble/stack/include/ble_bufsize.h index e3e3d7f7e..70862c568 100644 --- a/lib/stm32wba/STM32_WPAN/ble/stack/include/ble_bufsize.h +++ b/lib/stm32wba/STM32_WPAN/ble/stack/include/ble_bufsize.h @@ -1,10 +1,11 @@ /***************************************************************************** * @file ble_bufsize.h + * * @brief Definition of BLE stack buffers size ***************************************************************************** * @attention * - * Copyright (c) 2018-2024 STMicroelectronics. + * Copyright (c) 2018-2025 STMicroelectronics. * All rights reserved. * * This software is licensed under terms that can be found in the LICENSE file diff --git a/lib/stm32wba/STM32_WPAN/ble/stack/include/ble_const.h b/lib/stm32wba/STM32_WPAN/ble/stack/include/ble_const.h index 58001e503..aea40af02 100644 --- a/lib/stm32wba/STM32_WPAN/ble/stack/include/ble_const.h +++ b/lib/stm32wba/STM32_WPAN/ble/stack/include/ble_const.h @@ -5,7 +5,7 @@ ***************************************************************************** * @attention * - * Copyright (c) 2018-2024 STMicroelectronics. + * Copyright (c) 2018-2025 STMicroelectronics. * All rights reserved. * * This software is licensed under terms that can be found in the LICENSE file diff --git a/lib/stm32wba/STM32_WPAN/ble/stack/include/ble_defs.h b/lib/stm32wba/STM32_WPAN/ble/stack/include/ble_defs.h index 77f6fe845..c08056544 100644 --- a/lib/stm32wba/STM32_WPAN/ble/stack/include/ble_defs.h +++ b/lib/stm32wba/STM32_WPAN/ble/stack/include/ble_defs.h @@ -5,7 +5,7 @@ ***************************************************************************** * @attention * - * Copyright (c) 2018-2024 STMicroelectronics. + * Copyright (c) 2018-2025 STMicroelectronics. * All rights reserved. * * This software is licensed under terms that can be found in the LICENSE file @@ -439,20 +439,21 @@ /* ------------------------------------------------------------------------- */ -/* Definitions for FW_Error_Type - * (ACI_HAL_FW_ERROR_EVENT) +/* Definitions for Warning_Type + * (ACI_HAL_WARNING_EVENT) */ -#define FW_L2CAP_RECOMBINATION_ERROR 0x01U -#define FW_GATT_UNEXPECTED_PEER_MESSAGE 0x02U -#define FW_NVM_LEVEL_WARNING 0x03U -#define FW_COC_RX_DATA_LENGTH_TOO_LARGE 0x04U -#define FW_ECOC_CONN_RSP_ALREADY_ASSIGNED_DCID 0x05U +#define WARNING_L2CAP_RECOMBINATION_FAILURE 0x01U +#define WARNING_GATT_UNEXPECTED_PEER_MESSAGE 0x02U +#define WARNING_NVM_ALMOST_FULL 0x03U +#define WARNING_COC_RX_DATA_LENGTH_TOO_LARGE 0x04U +#define WARNING_COC_ALREADY_ASSIGNED_DCID 0x05U +#define WARNING_SMP_UNEXPECTED_LTK_REQUEST 0x06U /* ------------------------------------------------------------------------- */ /* Offset for configuration values (see ACI_HAL_WRITE_CONFIG_DATA) */ -#define CONFIG_DATA_PUBADDR_OFFSET 0x00U +#define CONFIG_DATA_PUBLIC_ADDRESS_OFFSET 0x00U #define CONFIG_DATA_ER_OFFSET 0x08U #define CONFIG_DATA_IR_OFFSET 0x18U #define CONFIG_DATA_RANDOM_ADDRESS_OFFSET 0x2EU @@ -464,10 +465,11 @@ #define CONFIG_DATA_LL_RSSI_GOLDEN_RANGE_OFFSET 0xC2U #define CONFIG_DATA_LL_RPA_MODE_OFFSET 0xC3U #define CONFIG_DATA_LL_RX_ACL_CTRL_OFFSET 0xC4U +#define CONFIG_DATA_LL_MAX_DATA_EXT_OFFSET 0xD1U /* Length for configuration values (see ACI_HAL_WRITE_CONFIG_DATA) */ -#define CONFIG_DATA_PUBADDR_LEN 6 +#define CONFIG_DATA_PUBLIC_ADDRESS_LEN 6 #define CONFIG_DATA_ER_LEN 16 #define CONFIG_DATA_IR_LEN 16 #define CONFIG_DATA_RANDOM_ADDRESS_LEN 6 @@ -479,6 +481,7 @@ #define CONFIG_DATA_LL_RSSI_GOLDEN_RANGE_LEN 2 #define CONFIG_DATA_LL_RPA_MODE_LEN 1 #define CONFIG_DATA_LL_RX_ACL_CTRL_LEN 2 +#define CONFIG_DATA_LL_MAX_DATA_EXT_LEN 8 /* ------------------------------------------------------------------------- */ diff --git a/lib/stm32wba/STM32_WPAN/ble/stack/include/ble_std.h b/lib/stm32wba/STM32_WPAN/ble/stack/include/ble_std.h index 739f8ab4b..ea281f115 100644 --- a/lib/stm32wba/STM32_WPAN/ble/stack/include/ble_std.h +++ b/lib/stm32wba/STM32_WPAN/ble/stack/include/ble_std.h @@ -5,7 +5,7 @@ ****************************************************************************** * @attention * - * Copyright (c) 2018-2024 STMicroelectronics. + * Copyright (c) 2018-2025 STMicroelectronics. * All rights reserved. * * This software is licensed under terms that can be found in the LICENSE file @@ -97,6 +97,7 @@ #define HCI_LE_TRANSMIT_POWER_REPORTING_SUBEVT_CODE 0x21U #define HCI_LE_BIGINFO_ADVERTISING_REPORT_SUBEVT_CODE 0x22U #define HCI_LE_SUBRATE_CHANGE_SUBEVT_CODE 0x23U +#define HCI_LE_CIS_ESTABLISHED_V2_SUBEVT_CODE 0x2AU /* HCI error code */ #define HCI_SUCCESS_ERR_CODE 0x00U @@ -246,6 +247,7 @@ #define BLE_CORE_5_2 11 #define BLE_CORE_5_3 12 #define BLE_CORE_5_4 13 +#define BLE_CORE_6_0 14 /* AD types for advertising data and scan response data */ diff --git a/lib/stm32wba/STM32_WPAN/ble/stack/include/bleplat.h b/lib/stm32wba/STM32_WPAN/ble/stack/include/bleplat.h index 51bb7c746..c87b35d0b 100644 --- a/lib/stm32wba/STM32_WPAN/ble/stack/include/bleplat.h +++ b/lib/stm32wba/STM32_WPAN/ble/stack/include/bleplat.h @@ -7,7 +7,7 @@ ***************************************************************************** * @attention * - * Copyright (c) 2018-2024 STMicroelectronics. + * Copyright (c) 2018-2025 STMicroelectronics. * All rights reserved. * * This software is licensed under terms that can be found in the LICENSE file @@ -235,7 +235,7 @@ extern void BLEPLAT_AesCmacCompute( const uint8_t* input, * @param add_length: add length (in bytes) * @param add: add data * @param input_length: input data length (in bytes) - * @param inputL: original data (to be encrypted or decrypted) + * @param input: original data (to be encrypted or decrypted) * @param tag_length: CCM tag length (in bytes) * @param tag: CCM tag * @param output: result data (encrypted or decrypted) diff --git a/lib/stm32wba/STM32_WPAN/ble/stack/include/blestack.h b/lib/stm32wba/STM32_WPAN/ble/stack/include/blestack.h index 15143be45..14b28a93e 100644 --- a/lib/stm32wba/STM32_WPAN/ble/stack/include/blestack.h +++ b/lib/stm32wba/STM32_WPAN/ble/stack/include/blestack.h @@ -1,11 +1,11 @@ /***************************************************************************** * @file blestack.h * - * @brief Header file for BLE stack + * @brief Header file for STM32WBA BLE stack ***************************************************************************** * @attention * - * Copyright (c) 2018-2024 STMicroelectronics. + * Copyright (c) 2018-2025 STMicroelectronics. * All rights reserved. * * This software is licensed under terms that can be found in the LICENSE file @@ -157,7 +157,7 @@ typedef struct * - bit 3: 1: extended adv supported 0: extended adv not supported * - bit 5: 1: Reduced GATT db in NVM 0: Full GATT db in NVM * - bit 6: 1: GATT caching is used 0: GATT caching is not used - * - bit 7: 1: LE Power Class 1 0: LE Power Class 2-3 + * - bit 7: 1: LE Power Class 1 0: Other LE Power Classes * - bit 8: 1: appearance Writable 0: appearance Read-Only * - bit 9: 1: Enhanced ATT supported 0: Enhanced ATT not supported * - other bits: reserved diff --git a/lib/stm32wba/STM32_WPAN/link_layer/ll_cmd_lib/config/ble_full/ll_fw_config.h b/lib/stm32wba/STM32_WPAN/link_layer/ll_cmd_lib/config/ble_full/ll_fw_config.h index 9fb790005..5e581f086 100644 --- a/lib/stm32wba/STM32_WPAN/link_layer/ll_cmd_lib/config/ble_full/ll_fw_config.h +++ b/lib/stm32wba/STM32_WPAN/link_layer/ll_cmd_lib/config/ble_full/ll_fw_config.h @@ -1,4 +1,4 @@ -/*$Id: //dwh/bluetooth/DWC_ble154combo/firmware/rel/1.21a-SOW07PatchV4/firmware/shrd_utils/inc/ll_fw_config.h#1 $*/ +/*$Id: //dwh/bluetooth/DWC_ble154combo/firmware/rel/2.00a-lca01/firmware/public_inc/ll_fw_config.h#1 $*/ /** ******************************************************************************** * @file ll_fw_config.h @@ -37,67 +37,205 @@ #ifndef INCLUDE_LL_FW_CONFIG_H #define INCLUDE_LL_FW_CONFIG_H +/*************************** General Configuration *********************************/ +#ifndef SUPPORT_GNRC_SCHDLR_IF +#define SUPPORT_GNRC_SCHDLR_IF 1 /* Enable\Disable event EXTRNL_GNRC in Ble event manager. Enable:1 - Disable:0 */ +#endif /* SUPPORT_GNRC_SCHDLR_IF */ /*************************** BLE Configuration *************************************/ /*Configurations of BLE will apply only when BLE is enabled*/ /* Roles configurations */ +#ifndef SUPPORT_EXPLCT_OBSERVER_ROLE #define SUPPORT_EXPLCT_OBSERVER_ROLE 1 /* Enable\Disable Explicit observer role. Enable:1 - Disable:0 */ +#endif /* SUPPORT_EXPLCT_OBSERVER_ROLE */ + +#ifndef SUPPORT_EXPLCT_BROADCASTER_ROLE #define SUPPORT_EXPLCT_BROADCASTER_ROLE 1 /* Enable\Disable Explicit broadcaster role. Enable:1 - Disable:0 */ +#endif /* SUPPORT_EXPLCT_BROADCASTER_ROLE */ + +#ifndef SUPPORT_MASTER_CONNECTION #define SUPPORT_MASTER_CONNECTION 1 /* Enable\Disable Master connection role. Enable:1 - Disable:0 */ +#endif /* SUPPORT_MASTER_CONNECTION */ + +#ifndef SUPPORT_SLAVE_CONNECTION #define SUPPORT_SLAVE_CONNECTION 1 /* Enable\Disable Slave connection role. Enable:1 - Disable:0 */ +#endif /* SUPPORT_SLAVE_CONNECTION */ /* Standard features configurations */ +#ifndef SUPPORT_LE_ENCRYPTION #define SUPPORT_LE_ENCRYPTION 1 /* Enable\Disable Encryption feature. Enable:1 - Disable:0 */ +#endif /* SUPPORT_LE_ENCRYPTION */ + +#ifndef SUPPORT_PRIVACY #define SUPPORT_PRIVACY 1 /* Enable\Disable Privacy feature. Enable:1 - Disable:0 */ +#endif /* SUPPORT_PRIVACY */ -/* Capabilities configurations */ -#define MAX_NUM_CNCRT_STAT_MCHNS 8 /* Set maximum number of states the controller can support */ -#define USE_NON_ACCURATE_32K_SLEEP_CLK 1 /* Allow to drive the sleep clock by sources other than the default crystal oscillator source.*/ - /*LL can use crystal oscillator or RTC or RCO to drive the sleep clock.This selection is done via "DEFAULT_SLEEP_CLOCK_SOURCE" macro. */ +#ifndef SUPPORT_LE_EXTENDED_ADVERTISING #define SUPPORT_LE_EXTENDED_ADVERTISING 1 /* Enable\Disable Extended advertising feature. Enable:1 - Disable:0 */ +#endif /* SUPPORT_LE_EXTENDED_ADVERTISING */ + +#ifndef SUPPORT_LE_PERIODIC_ADVERTISING #define SUPPORT_LE_PERIODIC_ADVERTISING 1 /* Enable\Disable Periodic advertising feature. Enable:1 - Disable:0 */ +#endif /* SUPPORT_LE_PERIODIC_ADVERTISING */ + +#ifndef SUPPORT_LE_POWER_CLASS_1 #define SUPPORT_LE_POWER_CLASS_1 1 /* Enable\Disable Low power class 1 feature. Enable:1 - Disable:0 */ +#endif /* SUPPORT_LE_POWER_CLASS_1 */ + +#ifndef SUPPORT_AOA_AOD #define SUPPORT_AOA_AOD 1 /* Enable\Disable AOA_AOD feature. Enable:1 - Disable:0 */ +#endif /* SUPPORT_AOA_AOD */ + +#ifndef SUPPORT_PERIODIC_SYNC_TRANSFER #define SUPPORT_PERIODIC_SYNC_TRANSFER 1 /* Enable\Disable PAST feature. Enable:1 - Disable:0 */ +#endif /* SUPPORT_PERIODIC_SYNC_TRANSFER */ + +#ifndef SUPPORT_SLEEP_CLOCK_ACCURCY_UPDATES #define SUPPORT_SLEEP_CLOCK_ACCURCY_UPDATES 1 /* Enable\Disable Sleep Clock Accuracy Updates Feature. Enable:1 - Disable:0 */ +#endif /* SUPPORT_SLEEP_CLOCK_ACCURCY_UPDATES */ + +#ifndef SUPPORT_CONNECTED_ISOCHRONOUS #define SUPPORT_CONNECTED_ISOCHRONOUS 1 /* Enable\Disable Connected Isochronous Channel Feature. Enable:1 - Disable:0 */ +#endif /* SUPPORT_CONNECTED_ISOCHRONOUS */ + +#ifndef SUPPORT_BRD_ISOCHRONOUS #define SUPPORT_BRD_ISOCHRONOUS 1 /* Enable\Disable Broadcast Isochronous Channel Feature. Enable:1 - Disable:0 */ +#endif /* SUPPORT_BRD_ISOCHRONOUS */ + +#ifndef SUPPORT_SYNC_ISOCHRONOUS #define SUPPORT_SYNC_ISOCHRONOUS 1 /* Enable\Disable Broadcast Isochronous Synchronizer Channel Feature. Enable:1 - Disable:0 */ +#endif /* SUPPORT_SYNC_ISOCHRONOUS */ + +#ifndef SUPPORT_LE_POWER_CONTROL #define SUPPORT_LE_POWER_CONTROL 1 /* Enable\Disable LE Power Control Feature. Enable:1 - Disable:0 */ +#endif /* SUPPORT_LE_POWER_CONTROL */ -/* 5.3 features */ -#define SUPPORT_PERIODIC_ADV_ADI 1 +#ifndef SUPPORT_CHANNEL_CLASSIFICATION #define SUPPORT_CHANNEL_CLASSIFICATION 1 -#define SUPPORT_LE_ENHANCED_CONN_UPDATE 1 +#endif /* SUPPORT_CHANNEL_CLASSIFICATION */ +#ifndef SUPPORT_PERIODIC_ADV_ADI +#define SUPPORT_PERIODIC_ADV_ADI 1 +#endif /* SUPPORT_PERIODIC_ADV_ADI */ + +#ifndef SUPPORT_LE_ENHANCED_CONN_UPDATE +#define SUPPORT_LE_ENHANCED_CONN_UPDATE 1 +#endif /* SUPPORT_LE_ENHANCED_CONN_UPDATE */ +#ifndef SUPPORT_CSSA #define SUPPORT_CSSA 1 /* Enable\Disable Coding Selection Scheme on Advertising Feature. Enable:1 - Disable:0 */ +#endif /* SUPPORT_CSSA */ + +#ifndef SUPPORT_LE_PAWR_ADVERTISER_ROLE #define SUPPORT_LE_PAWR_ADVERTISER_ROLE 0 /* Enable\Disable PAwR Advertiser role. Enable:1 - Disable:0 */ +#endif /* SUPPORT_LE_PAWR_ADVERTISER_ROLE */ + +#ifndef SUPPORT_LE_PAWR_SYNC_ROLE #define SUPPORT_LE_PAWR_SYNC_ROLE 0 /* Enable\Disable PAwR Synchronizer role. Enable:1 - Disable:0 */ +#endif /* SUPPORT_LE_PAWR_SYNC_ROLE */ + +#ifndef SUPPORT_CHANNEL_SOUNDING +#define SUPPORT_CHANNEL_SOUNDING 0 /* Enable\Disable Channel Sounding Feature. Enable:1 - Disable:0 */ +#endif /* SUPPORT_CHANNEL_SOUNDING */ + +#ifndef SUPPORT_FRAME_SPACE_UPDATE +#define SUPPORT_FRAME_SPACE_UPDATE 0 /* Enable\Disable Frame Space Update Feature. Enable:1 - Disable:0 */ +#endif /* SUPPORT_FRAME_SPACE_UPDATE */ + +#ifndef SUPPORT_EXT_FEATURE_SET +#define SUPPORT_EXT_FEATURE_SET 0 /* Enable\Disable Extended Feature Set Exchange. Enable:1 - Disable:0 */ +#endif /* SUPPORT_EXT_FEATURE_SET */ + +#ifndef SUPPORT_ISO_UNSEG_MODE +#define SUPPORT_ISO_UNSEG_MODE 0 /* Enable\Disable Unsegmented Mode for Framed ISO PDUs. Enable: 1 - Disable: 0*/ +#endif /* SUPPORT_ISO_UNSEG_MODE */ + +#ifndef SUPPORT_LE_ADVERTISERS_MONITORING +#define SUPPORT_LE_ADVERTISERS_MONITORING 0 /* Enable\Disable Advertisers Monitoring Feature. Enable:1 - Disable:0 */ +#endif /* SUPPORT_LE_ADVERTISERS_MONITORING */ + +/* Capabilities configurations */ +#ifndef MAX_NUM_CNCRT_STAT_MCHNS +#define MAX_NUM_CNCRT_STAT_MCHNS 8 /* Set maximum number of states the controller can support */ +#endif /* MAX_NUM_CNCRT_STAT_MCHNS */ + +#ifndef USE_NON_ACCURATE_32K_SLEEP_CLK +#define USE_NON_ACCURATE_32K_SLEEP_CLK 1 /* Allow to drive the sleep clock by sources other than the default crystal oscillator source.*/ + /*LL can use crystal oscillator or RTC or RCO to drive the sleep clock.This selection is done via "DEFAULT_SLEEP_CLOCK_SOURCE" macro. */ +#endif /* USE_NON_ACCURATE_32K_SLEEP_CLK */ /* Non-standard features configurations */ +#ifndef NUM_OF_CTSM_EMNGR_HNDLS #define NUM_OF_CTSM_EMNGR_HNDLS 1 /* Number of custom handles in event manager to be used for app specific needs */ +#endif /* NUM_OF_CTSM_EMNGR_HNDLS */ + +#ifndef SUPPORT_AUGMENTED_BLE_MODE #define SUPPORT_AUGMENTED_BLE_MODE 1 /* Enable\Disable Augmented BLE Support. Enable:1 - Disable:0 */ +#endif /* SUPPORT_AUGMENTED_BLE_MODE */ + +#ifndef SUPPORT_PTA #define SUPPORT_PTA 1 /* Enable\Disable PTA Feature. Enable:1 - Disable:0 */ +#endif /* SUPPORT_PTA */ +#ifndef SUPPORT_CONFIGURABLE_GAIN_FIX +#define SUPPORT_CONFIGURABLE_GAIN_FIX 0 /* Enable\Disable configurable gain fix support */ +#endif /* SUPPORT_CONFIGURABLE_GAIN_FIX */ + +#ifndef CHECK_ANY_MISSED_EVENT_ON_DEEP_SLEEP_EXIT #define CHECK_ANY_MISSED_EVENT_ON_DEEP_SLEEP_EXIT 1 /* Enable\Disable calling event scheduler handler function at the end of deep sleep exit*/ +#endif /* CHECK_ANY_MISSED_EVENT_ON_DEEP_SLEEP_EXIT */ +#ifndef SUPPORT_AUTONOMOUS_POWER_CONTROL_REQ #define SUPPORT_AUTONOMOUS_POWER_CONTROL_REQ 1 +#endif /* SUPPORT_AUTONOMOUS_POWER_CONTROL_REQ */ + +#ifndef LL_BASIC #define LL_BASIC 0 +#endif /* LL_BASIC */ /*************************** MAC Configuration *************************************/ /*Configurations of MAC will apply only when MAC is enabled*/ +#ifndef FFD_DEVICE_CONFIG #define FFD_DEVICE_CONFIG 0 /* Enable\Disable FFD:1 - RFD:0 */ +#endif /* FFD_DEVICE_CONFIG */ + #ifdef SUPPORT_AUG_MAC_HCI_UART +#ifndef RAL_NUMBER_OF_INSTANCE #define RAL_NUMBER_OF_INSTANCE 0 /* The Number of RAL instances supported */ +#endif /* RAL_NUMBER_OF_INSTANCE */ + #else +#ifndef RAL_NUMBER_OF_INSTANCE #define RAL_NUMBER_OF_INSTANCE 0 /* The Number of RAL instances supported */ +#endif /* RAL_NUMBER_OF_INSTANCE */ #endif + +#ifndef MAX_NUMBER_OF_INDIRECT_DATA #define MAX_NUMBER_OF_INDIRECT_DATA 0 /* The maximum number of supported indirect data buffers */ +#endif /* MAX_NUMBER_OF_INDIRECT_DATA */ + +#ifndef SUPPORT_OPENTHREAD_1_2 #define SUPPORT_OPENTHREAD_1_2 0 /* Enable / disable FW parts related to new features introduced in openthread 1.2*/ +#endif /* SUPPORT_OPENTHREAD_1_2 */ + +#ifndef SUPPORT_SEC #define SUPPORT_SEC 0 /* The MAC Security Supported : 1 - Not Supported:0 */ +#endif /* SUPPORT_SEC */ + +#ifndef RADIO_CSMA #define RADIO_CSMA 0 /* Enable\Disable CSMA Algorithm in Radio Layer, Must be Enabled if MAC_LAYER_BUILD */ +#endif /* RADIO_CSMA */ + +#ifndef SUPPORT_A_MAC #define SUPPORT_A_MAC 0 +#endif /* SUPPORT_A_MAC */ +#ifndef SMPL_PRTCL_TEST_ENABLE #define SMPL_PRTCL_TEST_ENABLE 0 +#endif /* SMPL_PRTCL_TEST_ENABLE */ + +/*************************** Zigbee Configuration **********************************/ +#ifndef SUPPORT_ZIGBEE_PHY_CERTIFICATION +#define SUPPORT_ZIGBEE_PHY_CERTIFICATION 0 /* Enable support of hci command required to implement zigbee phy Test cases Enable:1 - Disable:0 */ +#endif /* SUPPORT_ZIGBEE_PHY_CERTIFICATION */ #endif /* INCLUDE_LL_FW_CONFIG_H */ diff --git a/lib/stm32wba/STM32_WPAN/link_layer/ll_cmd_lib/inc/_40nm_reg_files/DWC_ble154combo.h b/lib/stm32wba/STM32_WPAN/link_layer/ll_cmd_lib/inc/_40nm_reg_files/DWC_ble154combo.h index 4a31ef1fe..7e5cc48da 100644 --- a/lib/stm32wba/STM32_WPAN/link_layer/ll_cmd_lib/inc/_40nm_reg_files/DWC_ble154combo.h +++ b/lib/stm32wba/STM32_WPAN/link_layer/ll_cmd_lib/inc/_40nm_reg_files/DWC_ble154combo.h @@ -1,4 +1,4 @@ -/*$Id: //dwh/bluetooth/DWC_ble154combo/firmware/rel/1.32a-lca02/firmware/public_inc/_40nm_reg_files/DWC_ble154combo.h#3 $*/ +/*$Id: //dwh/bluetooth/DWC_ble154combo/firmware/rel/2.00a-lca01/firmware/public_inc/_40nm_reg_files/DWC_ble154combo.h#1 $*/ /** ******************************************************************************** * @brief diff --git a/lib/stm32wba/STM32_WPAN/link_layer/ll_cmd_lib/inc/common_types.h b/lib/stm32wba/STM32_WPAN/link_layer/ll_cmd_lib/inc/common_types.h index b7c9d676d..6ef6976ce 100644 --- a/lib/stm32wba/STM32_WPAN/link_layer/ll_cmd_lib/inc/common_types.h +++ b/lib/stm32wba/STM32_WPAN/link_layer/ll_cmd_lib/inc/common_types.h @@ -109,7 +109,10 @@ /****************** User configuration **********************************/ #define CS_TESTING TRUE -#define SUPPORT_GNRC_SCHDLR_IF (1) +#ifndef SUPPORT_GNRC_SCHDLR_IF +#define SUPPORT_GNRC_SCHDLR_IF 1 /* Enable\Disable event EXTRNL_GNRC in Ble event manager. Enable:1 - Disable:0 */ +#endif /* SUPPORT_GNRC_SCHDLR_IF */ + /********************* Macros **********************************/ #ifndef SUCCESS diff --git a/lib/stm32wba/STM32_WPAN/link_layer/ll_sys/inc/linklayer_plat.h b/lib/stm32wba/STM32_WPAN/link_layer/ll_sys/inc/linklayer_plat.h index 5059f0fdb..7898a577b 100644 --- a/lib/stm32wba/STM32_WPAN/link_layer/ll_sys/inc/linklayer_plat.h +++ b/lib/stm32wba/STM32_WPAN/link_layer/ll_sys/inc/linklayer_plat.h @@ -51,15 +51,15 @@ extern void LINKLAYER_PLAT_Assert(uint8_t condition); extern void LINKLAYER_PLAT_AclkCtrl(uint8_t enable); /** - * @brief Notify the Link Layer platform layer the system will enter in WFI - * and AHB5 clock may be turned of regarding the 2.4Ghz radio state. + * @brief Notify the Link Layer platform layer the system will enter in WFI + * and AHB5 clock may be turned of regarding the 2.4Ghz radio state. * @param None * @retval None */ extern void LINKLAYER_PLAT_NotifyWFIEnter(void); /** - * @brief Notify the Link Layer platform layer the system exited WFI and AHB5 + * @brief Notify the Link Layer platform layer the system exited WFI and AHB5 * clock may be resynchronized as is may have been turned of during * low power mode entry. * @param None @@ -124,7 +124,7 @@ extern void LINKLAYER_PLAT_DisableIRQ(void); * This parameter can be one of the following: * @arg LL_HIGH_ISR_ONLY: enable link layer high priority ISR. * @arg LL_LOW_ISR_ONLY: enable link layer SW low priority ISR. - * @arg SYS_LOW_ISR: unmask interrupts for all the other system ISR with + * @arg SYS_LOW_ISR: unmask interrupts for all the other system ISR with * lower priority that link layer SW low interrupt. * @retval None */ @@ -136,7 +136,7 @@ extern void LINKLAYER_PLAT_EnableSpecificIRQ(uint8_t isr_type); * This parameter can be one of the following: * @arg LL_HIGH_ISR_ONLY: disable link layer high priority ISR. * @arg LL_LOW_ISR_ONLY: disable link layer SW low priority ISR. - * @arg SYS_LOW_ISR: mask interrupts for all the other system ISR with + * @arg SYS_LOW_ISR: mask interrupts for all the other system ISR with * lower priority that link layer SW low interrupt. * @retval None */ diff --git a/lib/stm32wba/STM32_WPAN/link_layer/ll_sys/inc/ll_sys.h b/lib/stm32wba/STM32_WPAN/link_layer/ll_sys/inc/ll_sys.h index 819422a6c..ca323621e 100644 --- a/lib/stm32wba/STM32_WPAN/link_layer/ll_sys/inc/ll_sys.h +++ b/lib/stm32wba/STM32_WPAN/link_layer/ll_sys/inc/ll_sys.h @@ -21,7 +21,7 @@ #include "ll_intf.h" #include "hci.h" -#include "cmsis_compiler.h" +#include "cmsis_compiler.h" #include #define LL_DP_SLP_NO_WAKEUP ((uint32_t) ~(0) ) @@ -55,7 +55,7 @@ typedef enum typedef enum { LL_SYS_DP_SLP_DISABLED = 0x00, - LL_SYS_DP_SLP_ENABLED, + LL_SYS_DP_SLP_ENABLED, } ll_sys_dp_slp_state_t; /* Link Layer system interface general module functions ************************************************/ @@ -102,7 +102,7 @@ void ll_sys_dp_slp_wakeup_evt_clbk(void const *ptr_arg); /** * @brief Get the number of concurrent state machines for the Link Layer * @param None - * @retval Supported number of concurrent state machines + * @retval Supported number of concurrent state machines */ uint8_t ll_sys_get_concurrent_state_machines_num(void); @@ -112,7 +112,7 @@ uint8_t ll_sys_get_concurrent_state_machines_num(void); * @param drift_time[in]: number of Link Layer sleep timer cycles (1 cycle = 31us) for the DRIFT TIME timing. * @param exec_time[in]: number of Link Layer sleep timer cycles (1 cycle = 31us) for the EXEC TIME timing. * @note This interface needs to be called after system initialization - * and before starting any radio activity. + * and before starting any radio activity. * @retval None */ void ll_sys_config_BLE_schldr_timings(uint8_t drift_time, uint8_t exec_time); diff --git a/lib/stm32wba/Utilities/tim_serv/stm32_timer.h b/lib/stm32wba/Utilities/tim_serv/stm32_timer.h index 79ed8aa74..9256b7736 100644 --- a/lib/stm32wba/Utilities/tim_serv/stm32_timer.h +++ b/lib/stm32wba/Utilities/tim_serv/stm32_timer.h @@ -37,7 +37,7 @@ * ****************************************************************************** */ - + /* Define to prevent recursive inclusion -------------------------------------*/ #ifndef UTIL_TIME_SERVER_H__ #define UTIL_TIME_SERVER_H__ @@ -54,10 +54,10 @@ /* Includes ------------------------------------------------------------------*/ #include #include -#include +#include #include #include "utilities_conf.h" - + /* Exported types ------------------------------------------------------------*/ /** @defgroup TIMER_SERVER_exported_TypeDef TIMER_SERVER exported Typedef * @{ @@ -71,7 +71,7 @@ typedef enum { UTIL_TIMER_PERIODIC = 1 /*!