Commit 1447f22f authored by Erwan Gouriou's avatar Erwan Gouriou Committed by Kumar Gala
Browse files

lib/stm32wb: hci: Update lib to V1.6.0 Cube version



Tested with 1.6 and default binary

Signed-off-by: default avatarErwan Gouriou <erwan.gouriou@linaro.org>
parent f0e11398
Loading
Loading
Loading
Loading
+114 −110
Original line number Diff line number Diff line
/**
  ******************************************************************************
  * File Name          : app_common.h
  * Description        : App Common application configuration file for BLE
  *                      middleWare.
  * @file    app_common.h
  * @author  MCD Application Team
  * @brief   Common
  ******************************************************************************
  * @attention
 *
@@ -17,12 +17,14 @@
 ******************************************************************************
 */


/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef APP_COMMON_H
#define APP_COMMON_H
#ifndef __APP_COMMON_H
#define __APP_COMMON_H

#ifdef __cplusplus
extern "C"{
extern "C"
{
#endif

#include <stdint.h>
@@ -77,8 +79,9 @@ extern "C"{

#define MODSUB( a, b, m )    MODADD( a, (m)-(b), m )


#define PAUSE( t )           M_BEGIN \
                               __IO int _i; \
                               volatile int _i; \
                               for ( _i = t; _i > 0; _i -- ); \
                             M_END

@@ -105,10 +108,11 @@ extern "C"{
#define ALIGN(n)             __attribute__((aligned(n)))
#endif


#ifdef __cplusplus
} /* extern "C" */
}
#endif

#endif /*APP_COMMON_H */
#endif /*__APP_COMMON_H */

/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
+93 −64
Original line number Diff line number Diff line
/**
 ******************************************************************************
  * File Name          : app_conf.h
  * Description        : Application configuration file for STM32WPAN Middleware.
  *
 * @file    app_conf.h
 * @author  MCD Application Team
 * @brief   Application configuration file
 ******************************************************************************
 * @attention
 *
@@ -17,9 +17,10 @@
 ******************************************************************************
 */


/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef APP_CONF_H
#define APP_CONF_H
#ifndef __APP_CONFIG_H
#define __APP_CONFIG_H

#include "hw.h"
/* hw_conf.h file is not used, remove the dependency */
@@ -27,7 +28,7 @@
#include "hw_if.h"

/******************************************************************************
 * Application Config
 * OTA Application Config
 ******************************************************************************/

/**< generic parameters ******************************************************/
@@ -42,9 +43,9 @@
 */
#define CFG_ADV_BD_ADDRESS                (0x7257acd87a6c)
#define CFG_FAST_CONN_ADV_INTERVAL_MIN    (0x80)  /**< 80ms */
#define CFG_FAST_CONN_ADV_INTERVAL_MAX    (0xa0)  /**< 100ms */
#define CFG_FAST_CONN_ADV_INTERVAL_MAX    (0xA0)  /**< 100ms */
#define CFG_LP_CONN_ADV_INTERVAL_MIN      (0x640) /**< 1s */
#define CFG_LP_CONN_ADV_INTERVAL_MAX      (0xfa0) /**< 2.5s */
#define CFG_LP_CONN_ADV_INTERVAL_MAX      (0xFA0) /**< 2.5s */

/**
 * Define IO Authentication
@@ -64,7 +65,7 @@
#define CFG_IO_CAPABILITY_NO_INPUT_NO_OUTPUT (0x03)
#define CFG_IO_CAPABILITY_KEYBOARD_DISPLAY   (0x04)

#define CFG_IO_CAPABILITY             CFG_IO_CAPABILITY_DISPLAY_YES_NO
#define CFG_IO_CAPABILITY                     CFG_IO_CAPABILITY_DISPLAY_ONLY

/**
 * Define MITM modes
@@ -74,17 +75,6 @@

#define CFG_MITM_PROTECTION                   CFG_MITM_PROTECTION_REQUIRED

/**
 * Define PHY
 */
#define ALL_PHYS_PREFERENCE                             0x00
#define RX_2M_PREFERRED                                 0x02
#define TX_2M_PREFERRED                                 0x02
#define TX_1M                                           0x01
#define TX_2M                                           0x02
#define RX_1M                                           0x01
#define RX_2M                                           0x02

/**
*   Identity root key used to derive LTK and CSRK
*/
@@ -104,13 +94,65 @@
#define CFG_USE_SMPS    1
/* USER CODE END Generic_Parameters */


/**< specific parameters */
/*****************************************************/
#ifdef LITTLE_DORY
#define PUSH_BUTTON_SW1_EXTI_IRQHandler                         EXTI0_IRQHandler
#else
#define PUSH_BUTTON_SW1_EXTI_IRQHandler                         EXTI4_IRQHandler
#endif

/******************************************************************************
 * Information Table
 *
  * Version
  * [0:3]   = Build - 0: Untracked - 15:Released - x: Tracked version
  * [4:7]   = branch - 0: Mass Market - x: ...
  * [8:15]  = Subversion
  * [16:23] = Version minor
  * [24:31] = Version major
  *
 ******************************************************************************/
#define CFG_FW_MAJOR_VERSION      (0)
#define CFG_FW_MINOR_VERSION      (0)
#define CFG_FW_SUBVERSION         (1)
#define CFG_FW_BRANCH             (0)
#define CFG_FW_BUILD              (0)

/**
* AD Element - DEV ID
*/
#define CFG_DEV_ID_P2P_SERVER1                  (0x83)
#define CFG_DEV_ID_P2P_SERVER2                  (0x84)
#define CFG_DEV_ID_P2P_ROUTER                   (0x85)
#define CFG_DEV_ID_OTA_FW_UPDATE                (0x86)

/**
* AD Element - Group B Feature
*/
/* LSB - Second Byte */
#define CFG_FEATURE_OTA_REBOOT                  (0x20)
/* LSB - Firt Byte */
#define CFG_FEATURE_OTA_SW                      (0x08)


/**
 * Define the start address where the application shall be located
 */
#define CFG_APP_START_SECTOR_INDEX          (7)

/**
 * Define list of reboot reason
 */
#define CFG_REBOOT_ON_FW_APP          (0x00)
#define CFG_REBOOT_ON_BLE_OTA_APP     (0x01)
#define CFG_REBOOT_ON_CPU2_UPGRADE    (0x02)

/**
 * Define mapping of OTA messages in SRAM
 */
#define CFG_OTA_REBOOT_VAL_MSG            (*(uint8_t*)(SRAM1_BASE+0))
#define CFG_OTA_START_SECTOR_IDX_VAL_MSG  (*(uint8_t*)(SRAM1_BASE+1))
#define CFG_OTA_NBR_OF_SECTOR_VAL_MSG     (*(uint8_t*)(SRAM1_BASE+2))

/******************************************************************************
 * BLE Stack
@@ -216,6 +258,7 @@
 *  0 : LL + Host
 */
#define CFG_BLE_LL_ONLY  1

/******************************************************************************
 * Transport Layer
 ******************************************************************************/
@@ -233,6 +276,7 @@
 * to the application a HCI command did not receive its command event within 30s (Default HCI Timeout).
 */
#define CFG_TLBLE_EVT_QUEUE_LENGTH 5

/**
 * This parameter should be set to fit most events received by the HCI layer. It defines the buffer size of each element
 * allocated in the queue of received events and can be used to optimize the amount of RAM allocated by the Memory Manager.
@@ -246,6 +290,7 @@
#define CFG_TLBLE_MOST_EVENT_PAYLOAD_SIZE 255   /**< Set to 255 with the memory manager and the mailbox */

#define TL_BLE_EVENT_FRAME_SIZE ( TL_EVT_HDR_SIZE + CFG_TLBLE_MOST_EVENT_PAYLOAD_SIZE )

/******************************************************************************
 * UART interfaces
 ******************************************************************************/
@@ -254,7 +299,8 @@
 * Select UART interfaces
 */
#define CFG_DEBUG_TRACE_UART      hw_uart1
#define CFG_CONSOLE_MENU
#define CFG_CONSOLE_MENU		hw_lpuart1

/******************************************************************************
 * USB interface
 ******************************************************************************/
@@ -365,21 +411,24 @@ typedef enum
 */
#define CFG_HW_RESET_BY_FW        1

#define CFG_LED_SUPPORTED         1
#define CFG_BUTTON_SUPPORTED      1

/**
 * keep debugger enabled while in any low power mode when set to 1
 * should be set to 0 in production
 */
#define CFG_DEBUGGER_SUPPORTED    0
#define CFG_DEBUGGER_SUPPORTED    1

/**
 * When set to 1, the traces are enabled in the BLE services
 */
#define CFG_DEBUG_BLE_TRACE     0
#define CFG_DEBUG_BLE_TRACE     1

/**
 * Enable or Disable traces in application
 */
#define CFG_DEBUG_APP_TRACE     0
#define CFG_DEBUG_APP_TRACE     1

#if (CFG_DEBUG_APP_TRACE != 0)
#define APP_DBG_MSG                 PRINT_MESG_DBG
@@ -387,6 +436,7 @@ typedef enum
#define APP_DBG_MSG                 PRINT_NO_MESG
#endif


#if ( (CFG_DEBUG_BLE_TRACE != 0) || (CFG_DEBUG_APP_TRACE != 0) )
#define CFG_DEBUG_TRACE             1
#endif
@@ -397,7 +447,6 @@ typedef enum
#define CFG_LPM_SUPPORTED         0
#define CFG_DEBUGGER_SUPPORTED      1
#endif

/**
 * When CFG_DEBUG_TRACE_FULL is set to 1, the trace are output with the API name, the file name and the line number
 * When CFG_DEBUG_TRACE_LIGHT is set to 1, only the debug message is output
@@ -434,21 +483,6 @@ typedef enum
#define DBG_TRACE_MSG_QUEUE_SIZE 4096
#define MAX_DBG_TRACE_MSG_SIZE 1024

/* USER CODE BEGIN Defines */
#define CFG_LED_SUPPORTED         0
#define CFG_BUTTON_SUPPORTED      1

#ifdef LITTLE_DORY
#define PUSH_BUTTON_SW1_EXTI_IRQHandler                         EXTI0_IRQHandler
#define PUSH_BUTTON_SW2_EXTI_IRQHandler                         EXTI4_IRQHandler
#define PUSH_BUTTON_SW3_EXTI_IRQHandler                         EXTI9_5_IRQHandler
#else
#define PUSH_BUTTON_SW1_EXTI_IRQHandler                         EXTI4_IRQHandler
#define PUSH_BUTTON_SW2_EXTI_IRQHandler                         EXTI0_IRQHandler
#define PUSH_BUTTON_SW3_EXTI_IRQHandler                         EXTI1_IRQHandler
#endif
/* USER CODE END Defines */

/******************************************************************************
 * Scheduler
 ******************************************************************************/
@@ -463,12 +497,8 @@ typedef enum
/**< Add in that list all tasks that may send a ACI/HCI command */
typedef enum
{
    CFG_TASK_ADV_UPDATE_ID,
    CFG_TASK_MEAS_REQ_ID,
    CFG_TASK_HCI_ASYNCH_EVT_ID,
/* USER CODE BEGIN CFG_Task_Id_With_HCI_Cmd_t */

/* USER CODE END CFG_Task_Id_With_HCI_Cmd_t */
    CFG_LAST_TASK_ID_WITH_HCICMD,                                               /**< Shall be LAST in the list */
} CFG_Task_Id_With_HCI_Cmd_t;

@@ -476,10 +506,9 @@ typedef enum
typedef enum
{
    CFG_FIRST_TASK_ID_WITH_NO_HCICMD = CFG_LAST_TASK_ID_WITH_HCICMD - 1,        /**< Shall be FIRST in the list */

    CFG_TASK_SYSTEM_HCI_ASYNCH_EVT_ID,
/* USER CODE BEGIN CFG_Task_Id_With_NO_HCI_Cmd_t */

/* USER CODE END CFG_Task_Id_With_NO_HCI_Cmd_t */
    CFG_LAST_TASK_ID_WITHO_NO_HCICMD                                            /**< Shall be LAST in the list */
} CFG_Task_Id_With_NO_HCI_Cmd_t;
#define CFG_TASK_NBR    CFG_LAST_TASK_ID_WITHO_NO_HCICMD
@@ -526,6 +555,6 @@ typedef enum

#define CFG_OTP_END_ADRESS      OTP_AREA_END_ADDR

#endif /*APP_CONF_H */
#endif /*__APP_CONFIG_H */

/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
+14 −1
Original line number Diff line number Diff line
@@ -58,6 +58,7 @@ extern "C" {
  void HW_IPCC_THREAD_CliSendAck( void );
  void HW_IPCC_THREAD_CliEvtNot( void );


  void HW_IPCC_LLDTESTS_Init( void );
  void HW_IPCC_LLDTESTS_SendCliCmd( void );
  void HW_IPCC_LLDTESTS_ReceiveCliRsp( void );
@@ -65,6 +66,18 @@ extern "C" {
  void HW_IPCC_LLDTESTS_ReceiveM0Cmd( void );
  void HW_IPCC_LLDTESTS_SendM0CmdAck( void );


  void HW_IPCC_LLD_BLE_Init( void );
  void HW_IPCC_LLD_BLE_SendCliCmd( void );
  void HW_IPCC_LLD_BLE_ReceiveCliRsp( void );
  void HW_IPCC_LLD_BLE_SendCliRspAck( void );
  void HW_IPCC_LLD_BLE_ReceiveM0Cmd( void );
  void HW_IPCC_LLD_BLE_SendM0CmdAck( void );  
  void HW_IPCC_LLD_BLE_SendCmd( void );
  void HW_IPCC_LLD_BLE_ReceiveRsp( void );
  void HW_IPCC_LLD_BLE_SendRspAck( void );

  
  void HW_IPCC_TRACES_Init( void );
  void HW_IPCC_TRACES_EvtNot( void );
  
+1 −5
Original line number Diff line number Diff line
@@ -45,12 +45,8 @@ extern "C" {
#include "stm32wbxx_usb_dongle.h"
#endif
#ifdef  USE_STM32WBXX_NUCLEO
  #ifdef STM32WB35xx
  #include "nucleo_wb35ce.h"
  #else
#include "stm32wbxx_nucleo.h"
#endif
#endif
#ifdef  USE_X_NUCLEO_EPD
#include "x_nucleo_epd.h"
#endif
+264 −8
Original line number Diff line number Diff line
@@ -39,6 +39,24 @@ static void HW_IPCC_SYS_CmdEvtHandler( void );
static void HW_IPCC_SYS_EvtHandler( void );
static void HW_IPCC_TRACES_EvtHandler( void );

#ifdef THREAD_WB
static void HW_IPCC_OT_CmdEvtHandler( void );
static void HW_IPCC_THREAD_NotEvtHandler( void );
static void HW_IPCC_THREAD_CliNotEvtHandler( void );
#endif

#ifdef MAC_802_15_4_WB
static void HW_IPCC_MAC_802_15_4_CmdEvtHandler( void );
static void HW_IPCC_MAC_802_15_4_NotEvtHandler( void );
#endif

#ifdef ZIGBEE_WB
static void HW_IPCC_ZIGBEE_CmdEvtHandler( void );
static void HW_IPCC_ZIGBEE_StackNotifEvtHandler( void );
static void HW_IPCC_ZIGBEE_StackM0RequestHandler( void );

#endif

/* Public function definition -----------------------------------------------*/

/******************************************************************************
@@ -50,6 +68,32 @@ void HW_IPCC_Rx_Handler( void )
  {
      HW_IPCC_SYS_EvtHandler();
  }
#ifdef MAC_802_15_4_WB
  else if (HW_IPCC_RX_PENDING( HW_IPCC_MAC_802_15_4_NOTIFICATION_ACK_CHANNEL ))
  {
    HW_IPCC_MAC_802_15_4_NotEvtHandler();
  }
#endif /* MAC_802_15_4_WB */
#ifdef THREAD_WB
  else if (HW_IPCC_RX_PENDING( HW_IPCC_THREAD_NOTIFICATION_ACK_CHANNEL ))
  {
    HW_IPCC_THREAD_NotEvtHandler();
  }
  else if (HW_IPCC_RX_PENDING( HW_IPCC_THREAD_CLI_NOTIFICATION_ACK_CHANNEL ))
  {
    HW_IPCC_THREAD_CliNotEvtHandler();
  }
#endif /* THREAD_WB */
#ifdef ZIGBEE_WB
  else if (HW_IPCC_RX_PENDING( HW_IPCC_ZIGBEE_APPLI_NOTIF_ACK_CHANNEL ))
  {
    HW_IPCC_ZIGBEE_StackNotifEvtHandler();
  }
  else if (HW_IPCC_RX_PENDING( HW_IPCC_ZIGBEE_M0_REQUEST_CHANNEL ))
  {
    HW_IPCC_ZIGBEE_StackM0RequestHandler();
  }
#endif /* ZIGBEE_WB */
  else if (HW_IPCC_RX_PENDING( HW_IPCC_BLE_EVENT_CHANNEL ))
  {
    HW_IPCC_BLE_EvtHandler();
@@ -68,6 +112,24 @@ void HW_IPCC_Tx_Handler( void )
  {
    HW_IPCC_SYS_CmdEvtHandler();
  }
#ifdef MAC_802_15_4_WB
  else if (HW_IPCC_TX_PENDING( HW_IPCC_MAC_802_15_4_CMD_RSP_CHANNEL ))
  {
    HW_IPCC_MAC_802_15_4_CmdEvtHandler();
  }
#endif /* MAC_802_15_4_WB */
#ifdef THREAD_WB
  else if (HW_IPCC_TX_PENDING( HW_IPCC_THREAD_OT_CMD_RSP_CHANNEL ))
  {
    HW_IPCC_OT_CmdEvtHandler();
  }
#endif /* THREAD_WB */
#ifdef ZIGBEE_WB
  if (HW_IPCC_TX_PENDING( HW_IPCC_ZIGBEE_CMD_APPLI_CHANNEL ))
  {
      HW_IPCC_ZIGBEE_CmdEvtHandler();
  }
#endif /* ZIGBEE_WB */
  else if (HW_IPCC_TX_PENDING( HW_IPCC_SYSTEM_CMD_RSP_CHANNEL ))
  {
    HW_IPCC_SYS_CmdEvtHandler();
@@ -208,6 +270,200 @@ static void HW_IPCC_SYS_EvtHandler( void )
__weak void HW_IPCC_SYS_CmdEvtNot( void ){};
__weak void HW_IPCC_SYS_EvtNot( void ){};

/******************************************************************************
 * MAC 802.15.4
 ******************************************************************************/
#ifdef MAC_802_15_4_WB
void HW_IPCC_MAC_802_15_4_Init( void )
{
  LL_C1_IPCC_EnableReceiveChannel( IPCC, HW_IPCC_MAC_802_15_4_NOTIFICATION_ACK_CHANNEL );

  return;
}

void HW_IPCC_MAC_802_15_4_SendCmd( void )
{
  LL_C1_IPCC_SetFlag_CHx( IPCC, HW_IPCC_MAC_802_15_4_CMD_RSP_CHANNEL );
  LL_C1_IPCC_EnableTransmitChannel( IPCC, HW_IPCC_MAC_802_15_4_CMD_RSP_CHANNEL );

  return;
}

void HW_IPCC_MAC_802_15_4_SendAck( void )
{
  LL_C1_IPCC_ClearFlag_CHx( IPCC, HW_IPCC_MAC_802_15_4_NOTIFICATION_ACK_CHANNEL );
  LL_C1_IPCC_EnableReceiveChannel( IPCC, HW_IPCC_MAC_802_15_4_NOTIFICATION_ACK_CHANNEL );

  return;
}

static void HW_IPCC_MAC_802_15_4_CmdEvtHandler( void )
{
  LL_C1_IPCC_DisableTransmitChannel( IPCC, HW_IPCC_MAC_802_15_4_CMD_RSP_CHANNEL );

  HW_IPCC_MAC_802_15_4_CmdEvtNot();

  return;
}

static void HW_IPCC_MAC_802_15_4_NotEvtHandler( void )
{
  LL_C1_IPCC_DisableReceiveChannel( IPCC, HW_IPCC_MAC_802_15_4_NOTIFICATION_ACK_CHANNEL );

  HW_IPCC_MAC_802_15_4_EvtNot();

  return;
}
__weak void HW_IPCC_MAC_802_15_4_CmdEvtNot( void ){};
__weak void HW_IPCC_MAC_802_15_4_EvtNot( void ){};
#endif

/******************************************************************************
 * THREAD
 ******************************************************************************/
#ifdef THREAD_WB
void HW_IPCC_THREAD_Init( void )
{
  LL_C1_IPCC_EnableReceiveChannel( IPCC, HW_IPCC_THREAD_NOTIFICATION_ACK_CHANNEL );
  LL_C1_IPCC_EnableReceiveChannel( IPCC, HW_IPCC_THREAD_CLI_NOTIFICATION_ACK_CHANNEL );

  return;
}

void HW_IPCC_OT_SendCmd( void )
{
  LL_C1_IPCC_SetFlag_CHx( IPCC, HW_IPCC_THREAD_OT_CMD_RSP_CHANNEL );
  LL_C1_IPCC_EnableTransmitChannel( IPCC, HW_IPCC_THREAD_OT_CMD_RSP_CHANNEL );

  return;
}

void HW_IPCC_CLI_SendCmd( void )
{
  LL_C1_IPCC_SetFlag_CHx( IPCC, HW_IPCC_THREAD_CLI_CMD_CHANNEL );

  return;
}

void HW_IPCC_THREAD_SendAck( void )
{
  LL_C1_IPCC_ClearFlag_CHx( IPCC, HW_IPCC_THREAD_NOTIFICATION_ACK_CHANNEL );
  LL_C1_IPCC_EnableReceiveChannel( IPCC, HW_IPCC_THREAD_NOTIFICATION_ACK_CHANNEL );

  return;
}

void HW_IPCC_THREAD_CliSendAck( void )
{
  LL_C1_IPCC_ClearFlag_CHx( IPCC, HW_IPCC_THREAD_CLI_NOTIFICATION_ACK_CHANNEL );
  LL_C1_IPCC_EnableReceiveChannel( IPCC, HW_IPCC_THREAD_CLI_NOTIFICATION_ACK_CHANNEL );

  return;
}

static void HW_IPCC_OT_CmdEvtHandler( void )
{
  LL_C1_IPCC_DisableTransmitChannel( IPCC, HW_IPCC_THREAD_OT_CMD_RSP_CHANNEL );

  HW_IPCC_OT_CmdEvtNot();

  return;
}

static void HW_IPCC_THREAD_NotEvtHandler( void )
{
  LL_C1_IPCC_DisableReceiveChannel( IPCC, HW_IPCC_THREAD_NOTIFICATION_ACK_CHANNEL );

  HW_IPCC_THREAD_EvtNot();

  return;
}

static void HW_IPCC_THREAD_CliNotEvtHandler( void )
{
  LL_C1_IPCC_DisableReceiveChannel( IPCC, HW_IPCC_THREAD_CLI_NOTIFICATION_ACK_CHANNEL );

  HW_IPCC_THREAD_CliEvtNot();

  return;
}

__weak void HW_IPCC_OT_CmdEvtNot( void ){};
__weak void HW_IPCC_CLI_CmdEvtNot( void ){};
__weak void HW_IPCC_THREAD_EvtNot( void ){};

#endif /* THREAD_WB */

/******************************************************************************
 * ZIGBEE
 ******************************************************************************/
#ifdef ZIGBEE_WB
void HW_IPCC_ZIGBEE_Init( void )
{
  LL_C1_IPCC_EnableReceiveChannel( IPCC, HW_IPCC_ZIGBEE_APPLI_NOTIF_ACK_CHANNEL );
  LL_C1_IPCC_EnableReceiveChannel( IPCC, HW_IPCC_ZIGBEE_M0_REQUEST_CHANNEL );

  return;
}

void HW_IPCC_ZIGBEE_SendM4RequestToM0( void )
{
  LL_C1_IPCC_SetFlag_CHx( IPCC, HW_IPCC_ZIGBEE_CMD_APPLI_CHANNEL );
  LL_C1_IPCC_EnableTransmitChannel( IPCC, HW_IPCC_ZIGBEE_CMD_APPLI_CHANNEL );

  return;
}

void HW_IPCC_ZIGBEE_SendM4AckToM0Notify( void )
{
  LL_C1_IPCC_ClearFlag_CHx( IPCC, HW_IPCC_ZIGBEE_APPLI_NOTIF_ACK_CHANNEL );
  LL_C1_IPCC_EnableReceiveChannel( IPCC, HW_IPCC_ZIGBEE_APPLI_NOTIF_ACK_CHANNEL );

  return;
}

static void HW_IPCC_ZIGBEE_CmdEvtHandler( void )
{
    LL_C1_IPCC_DisableTransmitChannel( IPCC, HW_IPCC_ZIGBEE_CMD_APPLI_CHANNEL );

    HW_IPCC_ZIGBEE_RecvAppliAckFromM0();

    return;
}

static void HW_IPCC_ZIGBEE_StackNotifEvtHandler( void )
{
    LL_C1_IPCC_DisableReceiveChannel( IPCC, HW_IPCC_ZIGBEE_APPLI_NOTIF_ACK_CHANNEL );

    HW_IPCC_ZIGBEE_RecvM0NotifyToM4();

    return;
}

static void HW_IPCC_ZIGBEE_StackM0RequestHandler( void )
{
    LL_C1_IPCC_DisableReceiveChannel( IPCC, HW_IPCC_ZIGBEE_M0_REQUEST_CHANNEL );

    HW_IPCC_ZIGBEE_RecvM0RequestToM4();

    return;
}

void HW_IPCC_ZIGBEE_SendM4AckToM0Request( void )
{
    LL_C1_IPCC_ClearFlag_CHx( IPCC, HW_IPCC_ZIGBEE_M0_REQUEST_CHANNEL );
    LL_C1_IPCC_EnableReceiveChannel( IPCC, HW_IPCC_ZIGBEE_M0_REQUEST_CHANNEL );

    return;
}


__weak void HW_IPCC_ZIGBEE_RecvAppliAckFromM0( void ){};
__weak void HW_IPCC_ZIGBEE_RecvM0NotifyToM4( void ){};
__weak void HW_IPCC_ZIGBEE_RecvM0RequestToM4( void ){};
#endif /* ZIGBEE_WB */


/******************************************************************************
 * MEMORY MANAGER
 ******************************************************************************/
Loading