lib/stm32wb: hci: Update lib to V1.6.0 Cube version
Tested with 1.6 and default binary Signed-off-by: Erwan Gouriou <erwan.gouriou@linaro.org>
This commit is contained in:
parent
f0e1139812
commit
1447f22fbb
|
@ -1,114 +1,118 @@
|
|||
/**
|
||||
******************************************************************************
|
||||
* File Name : app_common.h
|
||||
* Description : App Common application configuration file for BLE
|
||||
* middleWare.
|
||||
******************************************************************************
|
||||
* @attention
|
||||
*
|
||||
* <h2><center>© Copyright (c) 2019 STMicroelectronics.
|
||||
* All rights reserved.</center></h2>
|
||||
*
|
||||
/**
|
||||
******************************************************************************
|
||||
* @file app_common.h
|
||||
* @author MCD Application Team
|
||||
* @brief Common
|
||||
******************************************************************************
|
||||
* @attention
|
||||
*
|
||||
* <h2><center>© Copyright (c) 2019 STMicroelectronics.
|
||||
* All rights reserved.</center></h2>
|
||||
*
|
||||
* This software component is licensed by ST under BSD 3-Clause license,
|
||||
* the "License"; You may not use this file except in compliance with the
|
||||
* License. You may obtain a copy of the License at:
|
||||
* opensource.org/licenses/BSD-3-Clause
|
||||
*
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
/* Define to prevent recursive inclusion -------------------------------------*/
|
||||
#ifndef APP_COMMON_H
|
||||
#define APP_COMMON_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C"{
|
||||
#endif
|
||||
|
||||
#include <stdint.h>
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdarg.h>
|
||||
|
||||
#include "app_conf.h"
|
||||
|
||||
/* -------------------------------- *
|
||||
* Basic definitions *
|
||||
* -------------------------------- */
|
||||
|
||||
#undef NULL
|
||||
#define NULL 0
|
||||
|
||||
#undef FALSE
|
||||
#define FALSE 0
|
||||
|
||||
#undef TRUE
|
||||
#define TRUE (!0)
|
||||
|
||||
/* -------------------------------- *
|
||||
* Critical Section definition *
|
||||
* -------------------------------- */
|
||||
#define BACKUP_PRIMASK() uint32_t primask_bit= __get_PRIMASK()
|
||||
#define DISABLE_IRQ() __disable_irq()
|
||||
#define RESTORE_PRIMASK() __set_PRIMASK(primask_bit)
|
||||
|
||||
/* -------------------------------- *
|
||||
* Macro delimiters *
|
||||
* -------------------------------- */
|
||||
|
||||
#define M_BEGIN do {
|
||||
|
||||
#define M_END } while(0)
|
||||
|
||||
/* -------------------------------- *
|
||||
* Some useful macro definitions *
|
||||
* -------------------------------- */
|
||||
|
||||
#define MAX( x, y ) (((x)>(y))?(x):(y))
|
||||
|
||||
#define MIN( x, y ) (((x)<(y))?(x):(y))
|
||||
|
||||
#define MODINC( a, m ) M_BEGIN (a)++; if ((a)>=(m)) (a)=0; M_END
|
||||
|
||||
#define MODDEC( a, m ) M_BEGIN if ((a)==0) (a)=(m); (a)--; M_END
|
||||
|
||||
#define MODADD( a, b, m ) M_BEGIN (a)+=(b); if ((a)>=(m)) (a)-=(m); M_END
|
||||
|
||||
#define MODSUB( a, b, m ) MODADD( a, (m)-(b), m )
|
||||
|
||||
#define PAUSE( t ) M_BEGIN \
|
||||
__IO int _i; \
|
||||
for ( _i = t; _i > 0; _i -- ); \
|
||||
M_END
|
||||
|
||||
#define DIVF( x, y ) ((x)/(y))
|
||||
|
||||
#define DIVC( x, y ) (((x)+(y)-1)/(y))
|
||||
|
||||
#define DIVR( x, y ) (((x)+((y)/2))/(y))
|
||||
|
||||
#define SHRR( x, n ) ((((x)>>((n)-1))+1)>>1)
|
||||
|
||||
#define BITN( w, n ) (((w)[(n)/32] >> ((n)%32)) & 1)
|
||||
|
||||
#define BITNSET( w, n, b ) M_BEGIN (w)[(n)/32] |= ((U32)(b))<<((n)%32); M_END
|
||||
|
||||
/* -------------------------------- *
|
||||
* Compiler *
|
||||
* -------------------------------- */
|
||||
#define PLACE_IN_SECTION( __x__ ) __attribute__((section (__x__)))
|
||||
|
||||
#ifdef WIN32
|
||||
#define ALIGN(n)
|
||||
#else
|
||||
#define ALIGN(n) __attribute__((aligned(n)))
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /* extern "C" */
|
||||
#endif
|
||||
|
||||
#endif /*APP_COMMON_H */
|
||||
|
||||
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
|
||||
*
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
|
||||
/* Define to prevent recursive inclusion -------------------------------------*/
|
||||
#ifndef __APP_COMMON_H
|
||||
#define __APP_COMMON_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
{
|
||||
#endif
|
||||
|
||||
#include <stdint.h>
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdarg.h>
|
||||
|
||||
#include "app_conf.h"
|
||||
|
||||
/* -------------------------------- *
|
||||
* Basic definitions *
|
||||
* -------------------------------- */
|
||||
|
||||
#undef NULL
|
||||
#define NULL 0
|
||||
|
||||
#undef FALSE
|
||||
#define FALSE 0
|
||||
|
||||
#undef TRUE
|
||||
#define TRUE (!0)
|
||||
|
||||
/* -------------------------------- *
|
||||
* Critical Section definition *
|
||||
* -------------------------------- */
|
||||
#define BACKUP_PRIMASK() uint32_t primask_bit= __get_PRIMASK()
|
||||
#define DISABLE_IRQ() __disable_irq()
|
||||
#define RESTORE_PRIMASK() __set_PRIMASK(primask_bit)
|
||||
|
||||
/* -------------------------------- *
|
||||
* Macro delimiters *
|
||||
* -------------------------------- */
|
||||
|
||||
#define M_BEGIN do {
|
||||
|
||||
#define M_END } while(0)
|
||||
|
||||
/* -------------------------------- *
|
||||
* Some useful macro definitions *
|
||||
* -------------------------------- */
|
||||
|
||||
#define MAX( x, y ) (((x)>(y))?(x):(y))
|
||||
|
||||
#define MIN( x, y ) (((x)<(y))?(x):(y))
|
||||
|
||||
#define MODINC( a, m ) M_BEGIN (a)++; if ((a)>=(m)) (a)=0; M_END
|
||||
|
||||
#define MODDEC( a, m ) M_BEGIN if ((a)==0) (a)=(m); (a)--; M_END
|
||||
|
||||
#define MODADD( a, b, m ) M_BEGIN (a)+=(b); if ((a)>=(m)) (a)-=(m); M_END
|
||||
|
||||
#define MODSUB( a, b, m ) MODADD( a, (m)-(b), m )
|
||||
|
||||
|
||||
#define PAUSE( t ) M_BEGIN \
|
||||
volatile int _i; \
|
||||
for ( _i = t; _i > 0; _i -- ); \
|
||||
M_END
|
||||
|
||||
#define DIVF( x, y ) ((x)/(y))
|
||||
|
||||
#define DIVC( x, y ) (((x)+(y)-1)/(y))
|
||||
|
||||
#define DIVR( x, y ) (((x)+((y)/2))/(y))
|
||||
|
||||
#define SHRR( x, n ) ((((x)>>((n)-1))+1)>>1)
|
||||
|
||||
#define BITN( w, n ) (((w)[(n)/32] >> ((n)%32)) & 1)
|
||||
|
||||
#define BITNSET( w, n, b ) M_BEGIN (w)[(n)/32] |= ((U32)(b))<<((n)%32); M_END
|
||||
|
||||
/* -------------------------------- *
|
||||
* Compiler *
|
||||
* -------------------------------- */
|
||||
#define PLACE_IN_SECTION( __x__ ) __attribute__((section (__x__)))
|
||||
|
||||
#ifdef WIN32
|
||||
#define ALIGN(n)
|
||||
#else
|
||||
#define ALIGN(n) __attribute__((aligned(n)))
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /*__APP_COMMON_H */
|
||||
|
||||
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
|
||||
|
|
|
@ -1,25 +1,26 @@
|
|||
/**
|
||||
******************************************************************************
|
||||
* 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
|
||||
*
|
||||
* <h2><center>© Copyright (c) 2019 STMicroelectronics.
|
||||
* All rights reserved.</center></h2>
|
||||
*
|
||||
* @attention
|
||||
*
|
||||
* <h2><center>© Copyright (c) 2019 STMicroelectronics.
|
||||
* All rights reserved.</center></h2>
|
||||
*
|
||||
* This software component is licensed by ST under BSD 3-Clause license,
|
||||
* the "License"; You may not use this file except in compliance with the
|
||||
* License. You may obtain a copy of the License at:
|
||||
* opensource.org/licenses/BSD-3-Clause
|
||||
*
|
||||
******************************************************************************
|
||||
*/
|
||||
*
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
|
||||
/* 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,24 +28,24 @@
|
|||
#include "hw_if.h"
|
||||
|
||||
/******************************************************************************
|
||||
* Application Config
|
||||
* OTA Application Config
|
||||
******************************************************************************/
|
||||
|
||||
/**< generic parameters ******************************************************/
|
||||
|
||||
/**
|
||||
* Define Tx Power
|
||||
*/
|
||||
*/
|
||||
#define CFG_TX_POWER (0x18) /**< 0dbm */
|
||||
|
||||
/**
|
||||
* Define Advertising parameters
|
||||
*/
|
||||
#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_MIN (0x80) /**< 80ms */
|
||||
#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
|
||||
|
@ -72,18 +73,7 @@
|
|||
#define CFG_MITM_PROTECTION_NOT_REQUIRED (0x00)
|
||||
#define CFG_MITM_PROTECTION_REQUIRED (0x01)
|
||||
|
||||
#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
|
||||
#define CFG_MITM_PROTECTION CFG_MITM_PROTECTION_REQUIRED
|
||||
|
||||
/**
|
||||
* 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
|
||||
******************************************************************************/
|
||||
|
@ -253,8 +298,9 @@
|
|||
/**
|
||||
* Select UART interfaces
|
||||
*/
|
||||
#define CFG_DEBUG_TRACE_UART hw_uart1
|
||||
#define CFG_CONSOLE_MENU
|
||||
#define CFG_DEBUG_TRACE_UART hw_uart1
|
||||
#define CFG_CONSOLE_MENU hw_lpuart1
|
||||
|
||||
/******************************************************************************
|
||||
* USB interface
|
||||
******************************************************************************/
|
||||
|
@ -262,7 +308,7 @@
|
|||
/**
|
||||
* Enable/Disable USB interface
|
||||
*/
|
||||
#define CFG_USB_INTERFACE_ENABLE 0
|
||||
#define CFG_USB_INTERFACE_ENABLE 0
|
||||
|
||||
/******************************************************************************
|
||||
* Low Power
|
||||
|
@ -271,7 +317,7 @@
|
|||
* When set to 1, the low power mode is enable
|
||||
* When set to 0, the device stays in RUN mode
|
||||
*/
|
||||
#define CFG_LPM_SUPPORTED 1
|
||||
#define CFG_LPM_SUPPORTED 1
|
||||
|
||||
/******************************************************************************
|
||||
* Timer Server
|
||||
|
@ -363,23 +409,26 @@ typedef enum
|
|||
* This shall be set to 0 in a final product
|
||||
*
|
||||
*/
|
||||
#define CFG_HW_RESET_BY_FW 1
|
||||
#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_TASK_SYSTEM_HCI_ASYNCH_EVT_ID,
|
||||
|
||||
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****/
|
||||
|
|
|
@ -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,9 +66,21 @@ 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 );
|
||||
|
||||
|
||||
void HW_IPCC_MAC_802_15_4_Init( void );
|
||||
void HW_IPCC_MAC_802_15_4_SendCmd( void );
|
||||
void HW_IPCC_MAC_802_15_4_SendAck( void );
|
||||
|
|
|
@ -45,11 +45,7 @@ extern "C" {
|
|||
#include "stm32wbxx_usb_dongle.h"
|
||||
#endif
|
||||
#ifdef USE_STM32WBXX_NUCLEO
|
||||
#ifdef STM32WB35xx
|
||||
#include "nucleo_wb35ce.h"
|
||||
#else
|
||||
#include "stm32wbxx_nucleo.h"
|
||||
#endif
|
||||
#include "stm32wbxx_nucleo.h"
|
||||
#endif
|
||||
#ifdef USE_X_NUCLEO_EPD
|
||||
#include "x_nucleo_epd.h"
|
||||
|
|
|
@ -4,18 +4,18 @@
|
|||
* Description : Hardware IPCC source file for STM32WPAN Middleware.
|
||||
*
|
||||
******************************************************************************
|
||||
* @attention
|
||||
*
|
||||
* <h2><center>© Copyright (c) 2019 STMicroelectronics.
|
||||
* All rights reserved.</center></h2>
|
||||
*
|
||||
* @attention
|
||||
*
|
||||
* <h2><center>© Copyright (c) 2019 STMicroelectronics.
|
||||
* All rights reserved.</center></h2>
|
||||
*
|
||||
* This software component is licensed by ST under BSD 3-Clause license,
|
||||
* the "License"; You may not use this file except in compliance with the
|
||||
* License. You may obtain a copy of the License at:
|
||||
* opensource.org/licenses/BSD-3-Clause
|
||||
*
|
||||
******************************************************************************
|
||||
*/
|
||||
*
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
/* Includes ------------------------------------------------------------------*/
|
||||
#include "app_common.h"
|
||||
|
@ -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
|
||||
******************************************************************************/
|
||||
|
|
|
@ -100,6 +100,12 @@ extern "C" {
|
|||
uint8_t *m0cmd_buffer;
|
||||
} MB_LldTestsTable_t;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
uint8_t *cmdrsp_buffer;
|
||||
uint8_t *m0cmd_buffer;
|
||||
} MB_LldBleTable_t;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
uint8_t *notifM0toM4_buffer;
|
||||
|
@ -151,6 +157,7 @@ extern "C" {
|
|||
MB_Mac_802_15_4_t *p_mac_802_15_4_table;
|
||||
MB_ZigbeeTable_t *p_zigbee_table;
|
||||
MB_LldTestsTable_t *p_lld_tests_table;
|
||||
MB_LldBleTable_t *p_lld_ble_table;
|
||||
} MB_RefTable_t;
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
@ -194,6 +201,13 @@ extern "C" {
|
|||
* | |
|
||||
* |<---HW_IPCC_BLE_EVENT_CHANNEL--------------------|
|
||||
* | |
|
||||
* | (LLD BLE) |
|
||||
* |----HW_IPCC_LLD_BLE_CMD_CHANNEL----------------->|
|
||||
* | |
|
||||
* |<---HW_IPCC_LLD_BLE_RSP_CHANNEL------------------|
|
||||
* | |
|
||||
* |<---HW_IPCC_LLD_BLE_M0_CMD_CHANNEL---------------|
|
||||
* | |
|
||||
* | (MAC) |
|
||||
* |----HW_IPCC_MAC_802_15_4_CMD_RSP_CHANNEL-------->|
|
||||
* | |
|
||||
|
@ -221,6 +235,8 @@ extern "C" {
|
|||
#define HW_IPCC_MM_RELEASE_BUFFER_CHANNEL LL_IPCC_CHANNEL_4
|
||||
#define HW_IPCC_THREAD_CLI_CMD_CHANNEL LL_IPCC_CHANNEL_5
|
||||
#define HW_IPCC_LLDTESTS_CLI_CMD_CHANNEL LL_IPCC_CHANNEL_5
|
||||
#define HW_IPCC_LLD_BLE_CLI_CMD_CHANNEL LL_IPCC_CHANNEL_5
|
||||
#define HW_IPCC_LLD_BLE_CMD_CHANNEL LL_IPCC_CHANNEL_5
|
||||
#define HW_IPCC_HCI_ACL_DATA_CHANNEL LL_IPCC_CHANNEL_6
|
||||
|
||||
/** CPU2 */
|
||||
|
@ -230,9 +246,12 @@ extern "C" {
|
|||
#define HW_IPCC_ZIGBEE_APPLI_NOTIF_ACK_CHANNEL LL_IPCC_CHANNEL_3
|
||||
#define HW_IPCC_MAC_802_15_4_NOTIFICATION_ACK_CHANNEL LL_IPCC_CHANNEL_3
|
||||
#define HW_IPCC_LLDTESTS_M0_CMD_CHANNEL LL_IPCC_CHANNEL_3
|
||||
#define HW_IPCC_LLD_BLE_M0_CMD_CHANNEL LL_IPCC_CHANNEL_3
|
||||
#define HW_IPCC_TRACES_CHANNEL LL_IPCC_CHANNEL_4
|
||||
#define HW_IPCC_THREAD_CLI_NOTIFICATION_ACK_CHANNEL LL_IPCC_CHANNEL_5
|
||||
#define HW_IPCC_LLDTESTS_CLI_RSP_CHANNEL LL_IPCC_CHANNEL_5
|
||||
#define HW_IPCC_LLD_BLE_CLI_RSP_CHANNEL LL_IPCC_CHANNEL_5
|
||||
#define HW_IPCC_LLD_BLE_RSP_CHANNEL LL_IPCC_CHANNEL_5
|
||||
#define HW_IPCC_ZIGBEE_M0_REQUEST_CHANNEL LL_IPCC_CHANNEL_5
|
||||
#endif /*__MBOX_H */
|
||||
|
||||
|
|
|
@ -6,11 +6,11 @@
|
|||
******************************************************************************
|
||||
* @attention
|
||||
*
|
||||
* <h2><center>© Copyright (c) 2019 STMicroelectronics.
|
||||
* <h2><center>© Copyright (c) 2019 STMicroelectronics.
|
||||
* All rights reserved.</center></h2>
|
||||
*
|
||||
* This software component is licensed by ST under BSD 3-Clause license,
|
||||
* the "License"; You may not use this file except in compliance with the
|
||||
* the "License"; You may not use this file except in compliance with the
|
||||
* License. You may obtain a copy of the License at:
|
||||
* opensource.org/licenses/BSD-3-Clause
|
||||
*
|
||||
|
@ -298,6 +298,24 @@ SHCI_CmdStatus_t SHCI_C2_LLDTESTS_Init( uint8_t param_size, uint8_t * p_param )
|
|||
return (SHCI_CmdStatus_t)(((TL_CcEvt_t*)(p_rsp->evtserial.evt.payload))->payload[0]);
|
||||
}
|
||||
|
||||
SHCI_CmdStatus_t SHCI_C2_LLD_BLE_Init( uint8_t param_size, uint8_t * p_param )
|
||||
{
|
||||
/**
|
||||
* Buffer is large enough to hold command complete without payload
|
||||
*/
|
||||
uint8_t local_buffer[TL_BLEEVT_CS_BUFFER_SIZE];
|
||||
TL_EvtPacket_t * p_rsp;
|
||||
|
||||
p_rsp = (TL_EvtPacket_t *)local_buffer;
|
||||
|
||||
shci_send( SHCI_OPCODE_C2_LLD_TESTS_INIT,
|
||||
param_size,
|
||||
p_param,
|
||||
p_rsp );
|
||||
|
||||
return (SHCI_CmdStatus_t)(((TL_CcEvt_t*)(p_rsp->evtserial.evt.payload))->payload[0]);
|
||||
}
|
||||
|
||||
SHCI_CmdStatus_t SHCI_C2_ZIGBEE_Init( void )
|
||||
{
|
||||
/**
|
||||
|
|
|
@ -6,11 +6,11 @@
|
|||
******************************************************************************
|
||||
* @attention
|
||||
*
|
||||
* <h2><center>© Copyright (c) 2019 STMicroelectronics.
|
||||
* <h2><center>© Copyright (c) 2019 STMicroelectronics.
|
||||
* All rights reserved.</center></h2>
|
||||
*
|
||||
* This software component is licensed by ST under BSD 3-Clause license,
|
||||
* the "License"; You may not use this file except in compliance with the
|
||||
* the "License"; You may not use this file except in compliance with the
|
||||
* License. You may obtain a copy of the License at:
|
||||
* opensource.org/licenses/BSD-3-Clause
|
||||
*
|
||||
|
@ -138,7 +138,8 @@ extern "C" {
|
|||
SHCI_OCF_C2_ZIGBEE_INIT,
|
||||
SHCI_OCF_C2_LLD_TESTS_INIT,
|
||||
SHCI_OCF_C2_EXTPA_CONFIG,
|
||||
SHCI_OCF_C2_SET_FLASH_ACTIVITY_CONTROL
|
||||
SHCI_OCF_C2_SET_FLASH_ACTIVITY_CONTROL,
|
||||
SHCI_OCF_C2_LLD_BLE_INIT
|
||||
} SHCI_OCF_t;
|
||||
|
||||
#define SHCI_OPCODE_C2_FUS_GET_STATE (( SHCI_OGF << 10) + SHCI_OCF_C2_FUS_GET_STATE)
|
||||
|
@ -367,6 +368,8 @@ extern "C" {
|
|||
|
||||
#define SHCI_OPCODE_C2_LLD_TESTS_INIT (( SHCI_OGF << 10) + SHCI_OCF_C2_LLD_TESTS_INIT)
|
||||
|
||||
#define SHCI_OPCODE_C2_LLD_BLE_INIT (( SHCI_OGF << 10) + SHCI_OCF_C2_LLD_BLE_INIT)
|
||||
|
||||
#define SHCI_OPCODE_C2_EXTPA_CONFIG (( SHCI_OGF << 10) + SHCI_OCF_C2_EXTPA_CONFIG)
|
||||
/** Command parameters */
|
||||
enum
|
||||
|
@ -457,13 +460,16 @@ typedef MB_WirelessFwInfoTable_t SHCI_WirelessFwInfoTable_t;
|
|||
#define INFO_STACK_TYPE_BLE_LIGHT 0x03
|
||||
#define INFO_STACK_TYPE_THREAD_FTD 0x10
|
||||
#define INFO_STACK_TYPE_THREAD_MTD 0x11
|
||||
#define INFO_STACK_TYPE_ZIGBEE 0x30
|
||||
#define INFO_STACK_TYPE_ZIGBEE_FFD 0x30
|
||||
#define INFO_STACK_TYPE_ZIGBEE_RFD 0x31
|
||||
#define INFO_STACK_TYPE_MAC 0x40
|
||||
#define INFO_STACK_TYPE_BLE_THREAD_FTD_STATIC 0x50
|
||||
#define INFO_STACK_TYPE_802154_LLD_TESTS 0x60
|
||||
#define INFO_STACK_TYPE_802154_PHY_VALID 0x61
|
||||
#define INFO_STACK_TYPE_BLE_PHY_VALID 0x62
|
||||
#define INFO_STACK_TYPE_BLE_LLD_TESTS 0x63
|
||||
#define INFO_STACK_TYPE_BLE_RLV 0x64
|
||||
#define INFO_STACK_TYPE_802154_RLV 0x65
|
||||
#define INFO_STACK_TYPE_BLE_ZIGBEE_FFD_STATIC 0x70
|
||||
|
||||
typedef struct {
|
||||
|
@ -614,6 +620,16 @@ typedef struct {
|
|||
*/
|
||||
SHCI_CmdStatus_t SHCI_C2_LLDTESTS_Init( uint8_t param_size, uint8_t * p_param );
|
||||
|
||||
/**
|
||||
* SHCI_C2_LLD_BLE_Init
|
||||
* @brief Starts the LLD tests CLI
|
||||
*
|
||||
* @param param_size : Nb of bytes
|
||||
* @param p_param : pointeur with data to give from M4 to M0
|
||||
* @retval Status
|
||||
*/
|
||||
SHCI_CmdStatus_t SHCI_C2_LLD_BLE_Init( uint8_t param_size, uint8_t * p_param );
|
||||
|
||||
/**
|
||||
* SHCI_C2_ZIGBEE_Init
|
||||
* @brief Starts the Zigbee Stack
|
||||
|
@ -622,7 +638,7 @@ typedef struct {
|
|||
* @retval Status
|
||||
*/
|
||||
SHCI_CmdStatus_t SHCI_C2_ZIGBEE_Init( void );
|
||||
|
||||
|
||||
/**
|
||||
* SHCI_C2_DEBUG_Init
|
||||
* @brief Starts the Traces
|
||||
|
|
|
@ -6,11 +6,11 @@
|
|||
******************************************************************************
|
||||
* @attention
|
||||
*
|
||||
* <h2><center>© Copyright (c) 2019 STMicroelectronics.
|
||||
* <h2><center>© Copyright (c) 2019 STMicroelectronics.
|
||||
* All rights reserved.</center></h2>
|
||||
*
|
||||
* This software component is licensed by ST under BSD 3-Clause license,
|
||||
* the "License"; You may not use this file except in compliance with the
|
||||
* the "License"; You may not use this file except in compliance with the
|
||||
* License. You may obtain a copy of the License at:
|
||||
* opensource.org/licenses/BSD-3-Clause
|
||||
*
|
||||
|
@ -24,6 +24,30 @@
|
|||
#include "stm_list.h"
|
||||
#include "shci_tl.h"
|
||||
|
||||
/**
|
||||
* These traces are not yet supported in an usual way in the delivery package
|
||||
* They can enabled by adding the definition of TL_SHCI_CMD_DBG_EN and/or TL_SHCI_EVT_DBG_EN in the preprocessor option in the IDE
|
||||
*/
|
||||
#if ( (TL_SHCI_CMD_DBG_EN != 0) || (TL_SHCI_EVT_DBG_EN != 0) )
|
||||
#include "app_conf.h"
|
||||
#include "dbg_trace.h"
|
||||
#endif
|
||||
|
||||
#if (TL_SHCI_CMD_DBG_EN != 0)
|
||||
#define TL_SHCI_CMD_DBG_MSG PRINT_MESG_DBG
|
||||
#define TL_SHCI_CMD_DBG_BUF PRINT_LOG_BUFF_DBG
|
||||
#else
|
||||
#define TL_SHCI_CMD_DBG_MSG(...)
|
||||
#define TL_SHCI_CMD_DBG_BUF(...)
|
||||
#endif
|
||||
|
||||
#if (TL_SHCI_EVT_DBG_EN != 0)
|
||||
#define TL_SHCI_EVT_DBG_MSG PRINT_MESG_DBG
|
||||
#define TL_SHCI_EVT_DBG_BUF PRINT_LOG_BUFF_DBG
|
||||
#else
|
||||
#define TL_SHCI_EVT_DBG_MSG(...)
|
||||
#define TL_SHCI_EVT_DBG_BUF(...)
|
||||
#endif
|
||||
|
||||
/* Private typedef -----------------------------------------------------------*/
|
||||
typedef enum
|
||||
|
@ -71,6 +95,9 @@ static void Cmd_SetStatus(SHCI_TL_CmdStatus_t shcicmdstatus);
|
|||
static void TlCmdEvtReceived(TL_EvtPacket_t *shcievt);
|
||||
static void TlUserEvtReceived(TL_EvtPacket_t *shcievt);
|
||||
static void TlInit( TL_CmdPacket_t * p_cmdbuffer );
|
||||
static void OutputCmdTrace(TL_CmdPacket_t *pCmdBuffer);
|
||||
static void OutputRspTrace(TL_EvtPacket_t *p_rsp);
|
||||
static void OutputEvtTrace(TL_EvtPacket_t *phcievtbuffer);
|
||||
|
||||
/* Interface ------- ---------------------------------------------------------*/
|
||||
void shci_init(void(* UserEvtRx)(void* pData), void* pConf)
|
||||
|
@ -108,6 +135,8 @@ void shci_user_evt_proc(void)
|
|||
{
|
||||
LST_remove_head ( &SHciAsynchEventQueue, (tListNode **)&phcievtbuffer );
|
||||
|
||||
OutputEvtTrace(phcievtbuffer);
|
||||
|
||||
if (shciContext.UserEvtRx != NULL)
|
||||
{
|
||||
UserEvtRxParam.pckt = phcievtbuffer;
|
||||
|
@ -164,6 +193,8 @@ void shci_send( uint16_t cmd_code, uint8_t len_cmd_payload, uint8_t * p_cmd_payl
|
|||
|
||||
memcpy(pCmdBuffer->cmdserial.cmd.payload, p_cmd_payload, len_cmd_payload );
|
||||
|
||||
OutputCmdTrace(pCmdBuffer);
|
||||
|
||||
shciContext.io.Send(0,0);
|
||||
|
||||
shci_cmd_resp_wait(SHCI_TL_DEFAULT_TIMEOUT);
|
||||
|
@ -174,6 +205,8 @@ void shci_send( uint16_t cmd_code, uint8_t len_cmd_payload, uint8_t * p_cmd_payl
|
|||
*/
|
||||
memcpy( &(p_rsp->evtserial), pCmdBuffer, ((TL_EvtSerial_t*)pCmdBuffer)->evt.plen + TL_EVT_HDR_SIZE );
|
||||
|
||||
OutputRspTrace(p_rsp);
|
||||
|
||||
Cmd_SetStatus(SHCI_TL_CmdAvailable);
|
||||
|
||||
return;
|
||||
|
@ -243,6 +276,67 @@ static void TlUserEvtReceived(TL_EvtPacket_t *shcievt)
|
|||
return;
|
||||
}
|
||||
|
||||
static void OutputCmdTrace(TL_CmdPacket_t *pCmdBuffer)
|
||||
{
|
||||
TL_SHCI_CMD_DBG_MSG("sys cmd: 0x%04X", pCmdBuffer->cmdserial.cmd.cmdcode);
|
||||
|
||||
if(pCmdBuffer->cmdserial.cmd.plen != 0)
|
||||
{
|
||||
TL_SHCI_CMD_DBG_MSG(" payload:");
|
||||
TL_SHCI_CMD_DBG_BUF(pCmdBuffer->cmdserial.cmd.payload, pCmdBuffer->cmdserial.cmd.plen, "");
|
||||
}
|
||||
TL_SHCI_CMD_DBG_MSG("\r\n");
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
static void OutputRspTrace(TL_EvtPacket_t *p_rsp)
|
||||
{
|
||||
switch(p_rsp->evtserial.evt.evtcode)
|
||||
{
|
||||
case TL_BLEEVT_CC_OPCODE:
|
||||
TL_SHCI_CMD_DBG_MSG("sys rsp: 0x%02X", p_rsp->evtserial.evt.evtcode);
|
||||
TL_SHCI_CMD_DBG_MSG(" cmd opcode: 0x%02X", ((TL_CcEvt_t*)(p_rsp->evtserial.evt.payload))->cmdcode);
|
||||
TL_SHCI_CMD_DBG_MSG(" status: 0x%02X", ((TL_CcEvt_t*)(p_rsp->evtserial.evt.payload))->payload[0]);
|
||||
if((p_rsp->evtserial.evt.plen-4) != 0)
|
||||
{
|
||||
TL_SHCI_CMD_DBG_MSG(" payload:");
|
||||
TL_SHCI_CMD_DBG_BUF(&((TL_CcEvt_t*)(p_rsp->evtserial.evt.payload))->payload[1], p_rsp->evtserial.evt.plen-4, "");
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
TL_SHCI_CMD_DBG_MSG("unknown sys rsp received: %02X", p_rsp->evtserial.evt.evtcode);
|
||||
break;
|
||||
}
|
||||
|
||||
TL_SHCI_CMD_DBG_MSG("\r\n");
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
static void OutputEvtTrace(TL_EvtPacket_t *phcievtbuffer)
|
||||
{
|
||||
if(phcievtbuffer->evtserial.evt.evtcode != TL_BLEEVT_VS_OPCODE)
|
||||
{
|
||||
TL_SHCI_EVT_DBG_MSG("unknown sys evt received: %02X", phcievtbuffer->evtserial.evt.evtcode);
|
||||
}
|
||||
else
|
||||
{
|
||||
TL_SHCI_EVT_DBG_MSG("sys evt: 0x%02X", phcievtbuffer->evtserial.evt.evtcode);
|
||||
TL_SHCI_EVT_DBG_MSG(" subevtcode: 0x%04X", ((TL_AsynchEvt_t*)(phcievtbuffer->evtserial.evt.payload))->subevtcode);
|
||||
if((phcievtbuffer->evtserial.evt.plen-2) != 0)
|
||||
{
|
||||
TL_SHCI_EVT_DBG_MSG(" payload:");
|
||||
TL_SHCI_EVT_DBG_BUF(((TL_AsynchEvt_t*)(phcievtbuffer->evtserial.evt.payload))->payload, phcievtbuffer->evtserial.evt.plen-2, "");
|
||||
}
|
||||
}
|
||||
|
||||
TL_SHCI_EVT_DBG_MSG("\r\n");
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
/* Weak implementation ----------------------------------------------------------------*/
|
||||
__WEAK void shci_cmd_resp_wait(uint32_t timeout)
|
||||
{
|
||||
|
@ -262,3 +356,5 @@ __WEAK void shci_cmd_resp_release(uint32_t flag)
|
|||
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -85,10 +85,10 @@ extern "C" {
|
|||
* Some useful macro definitions *
|
||||
* -------------------------------- */
|
||||
#undef MAX
|
||||
#define MAX( x, y ) (((x)>(y))?(x):(y))
|
||||
#define MAX(a, b) (((a) > (b)) ? (a) : (b))
|
||||
|
||||
#undef MIN
|
||||
#define MIN( x, y ) (((x)<(y))?(x):(y))
|
||||
#define MIN(a, b) (((a) < (b)) ? (a) : (b))
|
||||
|
||||
#undef MODINC
|
||||
#define MODINC( a, m ) M_BEGIN (a)++; if ((a)>=(m)) (a)=0; M_END
|
||||
|
|
|
@ -57,6 +57,7 @@ extern "C" {
|
|||
|
||||
#define TL_BLEEVT_CC_OPCODE (0x0E)
|
||||
#define TL_BLEEVT_CS_OPCODE (0x0F)
|
||||
#define TL_BLEEVT_VS_OPCODE (0xFF)
|
||||
|
||||
#define TL_BLEEVT_CS_PACKET_SIZE (TL_EVT_HDR_SIZE + sizeof(TL_CsEvt_t))
|
||||
#define TL_BLEEVT_CS_BUFFER_SIZE (sizeof(TL_PacketHeader_t) + TL_BLEEVT_CS_PACKET_SIZE)
|
||||
|
@ -192,6 +193,12 @@ typedef struct
|
|||
uint8_t *p_LldTestsM0CmdBuffer;
|
||||
} TL_LLD_tests_Config_t;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
uint8_t *p_LldBleCmdRspBuffer;
|
||||
uint8_t *p_LldBleM0CmdBuffer;
|
||||
} TL_LLD_BLE_Config_t;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
uint8_t *p_Mac_802_15_4_CmdRspBuffer;
|
||||
|
@ -274,6 +281,18 @@ void TL_LLDTESTS_SendCliRspAck( void );
|
|||
void TL_LLDTESTS_ReceiveM0Cmd( TL_CmdPacket_t * Notbuffer );
|
||||
void TL_LLDTESTS_SendM0CmdAck( void );
|
||||
|
||||
/******************************************************************************
|
||||
* LLD BLE
|
||||
******************************************************************************/
|
||||
void TL_LLD_BLE_Init( TL_LLD_BLE_Config_t *p_Config );
|
||||
void TL_LLD_BLE_SendCliCmd( void );
|
||||
void TL_LLD_BLE_ReceiveCliRsp( TL_CmdPacket_t * Notbuffer );
|
||||
void TL_LLD_BLE_SendCliRspAck( void );
|
||||
void TL_LLD_BLE_ReceiveM0Cmd( TL_CmdPacket_t * Notbuffer );
|
||||
void TL_LLD_BLE_SendM0CmdAck( void );
|
||||
void TL_LLD_BLE_SendCmd( void );
|
||||
void TL_LLD_BLE_ReceiveRsp( TL_CmdPacket_t * Notbuffer );
|
||||
void TL_LLD_BLE_SendRspAck( void );
|
||||
/******************************************************************************
|
||||
* MEMORY MANAGER
|
||||
******************************************************************************/
|
||||
|
|
|
@ -4,17 +4,17 @@
|
|||
* @author MCD Application Team
|
||||
* @brief Transport layer for the mailbox interface
|
||||
******************************************************************************
|
||||
* @attention
|
||||
*
|
||||
* <h2><center>© Copyright (c) 2019 STMicroelectronics.
|
||||
* All rights reserved.</center></h2>
|
||||
*
|
||||
* This software component is licensed by ST under BSD 3-Clause license,
|
||||
* the "License"; You may not use this file except in compliance with the
|
||||
* License. You may obtain a copy of the License at:
|
||||
* opensource.org/licenses/BSD-3-Clause
|
||||
*
|
||||
******************************************************************************
|
||||
* @attention
|
||||
*
|
||||
* <h2><center>© Copyright (c) 2019 STMicroelectronics.
|
||||
* All rights reserved.</center></h2>
|
||||
*
|
||||
* This software component is licensed by ST under BSD 3-Clause license,
|
||||
* the "License"; You may not use this file except in compliance with the
|
||||
* License. You may obtain a copy of the License at:
|
||||
* opensource.org/licenses/BSD-3-Clause
|
||||
*
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
|
||||
|
@ -26,6 +26,21 @@
|
|||
#include "tl.h"
|
||||
#include "mbox_def.h"
|
||||
|
||||
/**
|
||||
* These traces are not yet supported in an usual way in the delivery package
|
||||
* They can enabled by adding the definition of TL_MM_DBG_EN in the preprocessor option in the IDE
|
||||
*/
|
||||
#if(TL_MM_DBG_EN != 0)
|
||||
#include "app_conf.h"
|
||||
#include "dbg_trace.h"
|
||||
#endif
|
||||
|
||||
#if (TL_MM_DBG_EN != 0)
|
||||
#define TL_MM_DBG__MSG PRINT_MESG_DBG
|
||||
#else
|
||||
#define TL_MM_DBG__MSG(...)
|
||||
#endif
|
||||
|
||||
/* Private typedef -----------------------------------------------------------*/
|
||||
/* Private defines -----------------------------------------------------------*/
|
||||
/* Private macros ------------------------------------------------------------*/
|
||||
|
@ -37,6 +52,7 @@ PLACE_IN_SECTION("MB_MEM1") ALIGN(4) static MB_DeviceInfoTable_t TL_DeviceInfoTa
|
|||
PLACE_IN_SECTION("MB_MEM1") ALIGN(4) static MB_BleTable_t TL_BleTable;
|
||||
PLACE_IN_SECTION("MB_MEM1") ALIGN(4) static MB_ThreadTable_t TL_ThreadTable;
|
||||
PLACE_IN_SECTION("MB_MEM1") ALIGN(4) static MB_LldTestsTable_t TL_LldTestsTable;
|
||||
PLACE_IN_SECTION("MB_MEM1") ALIGN(4) static MB_LldBleTable_t TL_LldBleTable;
|
||||
PLACE_IN_SECTION("MB_MEM1") ALIGN(4) static MB_SysTable_t TL_SysTable;
|
||||
PLACE_IN_SECTION("MB_MEM1") ALIGN(4) static MB_MemManagerTable_t TL_MemManagerTable;
|
||||
PLACE_IN_SECTION("MB_MEM1") ALIGN(4) static MB_TracesTable_t TL_TracesTable;
|
||||
|
@ -61,6 +77,7 @@ static void (* SYS_EVT_IoBusCallBackFunction) (TL_EvtPacket_t *phcievt);
|
|||
/* Global variables ----------------------------------------------------------*/
|
||||
/* Private function prototypes -----------------------------------------------*/
|
||||
static void SendFreeBuf( void );
|
||||
static void OutputMemReleaseTrace(TL_EvtPacket_t * phcievt);
|
||||
|
||||
/* Public Functions Definition ------------------------------------------------------*/
|
||||
|
||||
|
@ -81,6 +98,7 @@ void TL_Init( void )
|
|||
TL_RefTable.p_ble_table = &TL_BleTable;
|
||||
TL_RefTable.p_thread_table = &TL_ThreadTable;
|
||||
TL_RefTable.p_lld_tests_table = &TL_LldTestsTable;
|
||||
TL_RefTable.p_lld_ble_table = &TL_LldBleTable;
|
||||
TL_RefTable.p_sys_table = &TL_SysTable;
|
||||
TL_RefTable.p_mem_manager_table = &TL_MemManagerTable;
|
||||
TL_RefTable.p_traces_table = &TL_TracesTable;
|
||||
|
@ -91,7 +109,6 @@ void TL_Init( void )
|
|||
return;
|
||||
}
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
* BLE
|
||||
******************************************************************************/
|
||||
|
@ -350,6 +367,77 @@ __WEAK void TL_LLDTESTS_ReceiveCliRsp( TL_CmdPacket_t * Notbuffer ){};
|
|||
__WEAK void TL_LLDTESTS_ReceiveM0Cmd( TL_CmdPacket_t * Notbuffer ){};
|
||||
#endif /* LLD_TESTS_WB */
|
||||
|
||||
/******************************************************************************
|
||||
* LLD BLE
|
||||
******************************************************************************/
|
||||
#ifdef LLD_BLE_WB
|
||||
void TL_LLD_BLE_Init( TL_LLD_BLE_Config_t *p_Config )
|
||||
{
|
||||
MB_LldBleTable_t * p_lld_ble_table;
|
||||
|
||||
p_lld_ble_table = TL_RefTable.p_lld_ble_table;
|
||||
p_lld_ble_table->cmdrsp_buffer = p_Config->p_LldBleCmdRspBuffer;
|
||||
p_lld_ble_table->m0cmd_buffer = p_Config->p_LldBleM0CmdBuffer;
|
||||
HW_IPCC_LLD_BLE_Init();
|
||||
return;
|
||||
}
|
||||
|
||||
void TL_LLD_BLE_SendCliCmd( void )
|
||||
{
|
||||
((TL_CmdPacket_t *)(TL_RefTable.p_lld_ble_table->cmdrsp_buffer))->cmdserial.type = TL_CLICMD_PKT_TYPE;
|
||||
HW_IPCC_LLD_BLE_SendCliCmd();
|
||||
return;
|
||||
}
|
||||
|
||||
void HW_IPCC_LLD_BLE_ReceiveCliRsp( void )
|
||||
{
|
||||
TL_LLD_BLE_ReceiveCliRsp( (TL_CmdPacket_t*)(TL_RefTable.p_lld_ble_table->cmdrsp_buffer) );
|
||||
return;
|
||||
}
|
||||
|
||||
void TL_LLD_BLE_SendCliRspAck( void )
|
||||
{
|
||||
HW_IPCC_LLD_BLE_SendCliRspAck();
|
||||
return;
|
||||
}
|
||||
|
||||
void HW_IPCC_LLD_BLE_ReceiveM0Cmd( void )
|
||||
{
|
||||
TL_LLD_BLE_ReceiveM0Cmd( (TL_CmdPacket_t*)(TL_RefTable.p_lld_ble_table->m0cmd_buffer) );
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
void TL_LLD_BLE_SendM0CmdAck( void )
|
||||
{
|
||||
HW_IPCC_LLD_BLE_SendM0CmdAck();
|
||||
return;
|
||||
}
|
||||
|
||||
__WEAK void TL_LLD_BLE_ReceiveCliRsp( TL_CmdPacket_t * Notbuffer ){};
|
||||
__WEAK void TL_LLD_BLE_ReceiveM0Cmd( TL_CmdPacket_t * Notbuffer ){};
|
||||
|
||||
/* Transparent Mode */
|
||||
void TL_LLD_BLE_SendCmd( void )
|
||||
{
|
||||
((TL_CmdPacket_t *)(TL_RefTable.p_lld_ble_table->cmdrsp_buffer))->cmdserial.type = TL_CLICMD_PKT_TYPE;
|
||||
HW_IPCC_LLD_BLE_SendCmd();
|
||||
return;
|
||||
}
|
||||
|
||||
void HW_IPCC_LLD_BLE_ReceiveRsp( void )
|
||||
{
|
||||
TL_LLD_BLE_ReceiveRsp( (TL_CmdPacket_t*)(TL_RefTable.p_lld_ble_table->cmdrsp_buffer) );
|
||||
return;
|
||||
}
|
||||
|
||||
void TL_LLD_BLE_SendRspAck( void )
|
||||
{
|
||||
HW_IPCC_LLD_BLE_SendRspAck();
|
||||
return;
|
||||
}
|
||||
#endif /* LLD_BLE_WB */
|
||||
|
||||
#ifdef MAC_802_15_4_WB
|
||||
/******************************************************************************
|
||||
* MAC 802.15.4
|
||||
|
@ -410,16 +498,16 @@ __WEAK void TL_MAC_802_15_4_NotReceived( TL_EvtPacket_t * Notbuffer ){};
|
|||
******************************************************************************/
|
||||
void TL_ZIGBEE_Init( TL_ZIGBEE_Config_t *p_Config )
|
||||
{
|
||||
MB_ZigbeeTable_t * p_zigbee_table;
|
||||
MB_ZigbeeTable_t * p_zigbee_table;
|
||||
|
||||
p_zigbee_table = TL_RefTable.p_zigbee_table;
|
||||
p_zigbee_table->appliCmdM4toM0_buffer = p_Config->p_ZigbeeOtCmdRspBuffer;
|
||||
p_zigbee_table->notifM0toM4_buffer = p_Config->p_ZigbeeNotAckBuffer;
|
||||
p_zigbee_table->requestM0toM4_buffer = p_Config->p_ZigbeeNotifRequestBuffer;
|
||||
p_zigbee_table = TL_RefTable.p_zigbee_table;
|
||||
p_zigbee_table->appliCmdM4toM0_buffer = p_Config->p_ZigbeeOtCmdRspBuffer;
|
||||
p_zigbee_table->notifM0toM4_buffer = p_Config->p_ZigbeeNotAckBuffer;
|
||||
p_zigbee_table->requestM0toM4_buffer = p_Config->p_ZigbeeNotifRequestBuffer;
|
||||
|
||||
HW_IPCC_ZIGBEE_Init();
|
||||
HW_IPCC_ZIGBEE_Init();
|
||||
|
||||
return;
|
||||
return;
|
||||
}
|
||||
|
||||
/* Zigbee M4 to M0 Request */
|
||||
|
@ -510,6 +598,8 @@ void TL_MM_EvtDone(TL_EvtPacket_t * phcievt)
|
|||
{
|
||||
LST_insert_tail(&LocalFreeBufQueue, (tListNode *)phcievt);
|
||||
|
||||
OutputMemReleaseTrace(phcievt);
|
||||
|
||||
HW_IPCC_MM_SendFreeBuf( SendFreeBuf );
|
||||
|
||||
return;
|
||||
|
@ -528,6 +618,38 @@ static void SendFreeBuf( void )
|
|||
return;
|
||||
}
|
||||
|
||||
static void OutputMemReleaseTrace(TL_EvtPacket_t * phcievt)
|
||||
{
|
||||
switch(phcievt->evtserial.evt.evtcode)
|
||||
{
|
||||
case TL_BLEEVT_CS_OPCODE:
|
||||
TL_MM_DBG__MSG("mm evt released: 0x%02X", phcievt->evtserial.evt.evtcode);
|
||||
TL_MM_DBG__MSG(" cmd opcode: 0x%04X", ((TL_CsEvt_t*)(phcievt->evtserial.evt.payload))->cmdcode);
|
||||
TL_MM_DBG__MSG(" buffer addr: 0x%08X", phcievt);
|
||||
break;
|
||||
|
||||
case TL_BLEEVT_CC_OPCODE:
|
||||
TL_MM_DBG__MSG("mm evt released: 0x%02X", phcievt->evtserial.evt.evtcode);
|
||||
TL_MM_DBG__MSG(" cmd opcode: 0x%04X", ((TL_CcEvt_t*)(phcievt->evtserial.evt.payload))->cmdcode);
|
||||
TL_MM_DBG__MSG(" buffer addr: 0x%08X", phcievt);
|
||||
break;
|
||||
|
||||
case TL_BLEEVT_VS_OPCODE:
|
||||
TL_MM_DBG__MSG("mm evt released: 0x%02X", phcievt->evtserial.evt.evtcode);
|
||||
TL_MM_DBG__MSG(" subevtcode: 0x%04X", ((TL_AsynchEvt_t*)(phcievt->evtserial.evt.payload))->subevtcode);
|
||||
TL_MM_DBG__MSG(" buffer addr: 0x%08X", phcievt);
|
||||
break;
|
||||
|
||||
default:
|
||||
TL_MM_DBG__MSG("mm evt released: 0x%02X", phcievt->evtserial.evt.evtcode);
|
||||
TL_MM_DBG__MSG(" buffer addr: 0x%08X", phcievt);
|
||||
break;
|
||||
}
|
||||
|
||||
TL_MM_DBG__MSG("\r\n");
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
* TRACES
|
||||
|
@ -558,7 +680,7 @@ void HW_IPCC_TRACES_EvtNot(void)
|
|||
|
||||
__WEAK void TL_TRACES_EvtReceived( TL_EvtPacket_t * hcievt )
|
||||
{
|
||||
(void)(hcievt);
|
||||
(void)(hcievt);
|
||||
}
|
||||
|
||||
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
|
||||
|
|
Loading…
Reference in New Issue