feat(ble): support pawr feature in ble sdk on ESP32-C5

This commit is contained in:
cjin
2025-08-14 20:28:57 +08:00
committed by BOT
parent 410d904845
commit 6c15fccddd
3 changed files with 88 additions and 14 deletions

View File

@@ -196,6 +196,13 @@ config BT_LE_POWER_CONTROL_ENABLED
help help
Set this option to enable the Power Control feature on controller Set this option to enable the Power Control feature on controller
config BT_LE_PERIODIC_ADV_WITH_RESPONSE_ENABLED
bool "Enable BLE periodic advertising with response"
depends on BT_LE_50_FEATURE_SUPPORT
default n
help
This enables BLE periodic advertising with response feature
menu "Memory Settings" menu "Memory Settings"
depends on !BT_NIMBLE_ENABLED depends on !BT_NIMBLE_ENABLED

View File

@@ -39,6 +39,25 @@ int dtm_stack_enable(void);
void dtm_stack_disable(void); void dtm_stack_disable(void);
#endif // CONFIG_BT_LE_DTM_ENABLED #endif // CONFIG_BT_LE_DTM_ENABLED
#if DEFAULT_BT_LE_PAWR_SUPPORTED || CONFIG_BT_LE_ERROR_SIM_ENABLED
int ble_single_env_init(void);
void ble_single_env_deinit(void);
int ble_single_init(void);
void ble_single_deinit(void);
#endif // DEFAULT_BT_LE_PAWR_SUPPORTED || CONFIG_BT_LE_ERROR_SIM_ENABLED
#if DEFAULT_BT_LE_PAWR_SUPPORTED
int pawrBcast_stack_initEnv(void);
void pawrBcast_stack_deinitEnv(void);
int pawrBcast_stack_enable(void);
void pawrBcast_stack_disable(void);
int pawrSync_stack_initEnv(void);
void pawrSync_stack_deinitEnv(void);
int pawrSync_stack_enable(void);
void pawrSync_stack_disable(void);
#endif // DEFAULT_BT_LE_PAWR_SUPPORTED
int conn_stack_initEnv(void); int conn_stack_initEnv(void);
void conn_stack_deinitEnv(void); void conn_stack_deinitEnv(void);
int conn_stack_enable(void); int conn_stack_enable(void);
@@ -128,6 +147,7 @@ int ble_stack_initEnv(void)
return rc; return rc;
} }
#endif // CONFIG_BT_LE_DTM_ENABLED #endif // CONFIG_BT_LE_DTM_ENABLED
#if DEFAULT_BT_LE_MAX_CONNECTIONS #if DEFAULT_BT_LE_MAX_CONNECTIONS
rc = conn_stack_initEnv(); rc = conn_stack_initEnv();
if (rc) { if (rc) {
@@ -140,11 +160,45 @@ int ble_stack_initEnv(void)
} }
#endif // CONFIG_BT_LE_ERROR_SIM_ENABLED #endif // CONFIG_BT_LE_ERROR_SIM_ENABLED
#endif // DEFAULT_BT_LE_MAX_CONNECTIONS #endif // DEFAULT_BT_LE_MAX_CONNECTIONS
#if DEFAULT_BT_LE_PAWR_SUPPORTED || CONFIG_BT_LE_ERROR_SIM_ENABLED
rc = ble_single_env_init();
if (rc) {
return rc;
}
rc = ble_single_init();
if (rc) {
return rc;
}
#endif // DEFAULT_BT_LE_PAWR_SUPPORTED || CONFIG_BT_LE_ERROR_SIM_ENABLED
#if DEFAULT_BT_LE_PAWR_SUPPORTED
rc = pawrBcast_stack_initEnv();
if (rc) {
return rc;
}
rc = pawrSync_stack_initEnv();
if (rc) {
return rc;
}
#endif // DEFAULT_BT_LE_PAWR_SUPPORTED
return 0; return 0;
} }
void ble_stack_deinitEnv(void) void ble_stack_deinitEnv(void)
{ {
#if DEFAULT_BT_LE_PAWR_SUPPORTED
pawrSync_stack_deinitEnv();
pawrBcast_stack_deinitEnv();
#endif // DEFAULT_BT_LE_PAWR_SUPPORTED
#if DEFAULT_BT_LE_PAWR_SUPPORTED || CONFIG_BT_LE_ERROR_SIM_ENABLED
ble_single_deinit();
ble_single_env_deinit();
#endif // DEFAULT_BT_LE_PAWR_SUPPORTED || CONFIG_BT_LE_ERROR_SIM_ENABLED
#if DEFAULT_BT_LE_MAX_CONNECTIONS #if DEFAULT_BT_LE_MAX_CONNECTIONS
#if CONFIG_BT_LE_ERROR_SIM_ENABLED #if CONFIG_BT_LE_ERROR_SIM_ENABLED
conn_errorSim_deinitEnv(); conn_errorSim_deinitEnv();
@@ -154,6 +208,7 @@ void ble_stack_deinitEnv(void)
#if CONFIG_BT_LE_DTM_ENABLED #if CONFIG_BT_LE_DTM_ENABLED
dtm_stack_deinitEnv(); dtm_stack_deinitEnv();
#endif // CONFIG_BT_LE_DTM_ENABLED #endif // CONFIG_BT_LE_DTM_ENABLED
sync_stack_deinitEnv(); sync_stack_deinitEnv();
extAdv_stack_deinitEnv(); extAdv_stack_deinitEnv();
adv_stack_deinitEnv(); adv_stack_deinitEnv();
@@ -203,6 +258,17 @@ int ble_stack_enable(void)
} }
#endif // CONFIG_BT_LE_ERROR_SIM_ENABLED #endif // CONFIG_BT_LE_ERROR_SIM_ENABLED
#endif // DEFAULT_BT_LE_MAX_CONNECTIONS #endif // DEFAULT_BT_LE_MAX_CONNECTIONS
#if DEFAULT_BT_LE_PAWR_SUPPORTED
rc = pawrBcast_stack_enable();
if (rc) {
return rc;
}
rc = pawrSync_stack_enable();
if (rc) {
return rc;
}
#endif // DEFAULT_BT_LE_PAWR_SUPPORTED
#if (CONFIG_BT_NIMBLE_ENABLED || CONFIG_BT_BLUEDROID_ENABLED) #if (CONFIG_BT_NIMBLE_ENABLED || CONFIG_BT_BLUEDROID_ENABLED)
ble_stack_enableVsCmds(true); ble_stack_enableVsCmds(true);
@@ -212,20 +278,7 @@ int ble_stack_enable(void)
#if CONFIG_BT_LE_RXBUF_OPT_ENABLED #if CONFIG_BT_LE_RXBUF_OPT_ENABLED
mmgmt_enableRxbufOptFeature(); mmgmt_enableRxbufOptFeature();
#endif // CONFIG_BT_LE_RXBUF_OPT_ENABLED #endif // CONFIG_BT_LE_RXBUF_OPT_ENABLED
rc = adv_stack_enable();
if (rc) {
return rc;
}
rc = extAdv_stack_enable();
if (rc) {
return rc;
}
rc = sync_stack_enable();
if (rc) {
return rc;
}
return 0; return 0;
} }
@@ -235,7 +288,10 @@ void ble_stack_disable(void)
ble_stack_enableVsEvents(false); ble_stack_enableVsEvents(false);
ble_stack_enableVsCmds(false); ble_stack_enableVsCmds(false);
#endif // (CONFIG_BT_NIMBLE_ENABLED || CONFIG_BT_BLUEDROID_ENABLED) #endif // (CONFIG_BT_NIMBLE_ENABLED || CONFIG_BT_BLUEDROID_ENABLED)
#if DEFAULT_BT_LE_PAWR_SUPPORTED
pawrSync_stack_disable();
pawrBcast_stack_disable();
#endif // DEFAULT_BT_LE_PAWR_SUPPORTED
#if DEFAULT_BT_LE_MAX_CONNECTIONS #if DEFAULT_BT_LE_MAX_CONNECTIONS
#if CONFIG_BT_LE_ERROR_SIM_ENABLED #if CONFIG_BT_LE_ERROR_SIM_ENABLED
conn_errorSim_disable(); conn_errorSim_disable();

View File

@@ -45,6 +45,11 @@ extern "C" {
#else #else
#define DEFAULT_BT_LE_50_FEATURE_SUPPORT (0) #define DEFAULT_BT_LE_50_FEATURE_SUPPORT (0)
#endif #endif
#if CONFIG_BT_NIMBLE_PERIODIC_ADV_WITH_RESPONSES
#define DEFAULT_BT_LE_PAWR_SUPPORTED (1)
#else
#define DEFAULT_BT_LE_PAWR_SUPPORTED (0)
#endif // CONFIG_BT_NIMBLE_PERIODIC_ADV_WITH_RESPONSES
#else #else
#if CONFIG_BT_LE_LL_CFG_FEAT_LE_CODED_PHY #if CONFIG_BT_LE_LL_CFG_FEAT_LE_CODED_PHY
@@ -71,6 +76,12 @@ extern "C" {
#define DEFAULT_BT_LE_MAX_CONNECTIONS (2) #define DEFAULT_BT_LE_MAX_CONNECTIONS (2)
#endif #endif
#if defined(CONFIG_BT_LE_PERIODIC_ADV_WITH_RESPONSE_ENABLED)
#define DEFAULT_BT_LE_PAWR_SUPPORTED (CONFIG_BT_LE_PERIODIC_ADV_WITH_RESPONSE_ENABLED)
#else
#define DEFAULT_BT_LE_PAWR_SUPPORTED (0)
#endif
#if defined(CONFIG_BT_LE_ACL_BUF_SIZE) #if defined(CONFIG_BT_LE_ACL_BUF_SIZE)
#define DEFAULT_BT_LE_ACL_BUF_SIZE (CONFIG_BT_LE_ACL_BUF_SIZE) #define DEFAULT_BT_LE_ACL_BUF_SIZE (CONFIG_BT_LE_ACL_BUF_SIZE)
#else #else