feat(bt): updated libble and libbtdm

1. Added strong function for btdm_compressed_assert.
          2. Fixed some berdr hci issues
          3. Updated ble config params structure
This commit is contained in:
ShenWeilong
2026-08-13 11:07:18 +08:00
parent e8d3044728
commit b9ba3ea3ad
20 changed files with 1045 additions and 703 deletions
+311 -303
View File
@@ -43,181 +43,183 @@ extern int r_btdm_broker_indexed_selfcheck(const void *broker, bool is_ram);
extern int r_sym_bt_8fMePSgKBxkeyUSGQQcU(void *param); extern int r_sym_bt_8fMePSgKBxkeyUSGQQcU(void *param);
#if UC_BT_CTRL_BLE_IS_ENABLE #if UC_BT_CTRL_BLE_IS_ENABLE
extern int sym_acceptList_E2sQw1uVsjxxiP0PJWNT(void *param); extern int brk_sym_acceptList_E2sQw1uVsjxxiP0PJWNT(void *param);
extern int sym_acceptList_vvIIdyHCcpNAdAdzZrPN(void *param); extern int brk_sym_acceptList_vvIIdyHCcpNAdAdzZrPN(void *param);
extern int sym_acceptList_yfAo03VLjZhjCR2fnGvX(void *param); extern int brk_sym_acceptList_yfAo03VLjZhjCR2fnGvX(void *param);
extern int sym_adv_S1K3QvkLgRcH2We9Z3KD(void *param); extern int brk_sym_adv_S1K3QvkLgRcH2We9Z3KD(void *param);
extern int sym_adv_k0eZcDthWb1sk0Kloemu(void *param); extern int brk_sym_adv_k0eZcDthWb1sk0Kloemu(void *param);
extern int sym_adv_xfHX4YH2Zb9de4JlBztj(void *param); extern int brk_sym_adv_xfHX4YH2Zb9de4JlBztj(void *param);
extern int sym_arr_CG7zWaZkh7QOTatTjs2v(void *param); extern int brk_sym_arr_CG7zWaZkh7QOTatTjs2v(void *param);
extern int sym_arr_SH7I2IviDsjnpqawpi0F(void *param); extern int brk_sym_arr_SH7I2IviDsjnpqawpi0F(void *param);
extern int sym_base_CdIdlqttqbZqCmaW9GAc(void *param); extern int brk_sym_base_CdIdlqttqbZqCmaW9GAc(void *param);
extern int sym_base_IdP4ncGWlpNArj2oW20N(void *param); extern int brk_sym_base_IdP4ncGWlpNArj2oW20N(void *param);
extern int sym_base_NVN4AbeIskmtcV2PX3N1(void *param); extern int brk_sym_base_NVN4AbeIskmtcV2PX3N1(void *param);
extern int sym_base_QIE6fqExGJrsGUIGYNSf(void *param); extern int brk_sym_base_QIE6fqExGJrsGUIGYNSf(void *param);
extern int sym_base_uevmRkB8BjrlJh1c3VnZ(void *param); extern int brk_sym_base_uevmRkB8BjrlJh1c3VnZ(void *param);
extern int sym_base_uuBMFaiuN71hyzVcBBth(void *param); extern int brk_sym_base_uuBMFaiuN71hyzVcBBth(void *param);
extern int sym_coexStack_hzrw4DdhxAw5xAlGFEwI(void *param); extern int brk_sym_coexStack_hzrw4DdhxAw5xAlGFEwI(void *param);
extern int sym_coexStack_sMPrrpveO5HOIb2qa5I8(void *param); extern int brk_sym_coexStack_sMPrrpveO5HOIb2qa5I8(void *param);
extern int sym_extAdv_65JKSxhAHiLFV63DSxJk(void *param); extern int brk_sym_extAdv_65JKSxhAHiLFV63DSxJk(void *param);
extern int sym_extAdv_cxB4HBdDRajzTQg8DqKC(void *param); extern int brk_sym_extAdv_cxB4HBdDRajzTQg8DqKC(void *param);
extern int sym_extAdv_j9EFs8yTWikhycyNL2tu(void *param); extern int brk_sym_extAdv_j9EFs8yTWikhycyNL2tu(void *param);
extern int sym_memMgmt_7tLw3T7RgI6l7DQc4dMI(void *param); extern int brk_sym_memMgmt_7tLw3T7RgI6l7DQc4dMI(void *param);
extern int sym_memMgmt_PpI7zFiJWyV56U0OIURt(void *param); extern int brk_sym_memMgmt_PpI7zFiJWyV56U0OIURt(void *param);
extern int sym_rand_6102wQhjz4grvtu5s8T3(void *param); extern int brk_sym_rand_6102wQhjz4grvtu5s8T3(void *param);
extern int sym_rand_TnYdBCetsq1sndnhcROz(void *param); extern int brk_sym_rand_TnYdBCetsq1sndnhcROz(void *param);
extern int sym_resolv_GWz7Tb1ymxsyLQ1208Jj(void *param); extern int brk_sym_resolv_GWz7Tb1ymxsyLQ1208Jj(void *param);
extern int sym_resolv_YX00BNf3Z2oJaizN1uK8(void *param); extern int brk_sym_resolv_YX00BNf3Z2oJaizN1uK8(void *param);
extern int sym_resolv_hQFDtxZqj5AP1IMR8s59(void *param); extern int brk_sym_resolv_hQFDtxZqj5AP1IMR8s59(void *param);
extern int sym_scan_0gIKmjMRFT37raN6hnDo(void *param); extern int brk_sym_scan_0gIKmjMRFT37raN6hnDo(void *param);
extern int sym_scan_1G8QO0lWyTS0nKOqvZOE(void *param); extern int brk_sym_scan_1G8QO0lWyTS0nKOqvZOE(void *param);
extern int sym_scan_Tfvee56pMZTiTxWnEWgP(void *param); extern int brk_sym_scan_Tfvee56pMZTiTxWnEWgP(void *param);
extern int sym_scan_b8ogEC3hTjGmqL5oRuyw(void *param); extern int brk_sym_scan_b8ogEC3hTjGmqL5oRuyw(void *param);
extern int sym_scan_cgn6c03k4ZQqi2dJOtfm(void *param); extern int brk_sym_scan_cgn6c03k4ZQqi2dJOtfm(void *param);
extern int sym_scan_fd4yzdFac8vdFTlQ4BPA(void *param); extern int brk_sym_scan_fd4yzdFac8vdFTlQ4BPA(void *param);
extern int sym_scan_l1avG2cwTzJAlle4KLdU(void *param); extern int brk_sym_scan_l1avG2cwTzJAlle4KLdU(void *param);
extern int sym_scan_tdX6OLWyRKYxelkB8vZ1(void *param); extern int brk_sym_scan_tdX6OLWyRKYxelkB8vZ1(void *param);
extern int sym_scan_zmw2OczvfXFB4aIFaWkc(void *param); extern int brk_sym_scan_zmw2OczvfXFB4aIFaWkc(void *param);
extern int sym_sched_PNMeumLUZPcz8o4UrTLi(void *param); extern int brk_sym_sched_PNMeumLUZPcz8o4UrTLi(void *param);
extern int sym_sync_NOAs4m6LAUpamsUYHfqm(void *param); extern int brk_sym_sched_eISDBv5SLWxSduVnTwzD(void *param);
extern int sym_sync_dVvFbZ7ZwsleTM2nkzdV(void *param); extern int brk_sym_sync_NOAs4m6LAUpamsUYHfqm(void *param);
extern int sym_sync_uoa5Xd4XcSSCUjyNsVGo(void *param); extern int brk_sym_sync_dVvFbZ7ZwsleTM2nkzdV(void *param);
extern int brk_sym_sync_uoa5Xd4XcSSCUjyNsVGo(void *param);
#if UC_BLE_CTRL_CONN_ENABLED #if UC_BLE_CTRL_CONN_ENABLED
extern int sym_conn_Sw7sI0dtf78paJdn9Uhg(void *param); extern int brk_sym_conn_Sw7sI0dtf78paJdn9Uhg(void *param);
extern int sym_conn_eZ0plXo8e56VyJXdcbNn(void *param); extern int brk_sym_conn_eZ0plXo8e56VyJXdcbNn(void *param);
extern int sym_conn_k5hEt7krj8McRSctLS7X(void *param); extern int brk_sym_conn_k5hEt7krj8McRSctLS7X(void *param);
extern int sym_conn_nW2gyrsrYX980SM1JXUT(void *param); extern int brk_sym_conn_nW2gyrsrYX980SM1JXUT(void *param);
extern int sym_conn_sIcAPw7j0toiOGWivJ0e(void *param); extern int brk_sym_conn_sIcAPw7j0toiOGWivJ0e(void *param);
#endif /* UC_BLE_CTRL_CONN_ENABLED */ #endif /* UC_BLE_CTRL_CONN_ENABLED */
#if UC_BLE_CTRL_CONN_ENABLED && CONFIG_BT_LE_ERROR_SIM_ENABLED #if UC_BLE_CTRL_CONN_ENABLED && CONFIG_BT_LE_ERROR_SIM_ENABLED
extern int sym_connSim_2RFEzu4Evi68Nnt4YowZ(void *param); extern int brk_sym_connSim_2RFEzu4Evi68Nnt4YowZ(void *param);
extern int sym_connSim_3guOkwBVGmSgwrEIVUvL(void *param); extern int brk_sym_connSim_3guOkwBVGmSgwrEIVUvL(void *param);
extern int sym_connSim_EIv22SNth3fM1SPgJ9hO(void *param); extern int brk_sym_connSim_EIv22SNth3fM1SPgJ9hO(void *param);
extern int sym_connSim_SoaIlItcCgS4km7f1141(void *param); extern int brk_sym_connSim_SoaIlItcCgS4km7f1141(void *param);
extern int sym_connSim_dytLpHTAgMtQWf4K3pGc(void *param); extern int brk_sym_connSim_dytLpHTAgMtQWf4K3pGc(void *param);
extern int sym_connSim_rsrSBeH3W8LE1yGVrtBc(void *param); extern int brk_sym_connSim_rsrSBeH3W8LE1yGVrtBc(void *param);
#endif /* UC_BLE_CTRL_CONN_ENABLED && CONFIG_BT_LE_ERROR_SIM_ENABLED */ #endif /* UC_BLE_CTRL_CONN_ENABLED && CONFIG_BT_LE_ERROR_SIM_ENABLED */
#if UC_BLE_CTRL_PAWR_BCAST_SUPPORTED #if UC_BLE_CTRL_PAWR_BCAST_SUPPORTED
extern int sym_pawrBcast_02YCihGkfXcpLt0zh1uM(void *param); extern int brk_sym_pawrBcast_02YCihGkfXcpLt0zh1uM(void *param);
extern int sym_pawrBcast_0PNup0d8oI1288mfULNW(void *param); extern int brk_sym_pawrBcast_0PNup0d8oI1288mfULNW(void *param);
extern int sym_pawrBcast_0Wq1DOQE0eOWEGV2grxM(void *param); extern int brk_sym_pawrBcast_0Wq1DOQE0eOWEGV2grxM(void *param);
extern int sym_pawrBcast_1y9l4P0a3qWUSydU3cDY(void *param); extern int brk_sym_pawrBcast_1y9l4P0a3qWUSydU3cDY(void *param);
extern int sym_pawrBcast_7jK56jlcfafMtoQgLg6t(void *param); extern int brk_sym_pawrBcast_7jK56jlcfafMtoQgLg6t(void *param);
extern int sym_pawrBcast_7qGF1F9weQ363Ml7Gj0n(void *param); extern int brk_sym_pawrBcast_7qGF1F9weQ363Ml7Gj0n(void *param);
extern int sym_pawrBcast_JHmbFJCpV155hIYyDVQ8(void *param); extern int brk_sym_pawrBcast_JHmbFJCpV155hIYyDVQ8(void *param);
extern int sym_pawrBcast_JPGtn7AltqyvIRT8iPtF(void *param); extern int brk_sym_pawrBcast_JPGtn7AltqyvIRT8iPtF(void *param);
extern int sym_pawrBcast_Jrj3qAmZkOoWxL1jFdmP(void *param); extern int brk_sym_pawrBcast_Jrj3qAmZkOoWxL1jFdmP(void *param);
extern int sym_pawrBcast_KBuKVEBVXwxouWjaJUva(void *param); extern int brk_sym_pawrBcast_KBuKVEBVXwxouWjaJUva(void *param);
extern int sym_pawrBcast_OEzQrCBnW7rhUIi6H6gM(void *param); extern int brk_sym_pawrBcast_OEzQrCBnW7rhUIi6H6gM(void *param);
extern int sym_pawrBcast_SB1LBCzybPoDd0XYyLM8(void *param); extern int brk_sym_pawrBcast_SB1LBCzybPoDd0XYyLM8(void *param);
extern int sym_pawrBcast_WNd7Y6n56cZrTlhBjFRU(void *param); extern int brk_sym_pawrBcast_WNd7Y6n56cZrTlhBjFRU(void *param);
extern int sym_pawrBcast_eBH7HrPT8y2Fj9382el3(void *param); extern int brk_sym_pawrBcast_eBH7HrPT8y2Fj9382el3(void *param);
extern int sym_pawrBcast_g6t1IjxRbcv5GUq1uXIA(void *param); extern int brk_sym_pawrBcast_g6t1IjxRbcv5GUq1uXIA(void *param);
extern int sym_pawrBcast_lk2Wpy4u04ukjtC7Ijcb(void *param); extern int brk_sym_pawrBcast_lk2Wpy4u04ukjtC7Ijcb(void *param);
extern int sym_pawrBcast_on08yxBjym4I0iV3tlPo(void *param); extern int brk_sym_pawrBcast_on08yxBjym4I0iV3tlPo(void *param);
extern int sym_pawrBcast_sSbQFGKMJszbA895ddLO(void *param); extern int brk_sym_pawrBcast_sSbQFGKMJszbA895ddLO(void *param);
extern int sym_pawrBcast_w9Kcjl02BFd1e11Ic3A0(void *param); extern int brk_sym_pawrBcast_w9Kcjl02BFd1e11Ic3A0(void *param);
#endif /* UC_BLE_CTRL_PAWR_BCAST_SUPPORTED */ #endif /* UC_BLE_CTRL_PAWR_BCAST_SUPPORTED */
#if UC_BLE_CTRL_PAWR_SYNC_SUPPORTED #if UC_BLE_CTRL_PAWR_SYNC_SUPPORTED
extern int sym_pawrSync_1cW8RtQRnVveTqFg9OSR(void *param); extern int brk_sym_pawrSync_1cW8RtQRnVveTqFg9OSR(void *param);
extern int sym_pawrSync_2gh2xSEYHokuhQ7UohkM(void *param); extern int brk_sym_pawrSync_2gh2xSEYHokuhQ7UohkM(void *param);
extern int sym_pawrSync_7bchpvHsUM8DXHyaXC7f(void *param); extern int brk_sym_pawrSync_7bchpvHsUM8DXHyaXC7f(void *param);
extern int sym_pawrSync_9XvRcZs9CUOgHNbMhe5G(void *param); extern int brk_sym_pawrSync_9XvRcZs9CUOgHNbMhe5G(void *param);
extern int sym_pawrSync_LO7YyFM93srewqVpETY2(void *param); extern int brk_sym_pawrSync_LO7YyFM93srewqVpETY2(void *param);
extern int sym_pawrSync_Qifv1iec7w57n2pBwucX(void *param); extern int brk_sym_pawrSync_Qifv1iec7w57n2pBwucX(void *param);
extern int sym_pawrSync_bbizSGqM6wZUOT0fQF1M(void *param); extern int brk_sym_pawrSync_bbizSGqM6wZUOT0fQF1M(void *param);
extern int sym_pawrSync_fn4PoAB0qFmYpbwqTO2H(void *param); extern int brk_sym_pawrSync_fn4PoAB0qFmYpbwqTO2H(void *param);
extern int sym_pawrSync_k4txvaSWHJBXXqtE62MG(void *param); extern int brk_sym_pawrSync_k4txvaSWHJBXXqtE62MG(void *param);
extern int sym_pawrSync_oBwpWArFlWxUJNCnHvsJ(void *param); extern int brk_sym_pawrSync_oBwpWArFlWxUJNCnHvsJ(void *param);
extern int sym_pawrSync_pbTRKlIHoevVfNidtKZb(void *param); extern int brk_sym_pawrSync_pbTRKlIHoevVfNidtKZb(void *param);
extern int sym_pawrSync_vAN2YoeCsSKafv2NdPVC(void *param); extern int brk_sym_pawrSync_vAN2YoeCsSKafv2NdPVC(void *param);
extern int sym_pawrSync_vBce2UGY5s0PhM3gRF8p(void *param); extern int brk_sym_pawrSync_vBce2UGY5s0PhM3gRF8p(void *param);
extern int sym_pawrSync_zuG0pqdRWK2zt5S09fTS(void *param); extern int brk_sym_pawrSync_zuG0pqdRWK2zt5S09fTS(void *param);
#endif /* UC_BLE_CTRL_PAWR_SYNC_SUPPORTED */ #endif /* UC_BLE_CTRL_PAWR_SYNC_SUPPORTED */
#if UC_BT_CTRL_LE_BIS_BCAST_ENABLED #if UC_BT_CTRL_LE_BIS_BCAST_ENABLED
extern int sym_bisBcast_2a3kgxHeabxbnBIsRh4s(void *param); extern int brk_sym_bisBcast_2a3kgxHeabxbnBIsRh4s(void *param);
extern int sym_bisBcast_2dWM4hoGuoEwy8loUGlI(void *param); extern int brk_sym_bisBcast_2dWM4hoGuoEwy8loUGlI(void *param);
extern int sym_bisBcast_2uiisGIdoGa6SNUZCE2m(void *param); extern int brk_sym_bisBcast_2uiisGIdoGa6SNUZCE2m(void *param);
extern int sym_bisBcast_BcOOZfvM58VUQK6uC2ew(void *param); extern int brk_sym_bisBcast_BcOOZfvM58VUQK6uC2ew(void *param);
extern int sym_bisBcast_EtJ8xQ5EIWS6IjqpsD1U(void *param); extern int brk_sym_bisBcast_EtJ8xQ5EIWS6IjqpsD1U(void *param);
extern int sym_bisBcast_Pe7M3vC0UOSbZWC7Bm8D(void *param); extern int brk_sym_bisBcast_Pe7M3vC0UOSbZWC7Bm8D(void *param);
extern int sym_bisBcast_vATQ5EU18M2xnmNZ84fY(void *param); extern int brk_sym_bisBcast_vATQ5EU18M2xnmNZ84fY(void *param);
extern int sym_bisBcast_vKPkmtQzLc0ZU4R3Mpa1(void *param); extern int brk_sym_bisBcast_vKPkmtQzLc0ZU4R3Mpa1(void *param);
extern int sym_bisBcast_zlcnIBGOIfWlPC3WJ66f(void *param); extern int brk_sym_bisBcast_zlcnIBGOIfWlPC3WJ66f(void *param);
#endif /* UC_BT_CTRL_LE_BIS_BCAST_ENABLED */ #endif /* UC_BT_CTRL_LE_BIS_BCAST_ENABLED */
#if UC_BT_CTRL_LE_BIS_SYNC_ENABLED #if UC_BT_CTRL_LE_BIS_SYNC_ENABLED
extern int sym_bisSync_0xkTwhqVWK4bwJa6dDH6(void *param); extern int brk_sym_bisSync_0xkTwhqVWK4bwJa6dDH6(void *param);
extern int sym_bisSync_3FCcFQdSowAGd7aAejeg(void *param); extern int brk_sym_bisSync_3FCcFQdSowAGd7aAejeg(void *param);
extern int sym_bisSync_BO46u3KvbiXYsPrQplUT(void *param); extern int brk_sym_bisSync_BO46u3KvbiXYsPrQplUT(void *param);
extern int sym_bisSync_DuQGVcBNN6l6ggZp4Y8J(void *param); extern int brk_sym_bisSync_DuQGVcBNN6l6ggZp4Y8J(void *param);
extern int sym_bisSync_EaKbiRZI30mvH3KWkMY5(void *param); extern int brk_sym_bisSync_EaKbiRZI30mvH3KWkMY5(void *param);
extern int sym_bisSync_cB4uyzKmrYjduUbWqXdb(void *param); extern int brk_sym_bisSync_cB4uyzKmrYjduUbWqXdb(void *param);
extern int sym_bisSync_qLbiM85U90F0BvzUDhgt(void *param); extern int brk_sym_bisSync_qLbiM85U90F0BvzUDhgt(void *param);
#endif /* UC_BT_CTRL_LE_BIS_SYNC_ENABLED */ #endif /* UC_BT_CTRL_LE_BIS_SYNC_ENABLED */
#if UC_BT_CTRL_LE_CIS_CENT_ENABLED #if UC_BT_CTRL_LE_CIS_CENT_ENABLED
extern int sym_cisCent_9P0KC1xZQpumJC2psVXO(void *param); extern int brk_sym_cisCent_9P0KC1xZQpumJC2psVXO(void *param);
extern int sym_cisCent_GSToGcnDAoUIQsFaBPr7(void *param); extern int brk_sym_cisCent_FX6J62IzYLkcQNdl7BqH(void *param);
extern int sym_cisCent_JUzUk54A9UNHtsUAHT8F(void *param); extern int brk_sym_cisCent_GSToGcnDAoUIQsFaBPr7(void *param);
extern int sym_cisCent_f2xo5SuAzLb4iRlhLPhf(void *param); extern int brk_sym_cisCent_JUzUk54A9UNHtsUAHT8F(void *param);
extern int sym_cisCent_jfaA90JGHwEKv1YkKIUO(void *param); extern int brk_sym_cisCent_jfaA90JGHwEKv1YkKIUO(void *param);
extern int sym_cisCent_wt1P0oioDDyNz026HxsK(void *param); extern int brk_sym_cisCent_wt1P0oioDDyNz026HxsK(void *param);
extern int brk_sym_cisCent_y03W49d1NFScSUUO32Yn(void *param);
#endif /* UC_BT_CTRL_LE_CIS_CENT_ENABLED */ #endif /* UC_BT_CTRL_LE_CIS_CENT_ENABLED */
#if UC_BT_CTRL_LE_CIS_ENABLED #if UC_BT_CTRL_LE_CIS_ENABLED
extern int sym_cis_3DmpJ8V6gGsnSNopbei0(void *param); extern int brk_sym_cis_3DmpJ8V6gGsnSNopbei0(void *param);
extern int sym_cis_5PzTPmH8LVt7wMSC7YnP(void *param); extern int brk_sym_cis_5PzTPmH8LVt7wMSC7YnP(void *param);
extern int sym_cis_Bmj5ai8K8ZKFKqWA8X8B(void *param); extern int brk_sym_cis_Bmj5ai8K8ZKFKqWA8X8B(void *param);
extern int sym_cis_Guzdzme9CFLxrbjG6HEJ(void *param); extern int brk_sym_cis_Guzdzme9CFLxrbjG6HEJ(void *param);
extern int sym_cis_QxmCCIxcxCfrWCKZmT3X(void *param); extern int brk_sym_cis_QxmCCIxcxCfrWCKZmT3X(void *param);
extern int sym_cis_UBu7crU2pIczpNc5cEcP(void *param); extern int brk_sym_cis_UBu7crU2pIczpNc5cEcP(void *param);
extern int sym_cis_WICEvILg2pK6JZvhry3j(void *param); extern int brk_sym_cis_WICEvILg2pK6JZvhry3j(void *param);
extern int sym_cis_coXGBkWhDUZWHDFo80gN(void *param); extern int brk_sym_cis_eeNELMi6IB5X3UF8MMvQ(void *param);
extern int sym_cis_eeNELMi6IB5X3UF8MMvQ(void *param); extern int brk_sym_cis_f2SkEM3LCeOCgMzDRq24(void *param);
extern int sym_cis_f2SkEM3LCeOCgMzDRq24(void *param); extern int brk_sym_cis_i4bfG8waTBMteoJaWD40(void *param);
extern int sym_cis_i4bfG8waTBMteoJaWD40(void *param); extern int brk_sym_cis_j0GHq32oPR9AN7YHYxEI(void *param);
extern int sym_cis_j0GHq32oPR9AN7YHYxEI(void *param); extern int brk_sym_cis_mcjvVuw8ttAldZnobGxJ(void *param);
extern int sym_cis_mcjvVuw8ttAldZnobGxJ(void *param); extern int brk_sym_cis_sHcp2gf28ZC99shUpnis(void *param);
extern int sym_cis_vY92iDVk3ph4SrNh5ccy(void *param); extern int brk_sym_cis_vY92iDVk3ph4SrNh5ccy(void *param);
extern int sym_cis_wQtv7EbxMlyUdVE0TQ9T(void *param); extern int brk_sym_cis_wQtv7EbxMlyUdVE0TQ9T(void *param);
extern int sym_cis_zGkqwv9urnJ8DbX0JZAr(void *param); extern int brk_sym_cis_zGkqwv9urnJ8DbX0JZAr(void *param);
#endif /* UC_BT_CTRL_LE_CIS_ENABLED */ #endif /* UC_BT_CTRL_LE_CIS_ENABLED */
#if UC_BT_CTRL_LE_CIS_PRPH_ENABLED #if UC_BT_CTRL_LE_CIS_PRPH_ENABLED
extern int sym_cisPrph_6ORekVL63tenTy0sCT2O(void *param); extern int brk_sym_cisPrph_6ORekVL63tenTy0sCT2O(void *param);
extern int sym_cisPrph_Dw8FBGfBWm2LptzYq46z(void *param); extern int brk_sym_cisPrph_Kb3o0Y7oUCdHJ1SXcoqj(void *param);
extern int sym_cisPrph_Kb3o0Y7oUCdHJ1SXcoqj(void *param); extern int brk_sym_cisPrph_bU9vRMdklv6bdZ52yCI5(void *param);
extern int sym_cisPrph_xR7NheKHstTWkDAuZROL(void *param); extern int brk_sym_cisPrph_xR7NheKHstTWkDAuZROL(void *param);
extern int sym_cisPrph_zr8KQ3aEASRV2ZptTSnX(void *param); extern int brk_sym_cisPrph_zr8KQ3aEASRV2ZptTSnX(void *param);
#endif /* UC_BT_CTRL_LE_CIS_PRPH_ENABLED */ #endif /* UC_BT_CTRL_LE_CIS_PRPH_ENABLED */
#if UC_BT_CTRL_LE_CTE_CAL_ENABLED #if UC_BT_CTRL_LE_CTE_CAL_ENABLED
extern int sym_cteCal_Lxc6TR3r9tNnhSe66bmE(void *param); extern int brk_sym_cteCal_Lxc6TR3r9tNnhSe66bmE(void *param);
extern int sym_cteCal_NKbWd6AypEyH2B338dAx(void *param); extern int brk_sym_cteCal_NKbWd6AypEyH2B338dAx(void *param);
extern int sym_cteCal_ixMlNDshScz4WVTbiOKl(void *param); extern int brk_sym_cteCal_ixMlNDshScz4WVTbiOKl(void *param);
extern int sym_cteCal_j700khui6oomGLu22Rgb(void *param); extern int brk_sym_cteCal_j700khui6oomGLu22Rgb(void *param);
extern int sym_cteCal_uWSKv9wSYw0nIY0GhuZF(void *param); extern int brk_sym_cteCal_uWSKv9wSYw0nIY0GhuZF(void *param);
#endif /* UC_BT_CTRL_LE_CTE_CAL_ENABLED */ #endif /* UC_BT_CTRL_LE_CTE_CAL_ENABLED */
#if UC_BT_CTRL_LE_CTE_ENABLED #if UC_BT_CTRL_LE_CTE_ENABLED
extern int sym_cte_NjXx2EHiiDoBXhq2trhx(void *param); extern int brk_sym_cte_NjXx2EHiiDoBXhq2trhx(void *param);
extern int sym_cte_P7A06WogxnY1JlnvQaGe(void *param); extern int brk_sym_cte_P7A06WogxnY1JlnvQaGe(void *param);
extern int sym_cte_aMtk23FR89BNAXNthzRu(void *param); extern int brk_sym_cte_aMtk23FR89BNAXNthzRu(void *param);
extern int sym_cte_onkmOjIkv3QCPJVJQuUB(void *param); extern int brk_sym_cte_onkmOjIkv3QCPJVJQuUB(void *param);
extern int sym_cte_vx3COozMkhCXFbq2ZjHK(void *param); extern int brk_sym_cte_vx3COozMkhCXFbq2ZjHK(void *param);
#endif /* UC_BT_CTRL_LE_CTE_ENABLED */ #endif /* UC_BT_CTRL_LE_CTE_ENABLED */
#if UC_BT_CTRL_LE_DTM_ENABLED #if UC_BT_CTRL_LE_DTM_ENABLED
extern int sym_dtm_8YKzWpU1Xe3NGGMtUeY6(void *param); extern int brk_sym_dtm_8YKzWpU1Xe3NGGMtUeY6(void *param);
extern int sym_dtm_Er3Vd8hhSABNIkl9x3At(void *param); extern int brk_sym_dtm_Er3Vd8hhSABNIkl9x3At(void *param);
extern int sym_dtm_wW4wnzkRa1kpb5NfwZVi(void *param); extern int brk_sym_dtm_wW4wnzkRa1kpb5NfwZVi(void *param);
#endif /* UC_BT_CTRL_LE_DTM_ENABLED */ #endif /* UC_BT_CTRL_LE_DTM_ENABLED */
#if UC_BT_CTRL_LE_ISO_ENABLED #if UC_BT_CTRL_LE_ISO_ENABLED
extern int sym_coexIsoHal_RVw8jrRQybFIlwvrONo9(void *param); extern int brk_sym_coexIsoHal_RVw8jrRQybFIlwvrONo9(void *param);
extern int sym_iso_6SFIpEwXw1SsCdgfyN88(void *param); extern int brk_sym_iso_6SFIpEwXw1SsCdgfyN88(void *param);
extern int sym_iso_8HHndXTSYyYcW1EhDzAN(void *param); extern int brk_sym_iso_8HHndXTSYyYcW1EhDzAN(void *param);
extern int sym_iso_WJJo4fn6Hkvt9xXAvziZ(void *param); extern int brk_sym_iso_WJJo4fn6Hkvt9xXAvziZ(void *param);
extern int sym_iso_Ywq26gNcDI3MQQVQbDEF(void *param); extern int brk_sym_iso_Ywq26gNcDI3MQQVQbDEF(void *param);
extern int sym_iso_gk1uwrtqhb5WsUZoPUJq(void *param); extern int brk_sym_iso_gk1uwrtqhb5WsUZoPUJq(void *param);
extern int sym_iso_qYKZbEBVIsH27HGf5VCS(void *param); extern int brk_sym_iso_qYKZbEBVIsH27HGf5VCS(void *param);
extern int sym_iso_xew5NrC4aBwCavwqySPp(void *param); extern int brk_sym_iso_xew5NrC4aBwCavwqySPp(void *param);
#endif /* UC_BT_CTRL_LE_ISO_ENABLED */ #endif /* UC_BT_CTRL_LE_ISO_ENABLED */
#if UC_BT_CTRL_LE_VS_CMD_EVT_ENABLED && CONFIG_BT_CTRL_SLEEP_ENABLE #if UC_BT_CTRL_LE_VS_CMD_EVT_ENABLED && CONFIG_BT_CTRL_SLEEP_ENABLE
extern int sym_sleep_Ayr8PrlSNd7F6hhsmt13(void *param); extern int brk_sym_sleep_Ayr8PrlSNd7F6hhsmt13(void *param);
#endif /* UC_BT_CTRL_LE_VS_CMD_EVT_ENABLED && CONFIG_BT_CTRL_SLEEP_ENABLE */ #endif /* UC_BT_CTRL_LE_VS_CMD_EVT_ENABLED && CONFIG_BT_CTRL_SLEEP_ENABLE */
#endif /* UC_BT_CTRL_BLE_IS_ENABLE */ #endif /* UC_BT_CTRL_BLE_IS_ENABLE */
@@ -230,43 +232,43 @@ extern int sym_sleep_Ayr8PrlSNd7F6hhsmt13(void *param);
const void * const _adv_linear_broker_flash[] = BTDM_BROKER_NODE_DEF_FLASH( const void * const _adv_linear_broker_flash[] = BTDM_BROKER_NODE_DEF_FLASH(
#if UC_BLE_CTRL_PAWR_BCAST_SUPPORTED #if UC_BLE_CTRL_PAWR_BCAST_SUPPORTED
[1] = BTDM_BROKER_ENTRY_DEF_FLASH( [1] = BTDM_BROKER_ENTRY_DEF_FLASH(
sym_pawrBcast_0PNup0d8oI1288mfULNW, brk_sym_pawrBcast_0PNup0d8oI1288mfULNW,
), ),
[2] = BTDM_BROKER_ENTRY_DEF_FLASH( [2] = BTDM_BROKER_ENTRY_DEF_FLASH(
sym_pawrBcast_02YCihGkfXcpLt0zh1uM, brk_sym_pawrBcast_02YCihGkfXcpLt0zh1uM,
), ),
[3] = BTDM_BROKER_ENTRY_DEF_FLASH( [3] = BTDM_BROKER_ENTRY_DEF_FLASH(
sym_pawrBcast_g6t1IjxRbcv5GUq1uXIA, brk_sym_pawrBcast_g6t1IjxRbcv5GUq1uXIA,
), ),
[4] = BTDM_BROKER_ENTRY_DEF_FLASH( [4] = BTDM_BROKER_ENTRY_DEF_FLASH(
sym_pawrBcast_7jK56jlcfafMtoQgLg6t, brk_sym_pawrBcast_7jK56jlcfafMtoQgLg6t,
), ),
[5] = BTDM_BROKER_ENTRY_DEF_FLASH( [5] = BTDM_BROKER_ENTRY_DEF_FLASH(
sym_pawrBcast_w9Kcjl02BFd1e11Ic3A0, brk_sym_pawrBcast_w9Kcjl02BFd1e11Ic3A0,
), ),
[6] = BTDM_BROKER_ENTRY_DEF_FLASH( [6] = BTDM_BROKER_ENTRY_DEF_FLASH(
sym_pawrBcast_0Wq1DOQE0eOWEGV2grxM, brk_sym_pawrBcast_0Wq1DOQE0eOWEGV2grxM,
), ),
[7] = BTDM_BROKER_ENTRY_DEF_FLASH( [7] = BTDM_BROKER_ENTRY_DEF_FLASH(
sym_pawrBcast_JPGtn7AltqyvIRT8iPtF, brk_sym_pawrBcast_JPGtn7AltqyvIRT8iPtF,
), ),
[8] = BTDM_BROKER_ENTRY_DEF_FLASH( [8] = BTDM_BROKER_ENTRY_DEF_FLASH(
sym_pawrBcast_1y9l4P0a3qWUSydU3cDY, brk_sym_pawrBcast_1y9l4P0a3qWUSydU3cDY,
), ),
[9] = BTDM_BROKER_ENTRY_DEF_FLASH( [9] = BTDM_BROKER_ENTRY_DEF_FLASH(
sym_pawrBcast_lk2Wpy4u04ukjtC7Ijcb, brk_sym_pawrBcast_lk2Wpy4u04ukjtC7Ijcb,
), ),
[10] = BTDM_BROKER_ENTRY_DEF_FLASH( [10] = BTDM_BROKER_ENTRY_DEF_FLASH(
sym_pawrBcast_OEzQrCBnW7rhUIi6H6gM, brk_sym_pawrBcast_OEzQrCBnW7rhUIi6H6gM,
), ),
[11] = BTDM_BROKER_ENTRY_DEF_FLASH( [11] = BTDM_BROKER_ENTRY_DEF_FLASH(
sym_pawrBcast_KBuKVEBVXwxouWjaJUva, brk_sym_pawrBcast_KBuKVEBVXwxouWjaJUva,
), ),
[12] = BTDM_BROKER_ENTRY_DEF_FLASH( [12] = BTDM_BROKER_ENTRY_DEF_FLASH(
sym_pawrBcast_sSbQFGKMJszbA895ddLO, brk_sym_pawrBcast_sSbQFGKMJszbA895ddLO,
), ),
[13] = BTDM_BROKER_ENTRY_DEF_FLASH( [13] = BTDM_BROKER_ENTRY_DEF_FLASH(
sym_pawrBcast_WNd7Y6n56cZrTlhBjFRU, brk_sym_pawrBcast_WNd7Y6n56cZrTlhBjFRU,
), ),
#endif /* UC_BLE_CTRL_PAWR_BCAST_SUPPORTED */ #endif /* UC_BLE_CTRL_PAWR_BCAST_SUPPORTED */
); );
@@ -275,99 +277,99 @@ const void * const _adv_linear_broker_flash[] = BTDM_BROKER_NODE_DEF_FLASH(
#if UC_BT_CTRL_BLE_IS_ENABLE #if UC_BT_CTRL_BLE_IS_ENABLE
const void * const _base_linear_broker_flash[] = BTDM_BROKER_NODE_DEF_FLASH( const void * const _base_linear_broker_flash[] = BTDM_BROKER_NODE_DEF_FLASH(
[1] = BTDM_BROKER_ENTRY_DEF_FLASH( [1] = BTDM_BROKER_ENTRY_DEF_FLASH(
sym_acceptList_E2sQw1uVsjxxiP0PJWNT, brk_sym_acceptList_E2sQw1uVsjxxiP0PJWNT,
sym_adv_k0eZcDthWb1sk0Kloemu, brk_sym_adv_k0eZcDthWb1sk0Kloemu,
#if UC_BT_CTRL_LE_BIS_BCAST_ENABLED #if UC_BT_CTRL_LE_BIS_BCAST_ENABLED
sym_bisBcast_Pe7M3vC0UOSbZWC7Bm8D, brk_sym_bisBcast_Pe7M3vC0UOSbZWC7Bm8D,
#endif /* UC_BT_CTRL_LE_BIS_BCAST_ENABLED */ #endif /* UC_BT_CTRL_LE_BIS_BCAST_ENABLED */
#if UC_BT_CTRL_LE_BIS_SYNC_ENABLED #if UC_BT_CTRL_LE_BIS_SYNC_ENABLED
sym_bisSync_BO46u3KvbiXYsPrQplUT, brk_sym_bisSync_BO46u3KvbiXYsPrQplUT,
#endif /* UC_BT_CTRL_LE_BIS_SYNC_ENABLED */ #endif /* UC_BT_CTRL_LE_BIS_SYNC_ENABLED */
#if UC_BT_CTRL_LE_CIS_ENABLED #if UC_BT_CTRL_LE_CIS_ENABLED
sym_cis_5PzTPmH8LVt7wMSC7YnP, brk_sym_cis_5PzTPmH8LVt7wMSC7YnP,
#endif /* UC_BT_CTRL_LE_CIS_ENABLED */ #endif /* UC_BT_CTRL_LE_CIS_ENABLED */
sym_coexStack_hzrw4DdhxAw5xAlGFEwI, brk_sym_coexStack_hzrw4DdhxAw5xAlGFEwI,
#if UC_BLE_CTRL_CONN_ENABLED && CONFIG_BT_LE_ERROR_SIM_ENABLED #if UC_BLE_CTRL_CONN_ENABLED && CONFIG_BT_LE_ERROR_SIM_ENABLED
sym_connSim_dytLpHTAgMtQWf4K3pGc, brk_sym_connSim_dytLpHTAgMtQWf4K3pGc,
#endif /* UC_BLE_CTRL_CONN_ENABLED && CONFIG_BT_LE_ERROR_SIM_ENABLED */ #endif /* UC_BLE_CTRL_CONN_ENABLED && CONFIG_BT_LE_ERROR_SIM_ENABLED */
#if UC_BLE_CTRL_CONN_ENABLED #if UC_BLE_CTRL_CONN_ENABLED
sym_conn_k5hEt7krj8McRSctLS7X, brk_sym_conn_k5hEt7krj8McRSctLS7X,
#endif /* UC_BLE_CTRL_CONN_ENABLED */ #endif /* UC_BLE_CTRL_CONN_ENABLED */
#if UC_BT_CTRL_LE_CTE_CAL_ENABLED #if UC_BT_CTRL_LE_CTE_CAL_ENABLED
sym_cteCal_j700khui6oomGLu22Rgb, brk_sym_cteCal_j700khui6oomGLu22Rgb,
#endif /* UC_BT_CTRL_LE_CTE_CAL_ENABLED */ #endif /* UC_BT_CTRL_LE_CTE_CAL_ENABLED */
#if UC_BT_CTRL_LE_CTE_ENABLED #if UC_BT_CTRL_LE_CTE_ENABLED
sym_cte_aMtk23FR89BNAXNthzRu, brk_sym_cte_aMtk23FR89BNAXNthzRu,
#endif /* UC_BT_CTRL_LE_CTE_ENABLED */ #endif /* UC_BT_CTRL_LE_CTE_ENABLED */
#if UC_BT_CTRL_LE_DTM_ENABLED #if UC_BT_CTRL_LE_DTM_ENABLED
sym_dtm_Er3Vd8hhSABNIkl9x3At, brk_sym_dtm_Er3Vd8hhSABNIkl9x3At,
#endif /* UC_BT_CTRL_LE_DTM_ENABLED */ #endif /* UC_BT_CTRL_LE_DTM_ENABLED */
sym_extAdv_65JKSxhAHiLFV63DSxJk, brk_sym_extAdv_65JKSxhAHiLFV63DSxJk,
#if UC_BT_CTRL_LE_ISO_ENABLED #if UC_BT_CTRL_LE_ISO_ENABLED
sym_iso_gk1uwrtqhb5WsUZoPUJq, brk_sym_iso_gk1uwrtqhb5WsUZoPUJq,
#endif /* UC_BT_CTRL_LE_ISO_ENABLED */ #endif /* UC_BT_CTRL_LE_ISO_ENABLED */
#if UC_BLE_CTRL_PAWR_BCAST_SUPPORTED #if UC_BLE_CTRL_PAWR_BCAST_SUPPORTED
sym_pawrBcast_7qGF1F9weQ363Ml7Gj0n, brk_sym_pawrBcast_7qGF1F9weQ363Ml7Gj0n,
#endif /* UC_BLE_CTRL_PAWR_BCAST_SUPPORTED */ #endif /* UC_BLE_CTRL_PAWR_BCAST_SUPPORTED */
#if UC_BLE_CTRL_PAWR_SYNC_SUPPORTED #if UC_BLE_CTRL_PAWR_SYNC_SUPPORTED
sym_pawrSync_vBce2UGY5s0PhM3gRF8p, brk_sym_pawrSync_vBce2UGY5s0PhM3gRF8p,
#endif /* UC_BLE_CTRL_PAWR_SYNC_SUPPORTED */ #endif /* UC_BLE_CTRL_PAWR_SYNC_SUPPORTED */
sym_rand_TnYdBCetsq1sndnhcROz, brk_sym_rand_TnYdBCetsq1sndnhcROz,
sym_resolv_YX00BNf3Z2oJaizN1uK8, brk_sym_resolv_YX00BNf3Z2oJaizN1uK8,
sym_scan_Tfvee56pMZTiTxWnEWgP, brk_sym_scan_Tfvee56pMZTiTxWnEWgP,
sym_sync_uoa5Xd4XcSSCUjyNsVGo, brk_sym_sync_uoa5Xd4XcSSCUjyNsVGo,
), ),
[2] = BTDM_BROKER_ENTRY_DEF_FLASH( [2] = BTDM_BROKER_ENTRY_DEF_FLASH(
sym_acceptList_yfAo03VLjZhjCR2fnGvX, brk_sym_acceptList_yfAo03VLjZhjCR2fnGvX,
sym_adv_S1K3QvkLgRcH2We9Z3KD, brk_sym_adv_S1K3QvkLgRcH2We9Z3KD,
#if UC_BT_CTRL_LE_BIS_BCAST_ENABLED #if UC_BT_CTRL_LE_BIS_BCAST_ENABLED
sym_bisBcast_vKPkmtQzLc0ZU4R3Mpa1, brk_sym_bisBcast_vKPkmtQzLc0ZU4R3Mpa1,
#endif /* UC_BT_CTRL_LE_BIS_BCAST_ENABLED */ #endif /* UC_BT_CTRL_LE_BIS_BCAST_ENABLED */
#if UC_BT_CTRL_LE_BIS_SYNC_ENABLED #if UC_BT_CTRL_LE_BIS_SYNC_ENABLED
sym_bisSync_qLbiM85U90F0BvzUDhgt, brk_sym_bisSync_qLbiM85U90F0BvzUDhgt,
#endif /* UC_BT_CTRL_LE_BIS_SYNC_ENABLED */ #endif /* UC_BT_CTRL_LE_BIS_SYNC_ENABLED */
#if UC_BT_CTRL_LE_CIS_ENABLED #if UC_BT_CTRL_LE_CIS_ENABLED
sym_cis_j0GHq32oPR9AN7YHYxEI, brk_sym_cis_j0GHq32oPR9AN7YHYxEI,
#endif /* UC_BT_CTRL_LE_CIS_ENABLED */ #endif /* UC_BT_CTRL_LE_CIS_ENABLED */
sym_coexStack_sMPrrpveO5HOIb2qa5I8, brk_sym_coexStack_sMPrrpveO5HOIb2qa5I8,
#if UC_BLE_CTRL_CONN_ENABLED && CONFIG_BT_LE_ERROR_SIM_ENABLED #if UC_BLE_CTRL_CONN_ENABLED && CONFIG_BT_LE_ERROR_SIM_ENABLED
sym_connSim_rsrSBeH3W8LE1yGVrtBc, brk_sym_connSim_rsrSBeH3W8LE1yGVrtBc,
#endif /* UC_BLE_CTRL_CONN_ENABLED && CONFIG_BT_LE_ERROR_SIM_ENABLED */ #endif /* UC_BLE_CTRL_CONN_ENABLED && CONFIG_BT_LE_ERROR_SIM_ENABLED */
#if UC_BLE_CTRL_CONN_ENABLED #if UC_BLE_CTRL_CONN_ENABLED
sym_conn_nW2gyrsrYX980SM1JXUT, brk_sym_conn_nW2gyrsrYX980SM1JXUT,
#endif /* UC_BLE_CTRL_CONN_ENABLED */ #endif /* UC_BLE_CTRL_CONN_ENABLED */
#if UC_BT_CTRL_LE_CTE_CAL_ENABLED #if UC_BT_CTRL_LE_CTE_CAL_ENABLED
sym_cteCal_Lxc6TR3r9tNnhSe66bmE, brk_sym_cteCal_Lxc6TR3r9tNnhSe66bmE,
#endif /* UC_BT_CTRL_LE_CTE_CAL_ENABLED */ #endif /* UC_BT_CTRL_LE_CTE_CAL_ENABLED */
#if UC_BT_CTRL_LE_CTE_ENABLED #if UC_BT_CTRL_LE_CTE_ENABLED
sym_cte_onkmOjIkv3QCPJVJQuUB, brk_sym_cte_onkmOjIkv3QCPJVJQuUB,
#endif /* UC_BT_CTRL_LE_CTE_ENABLED */ #endif /* UC_BT_CTRL_LE_CTE_ENABLED */
#if UC_BT_CTRL_LE_DTM_ENABLED #if UC_BT_CTRL_LE_DTM_ENABLED
sym_dtm_8YKzWpU1Xe3NGGMtUeY6, brk_sym_dtm_8YKzWpU1Xe3NGGMtUeY6,
#endif /* UC_BT_CTRL_LE_DTM_ENABLED */ #endif /* UC_BT_CTRL_LE_DTM_ENABLED */
sym_extAdv_cxB4HBdDRajzTQg8DqKC, brk_sym_extAdv_cxB4HBdDRajzTQg8DqKC,
#if UC_BT_CTRL_LE_ISO_ENABLED #if UC_BT_CTRL_LE_ISO_ENABLED
sym_iso_xew5NrC4aBwCavwqySPp, brk_sym_iso_xew5NrC4aBwCavwqySPp,
#endif /* UC_BT_CTRL_LE_ISO_ENABLED */ #endif /* UC_BT_CTRL_LE_ISO_ENABLED */
#if UC_BLE_CTRL_PAWR_BCAST_SUPPORTED #if UC_BLE_CTRL_PAWR_BCAST_SUPPORTED
sym_pawrBcast_SB1LBCzybPoDd0XYyLM8, brk_sym_pawrBcast_SB1LBCzybPoDd0XYyLM8,
#endif /* UC_BLE_CTRL_PAWR_BCAST_SUPPORTED */ #endif /* UC_BLE_CTRL_PAWR_BCAST_SUPPORTED */
#if UC_BLE_CTRL_PAWR_SYNC_SUPPORTED #if UC_BLE_CTRL_PAWR_SYNC_SUPPORTED
sym_pawrSync_1cW8RtQRnVveTqFg9OSR, brk_sym_pawrSync_1cW8RtQRnVveTqFg9OSR,
#endif /* UC_BLE_CTRL_PAWR_SYNC_SUPPORTED */ #endif /* UC_BLE_CTRL_PAWR_SYNC_SUPPORTED */
sym_rand_6102wQhjz4grvtu5s8T3, brk_sym_rand_6102wQhjz4grvtu5s8T3,
sym_resolv_hQFDtxZqj5AP1IMR8s59, brk_sym_resolv_hQFDtxZqj5AP1IMR8s59,
sym_scan_cgn6c03k4ZQqi2dJOtfm, brk_sym_scan_cgn6c03k4ZQqi2dJOtfm,
sym_sync_dVvFbZ7ZwsleTM2nkzdV, brk_sym_sync_dVvFbZ7ZwsleTM2nkzdV,
), ),
#if UC_BT_CTRL_LE_CIS_ENABLED #if UC_BT_CTRL_LE_CIS_ENABLED
[3] = BTDM_BROKER_ENTRY_DEF_FLASH( [3] = BTDM_BROKER_ENTRY_DEF_FLASH(
sym_cis_vY92iDVk3ph4SrNh5ccy, brk_sym_cis_vY92iDVk3ph4SrNh5ccy,
), ),
#endif /* UC_BT_CTRL_LE_CIS_ENABLED */ #endif /* UC_BT_CTRL_LE_CIS_ENABLED */
#if UC_BT_CTRL_LE_BIS_BCAST_ENABLED #if UC_BT_CTRL_LE_BIS_BCAST_ENABLED
[4] = BTDM_BROKER_ENTRY_DEF_FLASH( [4] = BTDM_BROKER_ENTRY_DEF_FLASH(
sym_bisBcast_BcOOZfvM58VUQK6uC2ew, brk_sym_bisBcast_BcOOZfvM58VUQK6uC2ew,
), ),
#endif /* UC_BT_CTRL_LE_BIS_BCAST_ENABLED */ #endif /* UC_BT_CTRL_LE_BIS_BCAST_ENABLED */
); );
@@ -376,14 +378,14 @@ const void * const _base_linear_broker_flash[] = BTDM_BROKER_NODE_DEF_FLASH(
void * _btdm_hal_linear_broker_ram[] = BTDM_BROKER_NODE_DEF_RAM( void * _btdm_hal_linear_broker_ram[] = BTDM_BROKER_NODE_DEF_RAM(
#if UC_BT_CTRL_BLE_IS_ENABLE #if UC_BT_CTRL_BLE_IS_ENABLE
[1] = BTDM_BROKER_ENTRY_DEF_RAM( [1] = BTDM_BROKER_ENTRY_DEF_RAM(
sym_base_QIE6fqExGJrsGUIGYNSf, brk_sym_base_QIE6fqExGJrsGUIGYNSf,
#if UC_BT_CTRL_LE_ISO_ENABLED #if UC_BT_CTRL_LE_ISO_ENABLED
sym_coexIsoHal_RVw8jrRQybFIlwvrONo9, brk_sym_coexIsoHal_RVw8jrRQybFIlwvrONo9,
sym_iso_6SFIpEwXw1SsCdgfyN88, brk_sym_iso_6SFIpEwXw1SsCdgfyN88,
#endif /* UC_BT_CTRL_LE_ISO_ENABLED */ #endif /* UC_BT_CTRL_LE_ISO_ENABLED */
), ),
[2] = BTDM_BROKER_ENTRY_DEF_RAM( [2] = BTDM_BROKER_ENTRY_DEF_RAM(
sym_base_NVN4AbeIskmtcV2PX3N1, brk_sym_base_NVN4AbeIskmtcV2PX3N1,
), ),
#endif /* UC_BT_CTRL_BLE_IS_ENABLE */ #endif /* UC_BT_CTRL_BLE_IS_ENABLE */
); );
@@ -392,10 +394,10 @@ const void * const _btdm_hci_linear_broker_flash[] = BTDM_BROKER_NODE_DEF_FLASH(
#if UC_BT_CTRL_BLE_IS_ENABLE #if UC_BT_CTRL_BLE_IS_ENABLE
#if UC_BLE_CTRL_CONN_ENABLED #if UC_BLE_CTRL_CONN_ENABLED
[1] = BTDM_BROKER_ENTRY_DEF_FLASH( [1] = BTDM_BROKER_ENTRY_DEF_FLASH(
sym_conn_eZ0plXo8e56VyJXdcbNn, brk_sym_conn_eZ0plXo8e56VyJXdcbNn,
), ),
[3] = BTDM_BROKER_ENTRY_DEF_FLASH( [3] = BTDM_BROKER_ENTRY_DEF_FLASH(
sym_conn_Sw7sI0dtf78paJdn9Uhg, brk_sym_conn_Sw7sI0dtf78paJdn9Uhg,
), ),
#endif /* UC_BLE_CTRL_CONN_ENABLED */ #endif /* UC_BLE_CTRL_CONN_ENABLED */
#endif /* UC_BT_CTRL_BLE_IS_ENABLE */ #endif /* UC_BT_CTRL_BLE_IS_ENABLE */
@@ -404,13 +406,14 @@ const void * const _btdm_hci_linear_broker_flash[] = BTDM_BROKER_NODE_DEF_FLASH(
const void * const _btdm_sched_linear_broker_flash[] = BTDM_BROKER_NODE_DEF_FLASH( const void * const _btdm_sched_linear_broker_flash[] = BTDM_BROKER_NODE_DEF_FLASH(
#if UC_BT_CTRL_BLE_IS_ENABLE #if UC_BT_CTRL_BLE_IS_ENABLE
[1] = BTDM_BROKER_ENTRY_DEF_FLASH( [1] = BTDM_BROKER_ENTRY_DEF_FLASH(
sym_memMgmt_7tLw3T7RgI6l7DQc4dMI, brk_sym_memMgmt_7tLw3T7RgI6l7DQc4dMI,
brk_sym_sched_eISDBv5SLWxSduVnTwzD,
), ),
[2] = BTDM_BROKER_ENTRY_DEF_FLASH( [2] = BTDM_BROKER_ENTRY_DEF_FLASH(
sym_memMgmt_PpI7zFiJWyV56U0OIURt, brk_sym_memMgmt_PpI7zFiJWyV56U0OIURt,
), ),
[3] = BTDM_BROKER_ENTRY_DEF_FLASH( [3] = BTDM_BROKER_ENTRY_DEF_FLASH(
sym_scan_0gIKmjMRFT37raN6hnDo, brk_sym_scan_0gIKmjMRFT37raN6hnDo,
), ),
#endif /* UC_BT_CTRL_BLE_IS_ENABLE */ #endif /* UC_BT_CTRL_BLE_IS_ENABLE */
); );
@@ -419,18 +422,18 @@ void * _btdm_sched_linear_broker_ram[] = BTDM_BROKER_NODE_DEF_RAM(
#if UC_BT_CTRL_BLE_IS_ENABLE #if UC_BT_CTRL_BLE_IS_ENABLE
[1] = BTDM_BROKER_ENTRY_DEF_RAM( [1] = BTDM_BROKER_ENTRY_DEF_RAM(
#if UC_BT_CTRL_LE_ISO_ENABLED #if UC_BT_CTRL_LE_ISO_ENABLED
sym_iso_qYKZbEBVIsH27HGf5VCS, brk_sym_iso_qYKZbEBVIsH27HGf5VCS,
#endif /* UC_BT_CTRL_LE_ISO_ENABLED */ #endif /* UC_BT_CTRL_LE_ISO_ENABLED */
sym_sched_PNMeumLUZPcz8o4UrTLi, brk_sym_sched_PNMeumLUZPcz8o4UrTLi,
), ),
[2] = BTDM_BROKER_ENTRY_DEF_RAM( [2] = BTDM_BROKER_ENTRY_DEF_RAM(
sym_scan_b8ogEC3hTjGmqL5oRuyw, brk_sym_scan_b8ogEC3hTjGmqL5oRuyw,
), ),
[3] = BTDM_BROKER_ENTRY_DEF_RAM( [3] = BTDM_BROKER_ENTRY_DEF_RAM(
sym_scan_fd4yzdFac8vdFTlQ4BPA, brk_sym_scan_fd4yzdFac8vdFTlQ4BPA,
), ),
[4] = BTDM_BROKER_ENTRY_DEF_RAM( [4] = BTDM_BROKER_ENTRY_DEF_RAM(
sym_scan_tdX6OLWyRKYxelkB8vZ1, brk_sym_scan_tdX6OLWyRKYxelkB8vZ1,
), ),
#endif /* UC_BT_CTRL_BLE_IS_ENABLE */ #endif /* UC_BT_CTRL_BLE_IS_ENABLE */
); );
@@ -439,7 +442,7 @@ const void * const _btdm_sleep_linear_broker_flash[] = BTDM_BROKER_NODE_DEF_FLAS
#if UC_BT_CTRL_BLE_IS_ENABLE #if UC_BT_CTRL_BLE_IS_ENABLE
#if UC_BT_CTRL_LE_VS_CMD_EVT_ENABLED && CONFIG_BT_CTRL_SLEEP_ENABLE #if UC_BT_CTRL_LE_VS_CMD_EVT_ENABLED && CONFIG_BT_CTRL_SLEEP_ENABLE
[1] = BTDM_BROKER_ENTRY_DEF_FLASH( [1] = BTDM_BROKER_ENTRY_DEF_FLASH(
sym_sleep_Ayr8PrlSNd7F6hhsmt13, brk_sym_sleep_Ayr8PrlSNd7F6hhsmt13,
), ),
#endif /* UC_BT_CTRL_LE_VS_CMD_EVT_ENABLED && CONFIG_BT_CTRL_SLEEP_ENABLE */ #endif /* UC_BT_CTRL_LE_VS_CMD_EVT_ENABLED && CONFIG_BT_CTRL_SLEEP_ENABLE */
#endif /* UC_BT_CTRL_BLE_IS_ENABLE */ #endif /* UC_BT_CTRL_BLE_IS_ENABLE */
@@ -448,110 +451,110 @@ const void * const _btdm_sleep_linear_broker_flash[] = BTDM_BROKER_NODE_DEF_FLAS
const void * const _btdm_task_linear_broker_flash[] = BTDM_BROKER_NODE_DEF_FLASH( const void * const _btdm_task_linear_broker_flash[] = BTDM_BROKER_NODE_DEF_FLASH(
#if UC_BT_CTRL_BLE_IS_ENABLE #if UC_BT_CTRL_BLE_IS_ENABLE
[1] = BTDM_BROKER_ENTRY_DEF_FLASH( [1] = BTDM_BROKER_ENTRY_DEF_FLASH(
sym_arr_CG7zWaZkh7QOTatTjs2v, brk_sym_arr_CG7zWaZkh7QOTatTjs2v,
sym_base_uevmRkB8BjrlJh1c3VnZ, brk_sym_base_uevmRkB8BjrlJh1c3VnZ,
#if UC_BT_CTRL_LE_BIS_BCAST_ENABLED #if UC_BT_CTRL_LE_BIS_BCAST_ENABLED
sym_bisBcast_2dWM4hoGuoEwy8loUGlI, brk_sym_bisBcast_2dWM4hoGuoEwy8loUGlI,
#endif /* UC_BT_CTRL_LE_BIS_BCAST_ENABLED */ #endif /* UC_BT_CTRL_LE_BIS_BCAST_ENABLED */
#if UC_BT_CTRL_LE_BIS_SYNC_ENABLED #if UC_BT_CTRL_LE_BIS_SYNC_ENABLED
sym_bisSync_cB4uyzKmrYjduUbWqXdb, brk_sym_bisSync_cB4uyzKmrYjduUbWqXdb,
#endif /* UC_BT_CTRL_LE_BIS_SYNC_ENABLED */ #endif /* UC_BT_CTRL_LE_BIS_SYNC_ENABLED */
#if UC_BT_CTRL_LE_CIS_ENABLED #if UC_BT_CTRL_LE_CIS_ENABLED
sym_cis_f2SkEM3LCeOCgMzDRq24, brk_sym_cis_f2SkEM3LCeOCgMzDRq24,
#endif /* UC_BT_CTRL_LE_CIS_ENABLED */ #endif /* UC_BT_CTRL_LE_CIS_ENABLED */
#if UC_BLE_CTRL_CONN_ENABLED && CONFIG_BT_LE_ERROR_SIM_ENABLED #if UC_BLE_CTRL_CONN_ENABLED && CONFIG_BT_LE_ERROR_SIM_ENABLED
sym_connSim_EIv22SNth3fM1SPgJ9hO, brk_sym_connSim_EIv22SNth3fM1SPgJ9hO,
#endif /* UC_BLE_CTRL_CONN_ENABLED && CONFIG_BT_LE_ERROR_SIM_ENABLED */ #endif /* UC_BLE_CTRL_CONN_ENABLED && CONFIG_BT_LE_ERROR_SIM_ENABLED */
#if UC_BT_CTRL_LE_CTE_CAL_ENABLED #if UC_BT_CTRL_LE_CTE_CAL_ENABLED
sym_cteCal_NKbWd6AypEyH2B338dAx, brk_sym_cteCal_NKbWd6AypEyH2B338dAx,
#endif /* UC_BT_CTRL_LE_CTE_CAL_ENABLED */ #endif /* UC_BT_CTRL_LE_CTE_CAL_ENABLED */
#if UC_BT_CTRL_LE_CTE_ENABLED #if UC_BT_CTRL_LE_CTE_ENABLED
sym_cte_NjXx2EHiiDoBXhq2trhx, brk_sym_cte_NjXx2EHiiDoBXhq2trhx,
#endif /* UC_BT_CTRL_LE_CTE_ENABLED */ #endif /* UC_BT_CTRL_LE_CTE_ENABLED */
sym_extAdv_j9EFs8yTWikhycyNL2tu, brk_sym_extAdv_j9EFs8yTWikhycyNL2tu,
#if UC_BT_CTRL_LE_ISO_ENABLED #if UC_BT_CTRL_LE_ISO_ENABLED
sym_iso_8HHndXTSYyYcW1EhDzAN, brk_sym_iso_8HHndXTSYyYcW1EhDzAN,
#endif /* UC_BT_CTRL_LE_ISO_ENABLED */ #endif /* UC_BT_CTRL_LE_ISO_ENABLED */
#if UC_BLE_CTRL_PAWR_BCAST_SUPPORTED #if UC_BLE_CTRL_PAWR_BCAST_SUPPORTED
sym_pawrBcast_Jrj3qAmZkOoWxL1jFdmP, brk_sym_pawrBcast_Jrj3qAmZkOoWxL1jFdmP,
#endif /* UC_BLE_CTRL_PAWR_BCAST_SUPPORTED */ #endif /* UC_BLE_CTRL_PAWR_BCAST_SUPPORTED */
#if UC_BLE_CTRL_PAWR_SYNC_SUPPORTED #if UC_BLE_CTRL_PAWR_SYNC_SUPPORTED
sym_pawrSync_k4txvaSWHJBXXqtE62MG, brk_sym_pawrSync_k4txvaSWHJBXXqtE62MG,
#endif /* UC_BLE_CTRL_PAWR_SYNC_SUPPORTED */ #endif /* UC_BLE_CTRL_PAWR_SYNC_SUPPORTED */
sym_scan_1G8QO0lWyTS0nKOqvZOE, brk_sym_scan_1G8QO0lWyTS0nKOqvZOE,
), ),
[2] = BTDM_BROKER_ENTRY_DEF_FLASH( [2] = BTDM_BROKER_ENTRY_DEF_FLASH(
sym_arr_SH7I2IviDsjnpqawpi0F, brk_sym_arr_SH7I2IviDsjnpqawpi0F,
sym_base_uuBMFaiuN71hyzVcBBth, brk_sym_base_uuBMFaiuN71hyzVcBBth,
#if UC_BT_CTRL_LE_BIS_BCAST_ENABLED #if UC_BT_CTRL_LE_BIS_BCAST_ENABLED
sym_bisBcast_vATQ5EU18M2xnmNZ84fY, brk_sym_bisBcast_vATQ5EU18M2xnmNZ84fY,
#endif /* UC_BT_CTRL_LE_BIS_BCAST_ENABLED */ #endif /* UC_BT_CTRL_LE_BIS_BCAST_ENABLED */
#if UC_BT_CTRL_LE_BIS_SYNC_ENABLED #if UC_BT_CTRL_LE_BIS_SYNC_ENABLED
sym_bisSync_DuQGVcBNN6l6ggZp4Y8J, brk_sym_bisSync_DuQGVcBNN6l6ggZp4Y8J,
#endif /* UC_BT_CTRL_LE_BIS_SYNC_ENABLED */ #endif /* UC_BT_CTRL_LE_BIS_SYNC_ENABLED */
#if UC_BT_CTRL_LE_CIS_ENABLED #if UC_BT_CTRL_LE_CIS_ENABLED
sym_cis_UBu7crU2pIczpNc5cEcP, brk_sym_cis_UBu7crU2pIczpNc5cEcP,
#endif /* UC_BT_CTRL_LE_CIS_ENABLED */ #endif /* UC_BT_CTRL_LE_CIS_ENABLED */
#if UC_BT_CTRL_LE_CTE_CAL_ENABLED #if UC_BT_CTRL_LE_CTE_CAL_ENABLED
sym_cteCal_uWSKv9wSYw0nIY0GhuZF, brk_sym_cteCal_uWSKv9wSYw0nIY0GhuZF,
#endif /* UC_BT_CTRL_LE_CTE_CAL_ENABLED */ #endif /* UC_BT_CTRL_LE_CTE_CAL_ENABLED */
#if UC_BT_CTRL_LE_CTE_ENABLED #if UC_BT_CTRL_LE_CTE_ENABLED
sym_cte_vx3COozMkhCXFbq2ZjHK, brk_sym_cte_vx3COozMkhCXFbq2ZjHK,
#endif /* UC_BT_CTRL_LE_CTE_ENABLED */ #endif /* UC_BT_CTRL_LE_CTE_ENABLED */
#if UC_BT_CTRL_LE_ISO_ENABLED #if UC_BT_CTRL_LE_ISO_ENABLED
sym_iso_Ywq26gNcDI3MQQVQbDEF, brk_sym_iso_Ywq26gNcDI3MQQVQbDEF,
#endif /* UC_BT_CTRL_LE_ISO_ENABLED */ #endif /* UC_BT_CTRL_LE_ISO_ENABLED */
#if UC_BLE_CTRL_PAWR_BCAST_SUPPORTED #if UC_BLE_CTRL_PAWR_BCAST_SUPPORTED
sym_pawrBcast_JHmbFJCpV155hIYyDVQ8, brk_sym_pawrBcast_JHmbFJCpV155hIYyDVQ8,
#endif /* UC_BLE_CTRL_PAWR_BCAST_SUPPORTED */ #endif /* UC_BLE_CTRL_PAWR_BCAST_SUPPORTED */
#if UC_BLE_CTRL_PAWR_SYNC_SUPPORTED #if UC_BLE_CTRL_PAWR_SYNC_SUPPORTED
sym_pawrSync_2gh2xSEYHokuhQ7UohkM, brk_sym_pawrSync_2gh2xSEYHokuhQ7UohkM,
#endif /* UC_BLE_CTRL_PAWR_SYNC_SUPPORTED */ #endif /* UC_BLE_CTRL_PAWR_SYNC_SUPPORTED */
sym_scan_zmw2OczvfXFB4aIFaWkc, brk_sym_scan_zmw2OczvfXFB4aIFaWkc,
), ),
[3] = BTDM_BROKER_ENTRY_DEF_FLASH( [3] = BTDM_BROKER_ENTRY_DEF_FLASH(
sym_base_IdP4ncGWlpNArj2oW20N, brk_sym_base_IdP4ncGWlpNArj2oW20N,
), ),
#endif /* UC_BT_CTRL_BLE_IS_ENABLE */ #endif /* UC_BT_CTRL_BLE_IS_ENABLE */
[4] = BTDM_BROKER_ENTRY_DEF_FLASH( [4] = BTDM_BROKER_ENTRY_DEF_FLASH(
r_sym_bt_8fMePSgKBxkeyUSGQQcU, r_sym_bt_8fMePSgKBxkeyUSGQQcU,
#if UC_BT_CTRL_BLE_IS_ENABLE #if UC_BT_CTRL_BLE_IS_ENABLE
sym_acceptList_vvIIdyHCcpNAdAdzZrPN, brk_sym_acceptList_vvIIdyHCcpNAdAdzZrPN,
sym_adv_xfHX4YH2Zb9de4JlBztj, brk_sym_adv_xfHX4YH2Zb9de4JlBztj,
sym_base_CdIdlqttqbZqCmaW9GAc, brk_sym_base_CdIdlqttqbZqCmaW9GAc,
#if UC_BT_CTRL_LE_BIS_BCAST_ENABLED #if UC_BT_CTRL_LE_BIS_BCAST_ENABLED
sym_bisBcast_zlcnIBGOIfWlPC3WJ66f, brk_sym_bisBcast_zlcnIBGOIfWlPC3WJ66f,
#endif /* UC_BT_CTRL_LE_BIS_BCAST_ENABLED */ #endif /* UC_BT_CTRL_LE_BIS_BCAST_ENABLED */
#if UC_BT_CTRL_LE_BIS_SYNC_ENABLED #if UC_BT_CTRL_LE_BIS_SYNC_ENABLED
sym_bisSync_EaKbiRZI30mvH3KWkMY5, brk_sym_bisSync_EaKbiRZI30mvH3KWkMY5,
#endif /* UC_BT_CTRL_LE_BIS_SYNC_ENABLED */ #endif /* UC_BT_CTRL_LE_BIS_SYNC_ENABLED */
#if UC_BT_CTRL_LE_CIS_ENABLED #if UC_BT_CTRL_LE_CIS_ENABLED
sym_cis_QxmCCIxcxCfrWCKZmT3X, brk_sym_cis_QxmCCIxcxCfrWCKZmT3X,
#endif /* UC_BT_CTRL_LE_CIS_ENABLED */ #endif /* UC_BT_CTRL_LE_CIS_ENABLED */
#if UC_BLE_CTRL_CONN_ENABLED && CONFIG_BT_LE_ERROR_SIM_ENABLED #if UC_BLE_CTRL_CONN_ENABLED && CONFIG_BT_LE_ERROR_SIM_ENABLED
sym_connSim_3guOkwBVGmSgwrEIVUvL, brk_sym_connSim_3guOkwBVGmSgwrEIVUvL,
#endif /* UC_BLE_CTRL_CONN_ENABLED && CONFIG_BT_LE_ERROR_SIM_ENABLED */ #endif /* UC_BLE_CTRL_CONN_ENABLED && CONFIG_BT_LE_ERROR_SIM_ENABLED */
#if UC_BLE_CTRL_CONN_ENABLED #if UC_BLE_CTRL_CONN_ENABLED
sym_conn_sIcAPw7j0toiOGWivJ0e, brk_sym_conn_sIcAPw7j0toiOGWivJ0e,
#endif /* UC_BLE_CTRL_CONN_ENABLED */ #endif /* UC_BLE_CTRL_CONN_ENABLED */
#if UC_BT_CTRL_LE_CTE_CAL_ENABLED #if UC_BT_CTRL_LE_CTE_CAL_ENABLED
sym_cteCal_ixMlNDshScz4WVTbiOKl, brk_sym_cteCal_ixMlNDshScz4WVTbiOKl,
#endif /* UC_BT_CTRL_LE_CTE_CAL_ENABLED */ #endif /* UC_BT_CTRL_LE_CTE_CAL_ENABLED */
#if UC_BT_CTRL_LE_CTE_ENABLED #if UC_BT_CTRL_LE_CTE_ENABLED
sym_cte_P7A06WogxnY1JlnvQaGe, brk_sym_cte_P7A06WogxnY1JlnvQaGe,
#endif /* UC_BT_CTRL_LE_CTE_ENABLED */ #endif /* UC_BT_CTRL_LE_CTE_ENABLED */
#if UC_BT_CTRL_LE_DTM_ENABLED #if UC_BT_CTRL_LE_DTM_ENABLED
sym_dtm_wW4wnzkRa1kpb5NfwZVi, brk_sym_dtm_wW4wnzkRa1kpb5NfwZVi,
#endif /* UC_BT_CTRL_LE_DTM_ENABLED */ #endif /* UC_BT_CTRL_LE_DTM_ENABLED */
#if UC_BT_CTRL_LE_ISO_ENABLED #if UC_BT_CTRL_LE_ISO_ENABLED
sym_iso_WJJo4fn6Hkvt9xXAvziZ, brk_sym_iso_WJJo4fn6Hkvt9xXAvziZ,
#endif /* UC_BT_CTRL_LE_ISO_ENABLED */ #endif /* UC_BT_CTRL_LE_ISO_ENABLED */
#if UC_BLE_CTRL_PAWR_BCAST_SUPPORTED #if UC_BLE_CTRL_PAWR_BCAST_SUPPORTED
sym_pawrBcast_eBH7HrPT8y2Fj9382el3, brk_sym_pawrBcast_eBH7HrPT8y2Fj9382el3,
#endif /* UC_BLE_CTRL_PAWR_BCAST_SUPPORTED */ #endif /* UC_BLE_CTRL_PAWR_BCAST_SUPPORTED */
sym_resolv_GWz7Tb1ymxsyLQ1208Jj, brk_sym_resolv_GWz7Tb1ymxsyLQ1208Jj,
sym_scan_l1avG2cwTzJAlle4KLdU, brk_sym_scan_l1avG2cwTzJAlle4KLdU,
sym_sync_NOAs4m6LAUpamsUYHfqm, brk_sym_sync_NOAs4m6LAUpamsUYHfqm,
#endif /* UC_BT_CTRL_BLE_IS_ENABLE */ #endif /* UC_BT_CTRL_BLE_IS_ENABLE */
), ),
); );
@@ -560,106 +563,111 @@ const void * const _btdm_task_linear_broker_flash[] = BTDM_BROKER_NODE_DEF_FLASH
const void * const _conn_linear_broker_flash[] = BTDM_BROKER_NODE_DEF_FLASH( const void * const _conn_linear_broker_flash[] = BTDM_BROKER_NODE_DEF_FLASH(
#if UC_BLE_CTRL_CONN_ENABLED && CONFIG_BT_LE_ERROR_SIM_ENABLED #if UC_BLE_CTRL_CONN_ENABLED && CONFIG_BT_LE_ERROR_SIM_ENABLED
[1] = BTDM_BROKER_ENTRY_DEF_FLASH( [1] = BTDM_BROKER_ENTRY_DEF_FLASH(
sym_connSim_2RFEzu4Evi68Nnt4YowZ, brk_sym_connSim_2RFEzu4Evi68Nnt4YowZ,
), ),
[2] = BTDM_BROKER_ENTRY_DEF_FLASH( [2] = BTDM_BROKER_ENTRY_DEF_FLASH(
sym_connSim_SoaIlItcCgS4km7f1141, brk_sym_connSim_SoaIlItcCgS4km7f1141,
), ),
#endif /* UC_BLE_CTRL_CONN_ENABLED && CONFIG_BT_LE_ERROR_SIM_ENABLED */ #endif /* UC_BLE_CTRL_CONN_ENABLED && CONFIG_BT_LE_ERROR_SIM_ENABLED */
#if UC_BLE_CTRL_PAWR_SYNC_SUPPORTED #if UC_BLE_CTRL_PAWR_SYNC_SUPPORTED
[3] = BTDM_BROKER_ENTRY_DEF_FLASH( [3] = BTDM_BROKER_ENTRY_DEF_FLASH(
sym_pawrSync_pbTRKlIHoevVfNidtKZb, brk_sym_pawrSync_pbTRKlIHoevVfNidtKZb,
), ),
[4] = BTDM_BROKER_ENTRY_DEF_FLASH( [4] = BTDM_BROKER_ENTRY_DEF_FLASH(
sym_pawrSync_fn4PoAB0qFmYpbwqTO2H, brk_sym_pawrSync_fn4PoAB0qFmYpbwqTO2H,
), ),
#endif /* UC_BLE_CTRL_PAWR_SYNC_SUPPORTED */ #endif /* UC_BLE_CTRL_PAWR_SYNC_SUPPORTED */
#if UC_BLE_CTRL_PAWR_BCAST_SUPPORTED #if UC_BLE_CTRL_PAWR_BCAST_SUPPORTED
[5] = BTDM_BROKER_ENTRY_DEF_FLASH( [5] = BTDM_BROKER_ENTRY_DEF_FLASH(
sym_pawrBcast_on08yxBjym4I0iV3tlPo, brk_sym_pawrBcast_on08yxBjym4I0iV3tlPo,
), ),
#endif /* UC_BLE_CTRL_PAWR_BCAST_SUPPORTED */ #endif /* UC_BLE_CTRL_PAWR_BCAST_SUPPORTED */
[6] = BTDM_BROKER_ENTRY_DEF_FLASH( [6] = BTDM_BROKER_ENTRY_DEF_FLASH(
#if UC_BT_CTRL_LE_CIS_CENT_ENABLED #if UC_BT_CTRL_LE_CIS_CENT_ENABLED
sym_cisCent_9P0KC1xZQpumJC2psVXO, brk_sym_cisCent_9P0KC1xZQpumJC2psVXO,
#endif /* UC_BT_CTRL_LE_CIS_CENT_ENABLED */ #endif /* UC_BT_CTRL_LE_CIS_CENT_ENABLED */
#if UC_BT_CTRL_LE_CIS_PRPH_ENABLED #if UC_BT_CTRL_LE_CIS_PRPH_ENABLED
sym_cisPrph_6ORekVL63tenTy0sCT2O, brk_sym_cisPrph_6ORekVL63tenTy0sCT2O,
#endif /* UC_BT_CTRL_LE_CIS_PRPH_ENABLED */ #endif /* UC_BT_CTRL_LE_CIS_PRPH_ENABLED */
#if UC_BT_CTRL_LE_CIS_ENABLED #if UC_BT_CTRL_LE_CIS_ENABLED
sym_cis_wQtv7EbxMlyUdVE0TQ9T, brk_sym_cis_wQtv7EbxMlyUdVE0TQ9T,
#endif /* UC_BT_CTRL_LE_CIS_ENABLED */ #endif /* UC_BT_CTRL_LE_CIS_ENABLED */
), ),
[7] = BTDM_BROKER_ENTRY_DEF_FLASH( [7] = BTDM_BROKER_ENTRY_DEF_FLASH(
#if UC_BT_CTRL_LE_CIS_CENT_ENABLED #if UC_BT_CTRL_LE_CIS_CENT_ENABLED
sym_cisCent_GSToGcnDAoUIQsFaBPr7, brk_sym_cisCent_GSToGcnDAoUIQsFaBPr7,
#endif /* UC_BT_CTRL_LE_CIS_CENT_ENABLED */ #endif /* UC_BT_CTRL_LE_CIS_CENT_ENABLED */
#if UC_BT_CTRL_LE_CIS_PRPH_ENABLED #if UC_BT_CTRL_LE_CIS_PRPH_ENABLED
sym_cisPrph_zr8KQ3aEASRV2ZptTSnX, brk_sym_cisPrph_zr8KQ3aEASRV2ZptTSnX,
#endif /* UC_BT_CTRL_LE_CIS_PRPH_ENABLED */ #endif /* UC_BT_CTRL_LE_CIS_PRPH_ENABLED */
), ),
[8] = BTDM_BROKER_ENTRY_DEF_FLASH( [8] = BTDM_BROKER_ENTRY_DEF_FLASH(
#if UC_BT_CTRL_LE_CIS_CENT_ENABLED #if UC_BT_CTRL_LE_CIS_CENT_ENABLED
sym_cisCent_JUzUk54A9UNHtsUAHT8F, brk_sym_cisCent_JUzUk54A9UNHtsUAHT8F,
#endif /* UC_BT_CTRL_LE_CIS_CENT_ENABLED */ #endif /* UC_BT_CTRL_LE_CIS_CENT_ENABLED */
#if UC_BT_CTRL_LE_CIS_PRPH_ENABLED #if UC_BT_CTRL_LE_CIS_PRPH_ENABLED
sym_cisPrph_xR7NheKHstTWkDAuZROL, brk_sym_cisPrph_xR7NheKHstTWkDAuZROL,
#endif /* UC_BT_CTRL_LE_CIS_PRPH_ENABLED */ #endif /* UC_BT_CTRL_LE_CIS_PRPH_ENABLED */
), ),
#if UC_BT_CTRL_LE_CIS_ENABLED #if UC_BT_CTRL_LE_CIS_ENABLED
[9] = BTDM_BROKER_ENTRY_DEF_FLASH( [9] = BTDM_BROKER_ENTRY_DEF_FLASH(
sym_cis_eeNELMi6IB5X3UF8MMvQ, brk_sym_cis_eeNELMi6IB5X3UF8MMvQ,
), ),
#endif /* UC_BT_CTRL_LE_CIS_ENABLED */ #endif /* UC_BT_CTRL_LE_CIS_ENABLED */
[10] = BTDM_BROKER_ENTRY_DEF_FLASH( [10] = BTDM_BROKER_ENTRY_DEF_FLASH(
#if UC_BT_CTRL_LE_CIS_CENT_ENABLED #if UC_BT_CTRL_LE_CIS_CENT_ENABLED
sym_cisCent_wt1P0oioDDyNz026HxsK, brk_sym_cisCent_wt1P0oioDDyNz026HxsK,
#endif /* UC_BT_CTRL_LE_CIS_CENT_ENABLED */ #endif /* UC_BT_CTRL_LE_CIS_CENT_ENABLED */
#if UC_BT_CTRL_LE_CIS_PRPH_ENABLED #if UC_BT_CTRL_LE_CIS_PRPH_ENABLED
sym_cisPrph_Kb3o0Y7oUCdHJ1SXcoqj, brk_sym_cisPrph_Kb3o0Y7oUCdHJ1SXcoqj,
#endif /* UC_BT_CTRL_LE_CIS_PRPH_ENABLED */ #endif /* UC_BT_CTRL_LE_CIS_PRPH_ENABLED */
#if UC_BT_CTRL_LE_CIS_ENABLED #if UC_BT_CTRL_LE_CIS_ENABLED
sym_cis_i4bfG8waTBMteoJaWD40, brk_sym_cis_i4bfG8waTBMteoJaWD40,
#endif /* UC_BT_CTRL_LE_CIS_ENABLED */ #endif /* UC_BT_CTRL_LE_CIS_ENABLED */
), ),
#if UC_BT_CTRL_LE_CIS_ENABLED
[12] = BTDM_BROKER_ENTRY_DEF_FLASH( [12] = BTDM_BROKER_ENTRY_DEF_FLASH(
#if UC_BT_CTRL_LE_CIS_CENT_ENABLED brk_sym_cis_sHcp2gf28ZC99shUpnis,
sym_cisCent_f2xo5SuAzLb4iRlhLPhf,
#endif /* UC_BT_CTRL_LE_CIS_CENT_ENABLED */
#if UC_BT_CTRL_LE_CIS_PRPH_ENABLED
sym_cisPrph_Dw8FBGfBWm2LptzYq46z,
#endif /* UC_BT_CTRL_LE_CIS_PRPH_ENABLED */
#if UC_BT_CTRL_LE_CIS_ENABLED
sym_cis_coXGBkWhDUZWHDFo80gN,
#endif /* UC_BT_CTRL_LE_CIS_ENABLED */
), ),
#if UC_BT_CTRL_LE_CIS_ENABLED
[13] = BTDM_BROKER_ENTRY_DEF_FLASH( [13] = BTDM_BROKER_ENTRY_DEF_FLASH(
sym_cis_3DmpJ8V6gGsnSNopbei0, brk_sym_cis_3DmpJ8V6gGsnSNopbei0,
), ),
[14] = BTDM_BROKER_ENTRY_DEF_FLASH( [14] = BTDM_BROKER_ENTRY_DEF_FLASH(
sym_cis_WICEvILg2pK6JZvhry3j, brk_sym_cis_WICEvILg2pK6JZvhry3j,
), ),
[15] = BTDM_BROKER_ENTRY_DEF_FLASH( [15] = BTDM_BROKER_ENTRY_DEF_FLASH(
sym_cis_zGkqwv9urnJ8DbX0JZAr, brk_sym_cis_zGkqwv9urnJ8DbX0JZAr,
), ),
[16] = BTDM_BROKER_ENTRY_DEF_FLASH( [16] = BTDM_BROKER_ENTRY_DEF_FLASH(
sym_cis_Bmj5ai8K8ZKFKqWA8X8B, brk_sym_cis_Bmj5ai8K8ZKFKqWA8X8B,
), ),
#endif /* UC_BT_CTRL_LE_CIS_ENABLED */ #endif /* UC_BT_CTRL_LE_CIS_ENABLED */
[17] = BTDM_BROKER_ENTRY_DEF_FLASH( [17] = BTDM_BROKER_ENTRY_DEF_FLASH(
#if UC_BT_CTRL_LE_CIS_CENT_ENABLED #if UC_BT_CTRL_LE_CIS_CENT_ENABLED
sym_cisCent_jfaA90JGHwEKv1YkKIUO, brk_sym_cisCent_jfaA90JGHwEKv1YkKIUO,
#endif /* UC_BT_CTRL_LE_CIS_CENT_ENABLED */ #endif /* UC_BT_CTRL_LE_CIS_CENT_ENABLED */
#if UC_BT_CTRL_LE_CIS_ENABLED #if UC_BT_CTRL_LE_CIS_ENABLED
sym_cis_mcjvVuw8ttAldZnobGxJ, brk_sym_cis_mcjvVuw8ttAldZnobGxJ,
#endif /* UC_BT_CTRL_LE_CIS_ENABLED */ #endif /* UC_BT_CTRL_LE_CIS_ENABLED */
), ),
#if UC_BT_CTRL_LE_CIS_ENABLED #if UC_BT_CTRL_LE_CIS_ENABLED
[18] = BTDM_BROKER_ENTRY_DEF_FLASH( [18] = BTDM_BROKER_ENTRY_DEF_FLASH(
sym_cis_Guzdzme9CFLxrbjG6HEJ, brk_sym_cis_Guzdzme9CFLxrbjG6HEJ,
), ),
#endif /* UC_BT_CTRL_LE_CIS_ENABLED */ #endif /* UC_BT_CTRL_LE_CIS_ENABLED */
#if UC_BT_CTRL_LE_CIS_CENT_ENABLED
[19] = BTDM_BROKER_ENTRY_DEF_FLASH(
brk_sym_cisCent_y03W49d1NFScSUUO32Yn,
),
#endif /* UC_BT_CTRL_LE_CIS_CENT_ENABLED */
[20] = BTDM_BROKER_ENTRY_DEF_FLASH(
#if UC_BT_CTRL_LE_CIS_CENT_ENABLED
brk_sym_cisCent_FX6J62IzYLkcQNdl7BqH,
#endif /* UC_BT_CTRL_LE_CIS_CENT_ENABLED */
#if UC_BT_CTRL_LE_CIS_PRPH_ENABLED
brk_sym_cisPrph_bU9vRMdklv6bdZ52yCI5,
#endif /* UC_BT_CTRL_LE_CIS_PRPH_ENABLED */
),
); );
#endif /* UC_BT_CTRL_BLE_IS_ENABLE && UC_BLE_CTRL_CONN_ENABLED */ #endif /* UC_BT_CTRL_BLE_IS_ENABLE && UC_BLE_CTRL_CONN_ENABLED */
@@ -672,13 +680,13 @@ const void * const _nrtIsr_linear_broker_flash[] = BTDM_BROKER_NODE_DEF_FLASH(
const void * const _perAdv_linear_broker_flash[] = BTDM_BROKER_NODE_DEF_FLASH( const void * const _perAdv_linear_broker_flash[] = BTDM_BROKER_NODE_DEF_FLASH(
#if UC_BT_CTRL_LE_BIS_BCAST_ENABLED #if UC_BT_CTRL_LE_BIS_BCAST_ENABLED
[1] = BTDM_BROKER_ENTRY_DEF_FLASH( [1] = BTDM_BROKER_ENTRY_DEF_FLASH(
sym_bisBcast_2a3kgxHeabxbnBIsRh4s, brk_sym_bisBcast_2a3kgxHeabxbnBIsRh4s,
), ),
[2] = BTDM_BROKER_ENTRY_DEF_FLASH( [2] = BTDM_BROKER_ENTRY_DEF_FLASH(
sym_bisBcast_EtJ8xQ5EIWS6IjqpsD1U, brk_sym_bisBcast_EtJ8xQ5EIWS6IjqpsD1U,
), ),
[3] = BTDM_BROKER_ENTRY_DEF_FLASH( [3] = BTDM_BROKER_ENTRY_DEF_FLASH(
sym_bisBcast_2uiisGIdoGa6SNUZCE2m, brk_sym_bisBcast_2uiisGIdoGa6SNUZCE2m,
), ),
#endif /* UC_BT_CTRL_LE_BIS_BCAST_ENABLED */ #endif /* UC_BT_CTRL_LE_BIS_BCAST_ENABLED */
); );
@@ -688,36 +696,36 @@ const void * const _perAdv_linear_broker_flash[] = BTDM_BROKER_NODE_DEF_FLASH(
const void * const _sync_linear_broker_flash[] = BTDM_BROKER_NODE_DEF_FLASH( const void * const _sync_linear_broker_flash[] = BTDM_BROKER_NODE_DEF_FLASH(
#if UC_BLE_CTRL_PAWR_SYNC_SUPPORTED #if UC_BLE_CTRL_PAWR_SYNC_SUPPORTED
[1] = BTDM_BROKER_ENTRY_DEF_FLASH( [1] = BTDM_BROKER_ENTRY_DEF_FLASH(
sym_pawrSync_Qifv1iec7w57n2pBwucX, brk_sym_pawrSync_Qifv1iec7w57n2pBwucX,
), ),
[2] = BTDM_BROKER_ENTRY_DEF_FLASH( [2] = BTDM_BROKER_ENTRY_DEF_FLASH(
sym_pawrSync_bbizSGqM6wZUOT0fQF1M, brk_sym_pawrSync_bbizSGqM6wZUOT0fQF1M,
), ),
[3] = BTDM_BROKER_ENTRY_DEF_FLASH( [3] = BTDM_BROKER_ENTRY_DEF_FLASH(
sym_pawrSync_oBwpWArFlWxUJNCnHvsJ, brk_sym_pawrSync_oBwpWArFlWxUJNCnHvsJ,
), ),
[4] = BTDM_BROKER_ENTRY_DEF_FLASH( [4] = BTDM_BROKER_ENTRY_DEF_FLASH(
sym_pawrSync_vAN2YoeCsSKafv2NdPVC, brk_sym_pawrSync_vAN2YoeCsSKafv2NdPVC,
), ),
[5] = BTDM_BROKER_ENTRY_DEF_FLASH( [5] = BTDM_BROKER_ENTRY_DEF_FLASH(
sym_pawrSync_9XvRcZs9CUOgHNbMhe5G, brk_sym_pawrSync_9XvRcZs9CUOgHNbMhe5G,
), ),
[6] = BTDM_BROKER_ENTRY_DEF_FLASH( [6] = BTDM_BROKER_ENTRY_DEF_FLASH(
sym_pawrSync_zuG0pqdRWK2zt5S09fTS, brk_sym_pawrSync_zuG0pqdRWK2zt5S09fTS,
), ),
[7] = BTDM_BROKER_ENTRY_DEF_FLASH( [7] = BTDM_BROKER_ENTRY_DEF_FLASH(
sym_pawrSync_LO7YyFM93srewqVpETY2, brk_sym_pawrSync_LO7YyFM93srewqVpETY2,
), ),
[8] = BTDM_BROKER_ENTRY_DEF_FLASH( [8] = BTDM_BROKER_ENTRY_DEF_FLASH(
sym_pawrSync_7bchpvHsUM8DXHyaXC7f, brk_sym_pawrSync_7bchpvHsUM8DXHyaXC7f,
), ),
#endif /* UC_BLE_CTRL_PAWR_SYNC_SUPPORTED */ #endif /* UC_BLE_CTRL_PAWR_SYNC_SUPPORTED */
#if UC_BT_CTRL_LE_BIS_SYNC_ENABLED #if UC_BT_CTRL_LE_BIS_SYNC_ENABLED
[9] = BTDM_BROKER_ENTRY_DEF_FLASH( [9] = BTDM_BROKER_ENTRY_DEF_FLASH(
sym_bisSync_3FCcFQdSowAGd7aAejeg, brk_sym_bisSync_3FCcFQdSowAGd7aAejeg,
), ),
[10] = BTDM_BROKER_ENTRY_DEF_FLASH( [10] = BTDM_BROKER_ENTRY_DEF_FLASH(
sym_bisSync_0xkTwhqVWK4bwJa6dDH6, brk_sym_bisSync_0xkTwhqVWK4bwJa6dDH6,
), ),
#endif /* UC_BT_CTRL_LE_BIS_SYNC_ENABLED */ #endif /* UC_BT_CTRL_LE_BIS_SYNC_ENABLED */
); );
@@ -3,3 +3,7 @@ source "$IDF_PATH/components/bt/porting_btdm/Kconfig.in"
config BT_CTRL_MULTI_LINK_ENABLED config BT_CTRL_MULTI_LINK_ENABLED
bool bool
default y default y
config BT_CTRL_LE_SUPPORT_MEM_RES
bool
default y
File diff suppressed because it is too large Load Diff
+12 -4
View File
@@ -17,8 +17,8 @@ extern "C" {
* Local Defined Macros * Local Defined Macros
*************************************************************************************************** ***************************************************************************************************
*/ */
#define ESP_BREDR_CTRL_CONFIG_MAGIC_VAL 0x5A5AA5A5 #define ESP_BREDR_CTRL_CONFIG_MAGIC_VAL (0x5A5AA5A5)
#define ESP_BREDR_CTRL_CONFIG_VERSION 0x20250327 #define ESP_BREDR_CTRL_CONFIG_VERSION (0x20260722)
#if UC_BT_CTRL_BR_EDR_IS_ENABLE #if UC_BT_CTRL_BR_EDR_IS_ENABLE
#define _BT_CTRL_BREDR_INIT_CONFIG_DEFAULT() \ #define _BT_CTRL_BREDR_INIT_CONFIG_DEFAULT() \
@@ -49,8 +49,8 @@ extern "C" {
.static_aclu_tx_buf_nb = UC_BR_EDR_ACLU_TX_BUF_NB - UC_BR_EDR_DYNAMIC_ACLU_TX_BUF_NB, \ .static_aclu_tx_buf_nb = UC_BR_EDR_ACLU_TX_BUF_NB - UC_BR_EDR_DYNAMIC_ACLU_TX_BUF_NB, \
.dynamic_aclu_tx_buf_nb = UC_BR_EDR_DYNAMIC_ACLU_TX_BUF_NB, \ .dynamic_aclu_tx_buf_nb = UC_BR_EDR_DYNAMIC_ACLU_TX_BUF_NB, \
.aclu_rx_buf_nb = UC_BR_EDR_ACLU_RX_BUF_NB, \ .aclu_rx_buf_nb = UC_BR_EDR_ACLU_RX_BUF_NB, \
.sync_tx_buf_nb = UC_BR_EDR_SYNC_TX_BUF_NB, \ .sync_tx_buf_nb = 0, \
.sync_rx_buf_nb = UC_BR_EDR_SYNC_RX_BUF_NB, \ .sync_rx_buf_nb = 0, \
.esco_ev4_supp = UC_BR_EDR_ESCO_EV4_SUPP, \ .esco_ev4_supp = UC_BR_EDR_ESCO_EV4_SUPP, \
.esco_ev5_supp = UC_BR_EDR_ESCO_EV5_SUPP, \ .esco_ev5_supp = UC_BR_EDR_ESCO_EV5_SUPP, \
.esco_ev3_2_supp = UC_BR_EDR_ESCO_EV3_2_SUPP, \ .esco_ev3_2_supp = UC_BR_EDR_ESCO_EV3_2_SUPP, \
@@ -59,6 +59,10 @@ extern "C" {
.bt_legacy_auth_vs_evt = UC_BR_EDR_LEGACY_AUTH_VENDOR_EVT, \ .bt_legacy_auth_vs_evt = UC_BR_EDR_LEGACY_AUTH_VENDOR_EVT, \
.inq_filter_en = 0, \ .inq_filter_en = 0, \
.dtm_en = 0, \ .dtm_en = 0, \
.static_sync_tx_buf_nb = UC_BR_EDR_STATIC_SYNC_TX_BUF_NB, \
.dynamic_sync_tx_buf_nb = UC_BR_EDR_DYNAMIC_SYNC_TX_BUF_NB, \
.static_sync_rx_buf_nb = UC_BR_EDR_STATIC_SYNC_RX_BUF_NB, \
.sync_rx_buf_nb_per_link = UC_BR_EDR_SYNC_RX_BUF_NB_PER_LINK, \
.bredr_magic = ESP_BREDR_CTRL_CONFIG_MAGIC_VAL, \ .bredr_magic = ESP_BREDR_CTRL_CONFIG_MAGIC_VAL, \
} }
#else #else
@@ -148,6 +152,10 @@ typedef struct {
uint8_t dtm_en : 1; /*!< BR/EDR direct test mode */ uint8_t dtm_en : 1; /*!< BR/EDR direct test mode */
uint32_t mempool_size; /*!< Required mempool size used in BR/EDR controller */ uint32_t mempool_size; /*!< Required mempool size used in BR/EDR controller */
struct orca_mempool_ops *mempool_ops; /*!< mempool operations used in BR/EDR controller */ struct orca_mempool_ops *mempool_ops; /*!< mempool operations used in BR/EDR controller */
uint8_t static_sync_tx_buf_nb; /*!< static sync tx buffers(allocated at init) */
uint8_t dynamic_sync_tx_buf_nb; /*!< dynamic sync tx buffers(allocated during sync connection establishment) */
uint8_t static_sync_rx_buf_nb; /*!< total number of static sync rx buffers */
uint8_t sync_rx_buf_nb_per_link; /*!< sync rx buffers per link (static + dynamic combined) */
uint32_t bredr_magic; /*!< Magic number */ uint32_t bredr_magic; /*!< Magic number */
} esp_bt_ctrl_bredr_config_t; } esp_bt_ctrl_bredr_config_t;
+23 -12
View File
@@ -7,6 +7,7 @@
#include "btdm_user_cfg.h" #include "btdm_user_cfg.h"
#include "ble_user_cfg.h" #include "ble_user_cfg.h"
#include <stdint.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
@@ -17,7 +18,7 @@ extern "C" {
* Local Defined Macros * Local Defined Macros
*************************************************************************************************** ***************************************************************************************************
*/ */
#define BLE_CONFIG_VERSION 0x20260123 #define BLE_CONFIG_VERSION 0x20260810
#define BLE_CONFIG_MAGIC 0x5A5AA5A5 #define BLE_CONFIG_MAGIC 0x5A5AA5A5
#if defined(CONFIG_BT_LE_ISO_SUPPORT) #if defined(CONFIG_BT_LE_ISO_SUPPORT)
@@ -75,6 +76,14 @@ extern "C" {
#define DEFAULT_BT_LE_ISO_CONFIG NULL #define DEFAULT_BT_LE_ISO_CONFIG NULL
#endif // defined(CONFIG_BT_LE_ISO_SUPPORT) #endif // defined(CONFIG_BT_LE_ISO_SUPPORT)
#if UC_BT_CTRL_LE_SUPPORT_MEM_RES
#define DEFAULT_BT_LE_MEM_RES_CONFIG \
.enhanced_mem_resv = 0, \
.rxbuf_reserved = 0,
#else
#define DEFAULT_BT_LE_MEM_RES_CONFIG
#endif // UC_BT_CTRL_LE_SUPPORT_MEM_RES
#if UC_BT_CTRL_BLE_IS_ENABLE #if UC_BT_CTRL_BLE_IS_ENABLE
#define _BT_CTRL_LE_INIT_CONFIG_DEFAULT() \ #define _BT_CTRL_LE_INIT_CONFIG_DEFAULT() \
{ \ { \
@@ -86,7 +95,7 @@ extern "C" {
.ble_ll_sync_cnt = DEFAULT_BT_LE_MAX_PERIODIC_SYNCS, \ .ble_ll_sync_cnt = DEFAULT_BT_LE_MAX_PERIODIC_SYNCS, \
.ble_ll_rsp_dup_list_count = CONFIG_BT_LE_LL_DUP_SCAN_LIST_COUNT, \ .ble_ll_rsp_dup_list_count = CONFIG_BT_LE_LL_DUP_SCAN_LIST_COUNT, \
.ble_ll_adv_dup_list_count = CONFIG_BT_LE_LL_DUP_SCAN_LIST_COUNT, \ .ble_ll_adv_dup_list_count = CONFIG_BT_LE_LL_DUP_SCAN_LIST_COUNT, \
.ble_ll_tx_pwr_dbm = 0, \ .ble_ll_tx_pwr_dbm = UC_BT_CTRL_LE_DFT_TX_POWER_LEVEL_DBM_EFF, \
.rtc_freq = 32000, \ .rtc_freq = 32000, \
.ble_ll_sca = CONFIG_BT_LE_LL_SCA, \ .ble_ll_sca = CONFIG_BT_LE_LL_SCA, \
.ble_ll_scan_phy_number = BLE_LL_SCAN_PHY_NUMBER_N, \ .ble_ll_scan_phy_number = BLE_LL_SCAN_PHY_NUMBER_N, \
@@ -132,13 +141,13 @@ extern "C" {
.skip_unnecessary_checks_en = 0, \ .skip_unnecessary_checks_en = 0, \
.fast_conn_data_tx_en = UC_BT_CTRL_LE_FAST_CONN_DATA_TX_EN, \ .fast_conn_data_tx_en = UC_BT_CTRL_LE_FAST_CONN_DATA_TX_EN, \
.ch39_txpwr = UC_BT_CTRL_LE_CH39_TX_PWR_DBM, \ .ch39_txpwr = UC_BT_CTRL_LE_CH39_TX_PWR_DBM, \
.adv_rsv_cnt = 1, \ .adv_rsv_cnt = UC_BT_CTRL_LE_ADV_SM_RESERVE_CNT, \
.conn_rsv_cnt = 1, \ .conn_rsv_cnt = UC_BT_CTRL_LE_CONN_SM_RESERVE_CNT, \
.priority_level_cfg = 0, \ .priority_level_cfg = UC_BT_CTRL_LE_SCHED_PRIO_LVL_CFG, \
.slv_fst_rx_lat_en = 0, \ .slv_fst_rx_lat_en = UC_BT_CTRL_LE_SLV_FAST_RX_CONN_DATA_EN, \
.dl_itvl_phy_sync_en = 0, \ .dl_itvl_phy_sync_en = UC_BT_CTRL_LE_DL_ITVL_PHY_SYNC_EN, \
.scan_allow_adi_filter = 1, \ .scan_allow_adi_filter = UC_BT_CTRL_LE_SCAN_ENH_ADI_FILTER, \
.enhanced_mem_resv = 1, \ DEFAULT_BT_LE_MEM_RES_CONFIG \
.iso_config = DEFAULT_BT_LE_ISO_CONFIG, \ .iso_config = DEFAULT_BT_LE_ISO_CONFIG, \
.config_magic = BLE_CONFIG_MAGIC, \ .config_magic = BLE_CONFIG_MAGIC, \
} }
@@ -274,11 +283,13 @@ typedef struct {
uint8_t dl_itvl_phy_sync_en; /*!< The option for automatically initiate the data length update uint8_t dl_itvl_phy_sync_en; /*!< The option for automatically initiate the data length update
when phy update or connect interval update. */ when phy update or connect interval update. */
uint8_t scan_allow_adi_filter; /*!< The option for ext scan to allow PDU with specific adi. */ uint8_t scan_allow_adi_filter; /*!< The option for ext scan to allow PDU with specific adi. */
uint8_t enhanced_mem_resv; /*!< The option masks the BLE events with all reserved memory. */ #if UC_BT_CTRL_LE_SUPPORT_MEM_RES
// at initialization. */ uint8_t enhanced_mem_resv; /*!< The option masks the BLE events with all reserved memory.*/
uint8_t rxbuf_reserved; /*!< The option reserve all Rxbuffer memory at initialization. */
#endif // UC_BT_CTRL_LE_SUPPORT_MEM_RES
#if SOC_BLE_ISO_SUPPORTED #if SOC_BLE_ISO_SUPPORTED
esp_bt_ctrl_le_iso_config_t *iso_config; /*!< The option for ISO configuration */ esp_bt_ctrl_le_iso_config_t *iso_config; /*!< The option for ISO configuration */
#endif // SOC_BLE_ISO_SUPPORTED #endif // SOC_BLE_ISO_SUPPORTED
uint32_t config_magic; /*!< Configuration magic value */ uint32_t config_magic; /*!< Configuration magic value */
} esp_bt_ctrl_le_config_t; } esp_bt_ctrl_le_config_t;
+6
View File
@@ -27,6 +27,12 @@ config BT_CTRL_TASK_STACK_SIZE
help help
This configures stack size of NimBLE controller task This configures stack size of NimBLE controller task
config BT_CTRL_ALLOW_MALLOC_FROM_SPIRAM
bool "Allow allocating BT memory from SPIRAM"
default n
help
Allocate part of memory from SPIRAM. Need to enable CONFIG_SPIRAM first.
menuconfig BT_CTRL_SLEEP_ENABLE menuconfig BT_CTRL_SLEEP_ENABLE
bool "Enable Bluetooth Controller sleep" bool "Enable Bluetooth Controller sleep"
default n default n
@@ -36,6 +36,36 @@ menu "Connection vendor/Optimization Options"
If this option is enabled, Controller will terminate the connection If this option is enabled, Controller will terminate the connection
when Instant Passed (0x28) error occurs in PHY update procedure. when Instant Passed (0x28) error occurs in PHY update procedure.
endmenu # "BLE disconnects when Instant Passed (0x28) occurs" endmenu # "BLE disconnects when Instant Passed (0x28) occurs"
config BT_LE_CONN_RESERVED_MEMORY_COUNT
int "The value of reserved CONN memory count at initialization"
range 0 70
default 2
help
This value sets the number the Controller will allocate for connection instances
at the initialization process. If more connection instances are enabled, those
memory will be dynamically allocated.
Using reduced amount of reserved memory will save heap size at the cost of extra
time consumption at connection establishment process and possible connection
establishment failure due to memory shortage.
The actual reserved memory count will be the minimum value between the maximum
connection instances and the BT_LE_CONN_RESERVED_MEMORY_COUNT.
config BT_LE_CTRL_SLV_FAST_RX_CONN_DATA_EN
bool "Enable Peripheral fast PDU reception during latency"
default n
help
When this option is enabled, the Controller continues receiving PDUs
In the next connection event instead of entering latency
After a data packet is received.
config BT_LE_CTRL_DL_ITVL_PHY_SYNC_EN
bool "Enables the automatic initiation of a data length update (Experimental)."
default n
help
When this option is enabled, the Controller automatically initiates a data length update
Using the appropriate data length parameters
When a PHY update or a connection interval update occurs.
endmenu # "Connection vendor/Optimization Options" endmenu # "Connection vendor/Optimization Options"
menu "Scanning vendor/Optimization Options" menu "Scanning vendor/Optimization Options"
@@ -105,8 +135,83 @@ menu "Advertising vendor/Optimization Options"
help help
If this option is enabled, The Controller will continue to If this option is enabled, The Controller will continue to
Send an empty PDU after sending valid connection data within an interval. Send an empty PDU after sending valid connection data within an interval.
config BT_LE_EXT_ADV_RESERVED_MEMORY_COUNT
int "The value of reserved EXT ADV memory count at initialization"
range 0 4
default 2
help
This value sets the number the Controller will allocate for extended advertisement
instances at initialization process. If more extended advertisement instances are
enabled, those memory will be dynamically allocated.
Using reduced amount of reserved memory will save heap size at the cost of extra
time consumption at advertising start process and possible advertising start failure
due to memory shortage.
The actual reserved memory count will be the minimum value between the maximum
extended advertisement instances and the BT_LE_EXT_ADV_RESERVED_MEMORY_COUNT.
endmenu # "Advertising vendor/Optimization Options" endmenu # "Advertising vendor/Optimization Options"
menu "Scheduling Priority Level Config"
choice BT_LE_ADV_SCHED_PRIO_LEVEL
prompt "The Adv scheduling priority level"
default BT_LE_ADV_SCHED_PRIO_LOW_LEVEL
help
The Adv scheduling priority level is used for arbitration when internal scheduling conflicts.
config BT_LE_ADV_SCHED_PRIO_LOW_LEVEL
bool "low priority level"
config BT_LE_ADV_SCHED_PRIO_MID_LEVEL
bool "medium priority level"
config BT_LE_ADV_SCHED_PRIO_HIGH_LEVEL
bool "high priority level"
endchoice
config BT_LE_DFT_ADV_SCHED_PRIO_LEVEL
int
default 0 if BT_LE_ADV_SCHED_PRIO_LOW_LEVEL
default 1 if BT_LE_ADV_SCHED_PRIO_MID_LEVEL
default 2 if BT_LE_ADV_SCHED_PRIO_HIGH_LEVEL
default 0
choice BT_LE_PERIODIC_ADV_SCHED_PRIO_LEVEL
prompt "The Periodic Adv scheduling priority level"
default BT_LE_PERIODIC_ADV_SCHED_PRIO_MID_LEVEL
help
The Periodic Adv scheduling priority level is used for arbitration when internal scheduling conflicts.
config BT_LE_PERIODIC_ADV_SCHED_PRIO_LOW_LEVEL
bool "low priority level"
config BT_LE_PERIODIC_ADV_SCHED_PRIO_MID_LEVEL
bool "medium priority level"
config BT_LE_PERIODIC_ADV_SCHED_PRIO_HIGH_LEVEL
bool "high priority level"
endchoice
config BT_LE_DFT_PERIODIC_ADV_SCHED_PRIO_LEVEL
int
default 0 if BT_LE_PERIODIC_ADV_SCHED_PRIO_LOW_LEVEL
default 1 if BT_LE_PERIODIC_ADV_SCHED_PRIO_MID_LEVEL
default 2 if BT_LE_PERIODIC_ADV_SCHED_PRIO_HIGH_LEVEL
default 1
choice BT_LE_SYNC_SCHED_PRIO_LEVEL
prompt "The Sync scheduling priority level"
default BT_LE_SYNC_SCHED_PRIO_MID_LEVEL
help
The SYNC scheduling priority level is used for arbitration when internal scheduling conflicts.
config BT_LE_SYNC_SCHED_PRIO_LOW_LEVEL
bool "low priority level"
config BT_LE_SYNC_SCHED_PRIO_MID_LEVEL
bool "medium priority level"
config BT_LE_SYNC_SCHED_PRIO_HIGH_LEVEL
bool "high priority level"
endchoice
config BT_LE_DFT_SYNC_SCHED_PRIO_LEVEL
int
default 0 if BT_LE_SYNC_SCHED_PRIO_LOW_LEVEL
default 1 if BT_LE_SYNC_SCHED_PRIO_MID_LEVEL
default 2 if BT_LE_SYNC_SCHED_PRIO_HIGH_LEVEL
default 1
endmenu
menuconfig BT_LE_50_FEATURE_SUPPORT menuconfig BT_LE_50_FEATURE_SUPPORT
bool "Enable BLE 5 feature" bool "Enable BLE 5 feature"
@@ -133,8 +133,8 @@ extern "C" {
#if defined(CONFIG_BT_NIMBLE_AOA_AOD) #if defined(CONFIG_BT_NIMBLE_AOA_AOD)
#define UC_BT_CTRL_LE_CTE_ENABLED (CONFIG_BT_NIMBLE_AOA_AOD) #define UC_BT_CTRL_LE_CTE_ENABLED (CONFIG_BT_NIMBLE_AOA_AOD)
#elif defined(CONFIG_BT_LE_CTE_ENABLED) #elif defined(CONFIG_BT_BLE_FEAT_CTE_EN)
#define UC_BT_CTRL_LE_CTE_ENABLED (CONFIG_BT_LE_CTE_ENABLED) #define UC_BT_CTRL_LE_CTE_ENABLED (CONFIG_BT_BLE_FEAT_CTE_EN)
#elif defined(CONFIG_BT_LE_CTE_FEATURE_ENABLED) #elif defined(CONFIG_BT_LE_CTE_FEATURE_ENABLED)
#define UC_BT_CTRL_LE_CTE_ENABLED (CONFIG_BT_LE_CTE_FEATURE_ENABLED) #define UC_BT_CTRL_LE_CTE_ENABLED (CONFIG_BT_LE_CTE_FEATURE_ENABLED)
#else #else
@@ -321,6 +321,54 @@ extern "C" {
#define UC_BT_CTRL_LE_FAST_CONN_DATA_TX_EN (0) #define UC_BT_CTRL_LE_FAST_CONN_DATA_TX_EN (0)
#endif // CONFIG_BT_LE_CTRL_FAST_CONN_DATA_TX_EN #endif // CONFIG_BT_LE_CTRL_FAST_CONN_DATA_TX_EN
#define UC_BT_CTRL_LE_SCHED_PRIO_LVL_CFG \
((CONFIG_BT_LE_DFT_SYNC_SCHED_PRIO_LEVEL << 4) | \
(CONFIG_BT_LE_DFT_PERIODIC_ADV_SCHED_PRIO_LEVEL << 2) | \
(CONFIG_BT_LE_DFT_ADV_SCHED_PRIO_LEVEL))
#if defined(CONFIG_BT_LE_EXT_ADV_RESERVED_MEMORY_COUNT)
#define UC_BT_CTRL_LE_ADV_SM_RESERVE_CNT (CONFIG_BT_LE_EXT_ADV_RESERVED_MEMORY_COUNT)
#else
#define UC_BT_CTRL_LE_ADV_SM_RESERVE_CNT (0)
#endif // CONFIG_BT_LE_EXT_ADV_RESERVED_MEMORY_COUNT
#if defined(CONFIG_BT_LE_CONN_RESERVED_MEMORY_COUNT)
#define UC_BT_CTRL_LE_CONN_SM_RESERVE_CNT (CONFIG_BT_LE_CONN_RESERVED_MEMORY_COUNT)
#else
#define UC_BT_CTRL_LE_CONN_SM_RESERVE_CNT (0)
#endif // CONFIG_BT_LE_CONN_RESERVED_MEMORY_COUNT
#if defined(CONFIG_BT_LE_CTRL_SLV_FAST_RX_CONN_DATA_EN)
#define UC_BT_CTRL_LE_SLV_FAST_RX_CONN_DATA_EN (CONFIG_BT_LE_CTRL_SLV_FAST_RX_CONN_DATA_EN)
#else
#define UC_BT_CTRL_LE_SLV_FAST_RX_CONN_DATA_EN (0)
#endif // CONFIG_BT_LE_CTRL_SLV_FAST_RX_CONN_DATA_EN
#if defined(CONFIG_BT_LE_CTRL_DL_ITVL_PHY_SYNC_EN)
#define UC_BT_CTRL_LE_DL_ITVL_PHY_SYNC_EN (CONFIG_BT_LE_CTRL_DL_ITVL_PHY_SYNC_EN)
#else
#define UC_BT_CTRL_LE_DL_ITVL_PHY_SYNC_EN (0)
#endif // CONFIG_BT_LE_CTRL_DL_ITVL_PHY_SYNC_EN
#if defined(CONFIG_BT_NIMBLE_SCAN_ALLOW_ENH_ADI_FILTER)
#define UC_BT_CTRL_LE_SCAN_ENH_ADI_FILTER (CONFIG_BT_NIMBLE_SCAN_ALLOW_ENH_ADI_FILTER)
#elif defined(CONFIG_BT_CTRL_LE_VS_ADI_FILTER_ENABLED)
#define UC_BT_CTRL_LE_SCAN_ENH_ADI_FILTER (CONFIG_BT_CTRL_LE_VS_ADI_FILTER_ENABLED)
#else
#define UC_BT_CTRL_LE_SCAN_ENH_ADI_FILTER (0)
#endif // CONFIG_BT_NIMBLE_SCAN_ALLOW_ENH_ADI_FILTER
#if defined(CONFIG_BT_LE_DFT_TX_POWER_LEVEL_DBM_EFF)
#define UC_BT_CTRL_LE_DFT_TX_POWER_LEVEL_DBM_EFF (CONFIG_BT_LE_DFT_TX_POWER_LEVEL_DBM_EFF)
#else
#define UC_BT_CTRL_LE_DFT_TX_POWER_LEVEL_DBM_EFF (9)
#endif // CONFIG_BT_LE_DFT_TX_POWER_LEVEL_DBM_EFF
#ifdef CONFIG_BT_CTRL_LE_SUPPORT_MEM_RES
#define UC_BT_CTRL_LE_SUPPORT_MEM_RES (CONFIG_BT_CTRL_LE_SUPPORT_MEM_RES)
#else
#define UC_BT_CTRL_LE_SUPPORT_MEM_RES (0)
#endif // CONFIG_BT_CTRL_LE_SUPPORT_MEM_RES
/* Unchanged configuration */ /* Unchanged configuration */
@@ -79,27 +79,53 @@ if BT_CTRL_BR_EDR_MAX_SYNC_CONN != 0
endmenu endmenu
menu "Synchronous Tx/Rx buffer numbers" menu "Synchronous Tx/Rx buffer numbers"
config BT_CTRL_BR_EDR_SYNC_TX_BUF_NB config BT_CTRL_BR_EDR_STATIC_SYNC_TX_BUF_NB
int "BR/EDR Sync(SCO/eSCO) TX buffer number" int "BR/EDR Sync(SCO/eSCO) Static TX buffer number"
default 4 if BT_CTRL_BR_EDR_MAX_SYNC_CONN = 1 default 4 if BT_CTRL_BR_EDR_MAX_SYNC_CONN = 1
default 6 if BT_CTRL_BR_EDR_MAX_SYNC_CONN = 2 default 6 if BT_CTRL_BR_EDR_MAX_SYNC_CONN = 2
default 8 if BT_CTRL_BR_EDR_MAX_SYNC_CONN = 3 default 8 if BT_CTRL_BR_EDR_MAX_SYNC_CONN = 3
range 2 4 if BT_CTRL_BR_EDR_MAX_SYNC_CONN = 1 range 0 12
range 4 8 if BT_CTRL_BR_EDR_MAX_SYNC_CONN = 2
range 6 12 if BT_CTRL_BR_EDR_MAX_SYNC_CONN = 3
help help
BR/EDR Synchronize TX buffer number of bluetooth controller. BR/EDR Static Synchronize TX buffer number of bluetooth controller.
These buffers are allocated at controller initialization, and are shared
between all of the synchronous links.
config BT_CTRL_BR_EDR_SYNC_RX_BUF_NB config BT_CTRL_BR_EDR_DYNAMIC_SYNC_TX_BUF_NB
int "BR/EDR Sync(SCO/eSCO) RX buffer number" int "BR/EDR Sync(SCO/eSCO) Dynamic TX buffer number"
default 0
range 0 12
help
BR/EDR Dynamic Synchronize TX buffer number of bluetooth controller.
These buffers are allocated during the establishment of the first synchronous link,
and freed when all of dynamic buffers are recycled after the disconnection of the
last synchronous link. Shared between all of the synchronous links.
config BT_CTRL_BR_EDR_STATIC_SYNC_RX_BUF_NB
int "BR/EDR Sync(SCO/eSCO) Static RX buffer number"
default 4 if BT_CTRL_BR_EDR_MAX_SYNC_CONN = 1 default 4 if BT_CTRL_BR_EDR_MAX_SYNC_CONN = 1
default 8 if BT_CTRL_BR_EDR_MAX_SYNC_CONN = 2 default 8 if BT_CTRL_BR_EDR_MAX_SYNC_CONN = 2
default 12 if BT_CTRL_BR_EDR_MAX_SYNC_CONN = 3 default 12 if BT_CTRL_BR_EDR_MAX_SYNC_CONN = 3
range 3 4 if BT_CTRL_BR_EDR_MAX_SYNC_CONN = 1 range 0 4 if BT_CTRL_BR_EDR_MAX_SYNC_CONN = 1
range 6 8 if BT_CTRL_BR_EDR_MAX_SYNC_CONN = 2 range 0 8 if BT_CTRL_BR_EDR_MAX_SYNC_CONN = 2
range 9 12 if BT_CTRL_BR_EDR_MAX_SYNC_CONN = 3 range 0 12 if BT_CTRL_BR_EDR_MAX_SYNC_CONN = 3
help help
BR/EDR Synchronize RX buffer number of bluetooth controller. BR/EDR Static Synchronize RX buffer number of bluetooth controller.
config BT_CTRL_BR_EDR_SYNC_RX_BUF_NB_PER_LINK
int "BR/EDR Sync(SCO/eSCO) RX buffer number per link, in average(static + dynamic)"
default 0
range 0 6
help
This option is used to control whether it is necessary to expand Sync Rx buffer pool dynamically.
If BT_CTRL_BR_EDR_STATIC_SYNC_RX_BUF_NB is lower than (BT_CTRL_BR_EDR_SYNC_RX_BUF_NB_PER_LINK * N),
Sync rx buffer pool will be expanded/contracted when the number of active synchronous links changes.
For example, if BT_CTRL_BR_EDR_MAX_SYNC_CONN is 3, BT_CTRL_BR_EDR_STATIC_SYNC_RX_BUF_NB is 6, and
BT_CTRL_BR_EDR_STATIC_SYNC_RX_BUF_NB is 4:
- Upon controller initialization, 6 static buffers will be allocated
- Upon the creation of the first sync link is created, no additional rx buffers are required
- Upon the creation of the second sync link, need to allocate another 2 rx buffers: 4 * 2 - 6
- Upon the creation of the third sync link, need to allocate another 4 rx buffers: 4 * 3 - 6 - 2
This value can be configured to 0 if you don't want use dynamic sync rx buffers.
endmenu endmenu
choice BT_CTRL_BR_EDR_SCO_DATA_PATH choice BT_CTRL_BR_EDR_SCO_DATA_PATH
@@ -143,14 +143,33 @@ extern "C" {
#define UC_BR_EDR_ESCO_3_SLOTS_SUPP (0) #define UC_BR_EDR_ESCO_3_SLOTS_SUPP (0)
#endif #endif
#if (UC_BR_EDR_CTRL_MAX_SYNC_CONN != 0) && defined(CONFIG_BT_CTRL_BR_EDR_SYNC_TX_BUF_NB) #if (UC_BR_EDR_CTRL_MAX_SYNC_CONN != 0) && defined(CONFIG_BT_CTRL_BR_EDR_STATIC_SYNC_TX_BUF_NB)
#define UC_BR_EDR_SYNC_TX_BUF_NB (CONFIG_BT_CTRL_BR_EDR_SYNC_TX_BUF_NB) #define UC_BR_EDR_STATIC_SYNC_TX_BUF_NB (CONFIG_BT_CTRL_BR_EDR_STATIC_SYNC_TX_BUF_NB)
#else #else
#define UC_BR_EDR_SYNC_TX_BUF_NB (0) #define UC_BR_EDR_STATIC_SYNC_TX_BUF_NB (0)
#endif #endif
#if (UC_BR_EDR_CTRL_MAX_SYNC_CONN != 0) && defined(CONFIG_BT_CTRL_BR_EDR_SYNC_RX_BUF_NB) #if (UC_BR_EDR_CTRL_MAX_SYNC_CONN != 0) && defined(CONFIG_BT_CTRL_BR_EDR_DYNAMIC_SYNC_TX_BUF_NB)
#define UC_BR_EDR_SYNC_RX_BUF_NB (CONFIG_BT_CTRL_BR_EDR_SYNC_RX_BUF_NB) #define UC_BR_EDR_DYNAMIC_SYNC_TX_BUF_NB (CONFIG_BT_CTRL_BR_EDR_DYNAMIC_SYNC_TX_BUF_NB)
#else
#define UC_BR_EDR_DYNAMIC_SYNC_TX_BUF_NB (0)
#endif
#if (UC_BR_EDR_CTRL_MAX_SYNC_CONN != 0) && defined(CONFIG_BT_CTRL_BR_EDR_STATIC_SYNC_RX_BUF_NB)
#define UC_BR_EDR_STATIC_SYNC_RX_BUF_NB (CONFIG_BT_CTRL_BR_EDR_STATIC_SYNC_RX_BUF_NB)
#else
#define UC_BR_EDR_STATIC_SYNC_RX_BUF_NB (0)
#endif
#if (UC_BR_EDR_CTRL_MAX_SYNC_CONN != 0) && defined(CONFIG_BT_CTRL_BR_EDR_SYNC_RX_BUF_NB_PER_LINK)
#define UC_BR_EDR_SYNC_RX_BUF_NB_PER_LINK (CONFIG_BT_CTRL_BR_EDR_SYNC_RX_BUF_NB_PER_LINK)
#else
#define UC_BR_EDR_SYNC_RX_BUF_NB_PER_LINK (0)
#endif
#if (UC_BR_EDR_CTRL_MAX_SYNC_CONN != 0)
#define UC_BR_EDR_SYNC_RX_BUF_NB ((UC_BR_EDR_STATIC_SYNC_RX_BUF_NB > (UC_BR_EDR_CTRL_MAX_SYNC_CONN * UC_BR_EDR_SYNC_RX_BUF_NB_PER_LINK)) ? \
(UC_BR_EDR_STATIC_SYNC_RX_BUF_NB) : (UC_BR_EDR_CTRL_MAX_SYNC_CONN * UC_BR_EDR_SYNC_RX_BUF_NB_PER_LINK))
#else #else
#define UC_BR_EDR_SYNC_RX_BUF_NB (0) #define UC_BR_EDR_SYNC_RX_BUF_NB (0)
#endif #endif
@@ -1,5 +1,5 @@
/* /*
* SPDX-FileCopyrightText: 2015-2025 Espressif Systems (Shanghai) CO LTD * SPDX-FileCopyrightText: 2015-2026 Espressif Systems (Shanghai) CO LTD
* *
* SPDX-License-Identifier: Apache-2.0 * SPDX-License-Identifier: Apache-2.0
*/ */
@@ -31,11 +31,10 @@ enum btdm_osal_error {
BTDM_OSAL_ERROR = 12, /* Generic Error */ BTDM_OSAL_ERROR = 12, /* Generic Error */
}; };
enum btdm_osal_malloc_flag { #define BTDM_OSAL_MALLOC_F_ALLOW_SPIRAM (1 << 0)
BTDM_OSAL_MALLOC_F_INTERNAL = 0, #define BTDM_OSAL_MALLOC_F_BLE (1 << 8)
BTDM_OSAL_MALLOC_F_NORMAL, #define BTDM_OSAL_MALLOC_F_BREDR (1 << 9)
}; typedef uint32_t btdm_osal_malloc_flag_t;
typedef enum btdm_osal_malloc_flag btdm_osal_malloc_flag_t;
typedef struct { typedef struct {
uint16_t evt_count; uint16_t evt_count;
@@ -125,9 +125,14 @@ extern "C" {
#define UC_BT_CTRL_MEMPOOL_BLOCK_REUSED (0) #define UC_BT_CTRL_MEMPOOL_BLOCK_REUSED (0)
#endif #endif
#define UC_BT_CTRL_MEMPOOL_CHECK (0) #define UC_BT_CTRL_MEMPOOL_CHECK (0)
#if defined(CONFIG_BT_CTRL_ALLOW_MALLOC_FROM_SPIRAM) && defined(CONFIG_SPIRAM)
#define UC_BT_CTRL_ALLOW_MALLOC_FROM_SPIRAM (CONFIG_BT_CTRL_ALLOW_MALLOC_FROM_SPIRAM && CONFIG_SPIRAM)
#else
#define UC_BT_CTRL_ALLOW_MALLOC_FROM_SPIRAM (0)
#endif
#ifdef __cplusplus #ifdef __cplusplus
} }
@@ -5,6 +5,7 @@
*/ */
#include <stdint.h> #include <stdint.h>
#include <stdbool.h> #include <stdbool.h>
#include "btdm_user_cfg.h"
#include "btdm_osal.h" #include "btdm_osal.h"
#include "sdkconfig.h" #include "sdkconfig.h"
#include "assert.h" #include "assert.h"
@@ -50,8 +51,8 @@ typedef enum {
*************************************************************************************************** ***************************************************************************************************
*/ */
#if CONFIG_BT_LE_CONTROLLER_LOG_ENABLED #if CONFIG_BT_LE_CONTROLLER_LOG_ENABLED
void api_base_ll_dumpDebugStatus(void);
void r_btdm_sched_list_details_dump(void); void r_btdm_sched_list_details_dump(void);
void api_base_ll_dumpDebugStatus(void);
void r_ble_phy_hw_state_dump(uint8_t); void r_ble_phy_hw_state_dump(uint8_t);
void esp_ble_controller_log_dump_all(bool); void esp_ble_controller_log_dump_all(bool);
void esp_panic_handler_feed_wdts(void); void esp_panic_handler_feed_wdts(void);
@@ -64,7 +65,6 @@ void r_ble_log_deinit_simple(void);
void r_ble_log_async_select_dump_buffers(uint8_t buffers); void r_ble_log_async_select_dump_buffers(uint8_t buffers);
int r_ble_log_ctrl_level_and_mod(uint8_t log_level, uint32_t mod_switch); int r_ble_log_ctrl_level_and_mod(uint8_t log_level, uint32_t mod_switch);
int r_ble_ctrl_mod_type(uint16_t mod, uint32_t mod_type_switch); int r_ble_ctrl_mod_type(uint16_t mod, uint32_t mod_type_switch);
#endif // CONFIG_BT_LE_CONTROLLER_LOG_ENABLED #endif // CONFIG_BT_LE_CONTROLLER_LOG_ENABLED
/* /*
@@ -364,6 +364,15 @@ void esp_bt_controller_log_deinit(void)
#endif /* CONFIG_BT_LE_CONTROLLER_LOG_MODE_BLE_LOG_V2 */ #endif /* CONFIG_BT_LE_CONTROLLER_LOG_MODE_BLE_LOG_V2 */
#endif // CONFIG_BT_LE_CONTROLLER_LOG_ENABLED #endif // CONFIG_BT_LE_CONTROLLER_LOG_ENABLED
static void IRAM_ATTR
btdm_log_exception_dump(void)
{
#if CONFIG_BT_LE_CONTROLLER_LOG_ENABLED
api_base_ll_dumpDebugStatus();
r_btdm_sched_list_details_dump();
esp_ble_controller_log_dump_all(true);
#endif // CONFIG_BT_LE_CONTROLLER_LOG_ENABLED
}
/* /*
*************************************************************************************************** ***************************************************************************************************
@@ -434,27 +443,53 @@ wr_btdm_log_internal_hex(uint32_t p0, uint32_t p1, uint32_t p2)
} }
void IRAM_ATTR void IRAM_ATTR
wr_btdm_log_raw_export(uint16_t p0, uint32_t p1, uint32_t p2) wr_btdm_log_raw_export(uint16_t p0, uint8_t * addr, uint32_t len)
{ {
#if CONFIG_BT_LE_CONTROLLER_LOG_ENABLED esp_rom_printf("ID: 0x%04x, params: ", p0);
extern void r_ble_log_raw_export(uint16_t p0, uint32_t p1, uint32_t p2); for (int i = 0; i < len; i++) {
r_ble_log_raw_export(p0, p1, p2); esp_rom_printf("0x%02x, ", addr[i]);
#endif // CONFIG_BT_LE_CONTROLLER_LOG_ENABLED }
esp_rom_printf("\n");
} }
void IRAM_ATTR void IRAM_ATTR
wr_btdm_assert(const char *file, int line, int p0, int p1, uint8_t type) wr_btdm_assert(const char *file, int line, int p0, int p1)
{ {
#if CONFIG_BT_LE_CONTROLLER_LOG_ENABLED btdm_log_exception_dump();
api_base_ll_dumpDebugStatus();
r_btdm_sched_list_details_dump();
esp_ble_controller_log_dump_all(true);
#endif // CONFIG_BT_LE_CONTROLLER_LOG_ENABLED
esp_rom_printf("assert %s,%d, param:0x%x,0x%x\n", file, line, p0, p1); esp_rom_printf("assert %s,%d, param:0x%x,0x%x\n", file, line, p0, p1);
assert(0); assert(0);
} }
void IRAM_ATTR
wr_btdm_compressed_assert_x0(uint32_t cond, uint32_t id)
{
if (!cond) {
btdm_log_exception_dump();
esp_rom_printf("bt assertion id:%d\n", id);
assert(0);
}
}
void IRAM_ATTR
wr_btdm_compressed_assert_x1(uint32_t cond, uint32_t id, uint32_t p1)
{
if (!cond) {
btdm_log_exception_dump();
esp_rom_printf("bt assertion id:%d, params: 0x%x\n", id, p1);
assert(0);
}
}
void IRAM_ATTR
wr_btdm_compressed_assert_x2(uint32_t cond, uint32_t id, uint32_t p1, uint32_t p2)
{
if (!cond) {
btdm_log_exception_dump();
esp_rom_printf("bt assertion id:%d, params: 0x%x, 0x%x\n", id, p1, p2);
assert(0);
}
}
#if CONFIG_BT_LE_CONTROLLER_LOG_WRAP_PANIC_HANDLER_ENABLE #if CONFIG_BT_LE_CONTROLLER_LOG_WRAP_PANIC_HANDLER_ENABLE
void __real_esp_panic_handler(void *info); void __real_esp_panic_handler(void *info);
void __wrap_esp_panic_handler (void *info) void __wrap_esp_panic_handler (void *info)
@@ -94,14 +94,22 @@ static uint8_t s_btdm_lp_modem_clk_en = 0;
static void static void
btdm_lp_rtc_slow_clk_select(uint8_t slow_clk_src) btdm_lp_rtc_slow_clk_select(uint8_t slow_clk_src)
{ {
/* Select slow clock source for BT momdule */ /* Select slow clock source for BT momdule */
switch (slow_clk_src) { switch (slow_clk_src) {
case MODEM_CLOCK_LPCLK_SRC_MAIN_XTAL: case MODEM_CLOCK_LPCLK_SRC_MAIN_XTAL:
ESP_LOGI(BTDM_LOG_TAG, "Using main XTAL as clock source"); ESP_LOGI(BTDM_LOG_TAG, "Using main XTAL as clock source");
modem_clock_select_lp_clock_source(PERIPH_BT_MODULE, slow_clk_src, (CONFIG_XTAL_FREQ * 1000000 / s_bt_xtal_lpclk_freq - 1)); modem_clock_select_lp_clock_source(
PERIPH_BT_MODULE, slow_clk_src,
(CONFIG_XTAL_FREQ * 1000000 / s_bt_xtal_lpclk_freq - 1));
break; break;
case MODEM_CLOCK_LPCLK_SRC_RC_SLOW: case MODEM_CLOCK_LPCLK_SRC_RC_SLOW:
ESP_LOGW(BTDM_LOG_TAG, "Using 136 kHz RC as clock source, use with caution as it may not maintain ACL or Sync process due to low clock accuracy!"); #if UC_BT_CTRL_SLEEP_ENABLE
ESP_LOGW(BTDM_LOG_TAG, "Using 136 kHz RC as clock source, use with caution as it may "
"not maintain ACL or Sync process due to low clock accuracy!");
#else
ESP_LOGI(BTDM_LOG_TAG, "Using 136 kHz RC as clock source");
#endif // UC_BT_CTRL_SLEEP_ENABLE
modem_clock_select_lp_clock_source(PERIPH_BT_MODULE, slow_clk_src, (5 - 1)); modem_clock_select_lp_clock_source(PERIPH_BT_MODULE, slow_clk_src, (5 - 1));
break; break;
case MODEM_CLOCK_LPCLK_SRC_XTAL32K: case MODEM_CLOCK_LPCLK_SRC_XTAL32K:
@@ -109,14 +117,27 @@ btdm_lp_rtc_slow_clk_select(uint8_t slow_clk_src)
modem_clock_select_lp_clock_source(PERIPH_BT_MODULE, slow_clk_src, (1 - 1)); modem_clock_select_lp_clock_source(PERIPH_BT_MODULE, slow_clk_src, (1 - 1));
break; break;
case MODEM_CLOCK_LPCLK_SRC_RC32K: case MODEM_CLOCK_LPCLK_SRC_RC32K:
ESP_LOGI(BTDM_LOG_TAG, "Using 32 kHz RC as clock source, can only run legacy ADV or SCAN due to low clock accuracy!"); #if UC_BT_CTRL_SLEEP_ENABLE
ESP_LOGI(BTDM_LOG_TAG, "Using 32 kHz RC as clock source, can only run legacy ADV or "
"SCAN due to low clock accuracy!");
#else
ESP_LOGI(BTDM_LOG_TAG, "Using 32 kHz RC as clock source");
#endif // UC_BT_CTRL_SLEEP_ENABLE
modem_clock_select_lp_clock_source(PERIPH_BT_MODULE, slow_clk_src, (1 - 1)); modem_clock_select_lp_clock_source(PERIPH_BT_MODULE, slow_clk_src, (1 - 1));
break; break;
case MODEM_CLOCK_LPCLK_SRC_EXT32K: case MODEM_CLOCK_LPCLK_SRC_EXT32K:
ESP_LOGI(BTDM_LOG_TAG, "Using 32 kHz oscillator as clock source, can only run legacy ADV or SCAN due to low clock accuracy!"); #if UC_BT_CTRL_SLEEP_ENABLE
ESP_LOGI(BTDM_LOG_TAG, "Using 32 kHz oscillator as clock source, can only run legacy "
"ADV or SCAN due to low clock accuracy!");
#else
ESP_LOGI(BTDM_LOG_TAG, "Using 32 kHz oscillator as clock source");
#endif // UC_BT_CTRL_SLEEP_ENABLE
modem_clock_select_lp_clock_source(PERIPH_BT_MODULE, slow_clk_src, (1 - 1)); modem_clock_select_lp_clock_source(PERIPH_BT_MODULE, slow_clk_src, (1 - 1));
break; break;
default: default:
ESP_LOGE(BTDM_LOG_TAG, "Unsupported clock source");
assert(0);
break;
} }
} }
@@ -337,19 +358,19 @@ btdm_lp_enable_clock(esp_bt_ctrl_btdm_config_t *cfg)
{ {
if (!s_btdm_lp_modem_clk_en) { if (!s_btdm_lp_modem_clk_en) {
modem_clock_module_enable(PERIPH_BT_MODULE); modem_clock_module_enable(PERIPH_BT_MODULE);
modem_clock_module_enable(PERIPH_BT_APB_MODULE);
modem_clock_module_mac_reset(PERIPH_BT_MODULE);
btdm_lp_timer_clk_init(cfg);
s_btdm_lp_modem_clk_en = 1; s_btdm_lp_modem_clk_en = 1;
} }
modem_clock_module_enable(PERIPH_BT_APB_MODULE);
modem_clock_module_mac_reset(PERIPH_BT_MODULE);
btdm_lp_timer_clk_init(cfg);
} }
void void
btdm_lp_disable_clock(void) btdm_lp_disable_clock(void)
{ {
btdm_lp_timer_clk_deinit();
modem_clock_module_disable(PERIPH_BT_APB_MODULE);
if (s_btdm_lp_modem_clk_en) { if (s_btdm_lp_modem_clk_en) {
btdm_lp_timer_clk_deinit();
modem_clock_module_disable(PERIPH_BT_APB_MODULE);
modem_clock_module_disable(PERIPH_BT_MODULE); modem_clock_module_disable(PERIPH_BT_MODULE);
s_btdm_lp_modem_clk_en = 0; s_btdm_lp_modem_clk_en = 0;
} }
@@ -393,7 +393,7 @@ e_btdm_memblock_get(struct btdm_mempool *mp)
/* Allocate outside critical section to avoid holding lock too long */ /* Allocate outside critical section to avoid holding lock too long */
if (need_alloc) { if (need_alloc) {
alloc_size = BTDM_MEMPOOL_TRUE_BLOCK_SIZE(mp); alloc_size = BTDM_MEMPOOL_TRUE_BLOCK_SIZE(mp);
allocated_block = btdm_osal_malloc(alloc_size, BTDM_OSAL_MALLOC_F_INTERNAL); allocated_block = btdm_osal_malloc(alloc_size, 0);
if (allocated_block) { if (allocated_block) {
/* Save mempool pointer for block */ /* Save mempool pointer for block */
@@ -286,7 +286,7 @@ wr_btdm_osal_event_init(struct btdm_osal_event *ev, btdm_osal_event_fn *fn, void
#if BTDM_OSAL_DYNAMIC_ALLOC #if BTDM_OSAL_DYNAMIC_ALLOC
if (!ev->event) { if (!ev->event) {
ev->event = ev->event =
btdm_osal_malloc(sizeof(struct btdm_osal_event_freertos), BTDM_OSAL_MALLOC_F_INTERNAL); btdm_osal_malloc(sizeof(struct btdm_osal_event_freertos), 0);
} }
#endif // BTDM_OSAL_DYNAMIC_ALLOC #endif // BTDM_OSAL_DYNAMIC_ALLOC
@@ -591,7 +591,7 @@ wr_btdm_osal_callout_init(struct btdm_osal_callout *co, struct btdm_osal_eventq
#if BTDM_OSAL_DYNAMIC_ALLOC #if BTDM_OSAL_DYNAMIC_ALLOC
if (!co->co) { if (!co->co) {
co->co = btdm_osal_malloc(sizeof(struct btdm_osal_callout_freertos), co->co = btdm_osal_malloc(sizeof(struct btdm_osal_callout_freertos),
BTDM_OSAL_MALLOC_F_INTERNAL); 0);
callout = (struct btdm_osal_callout_freertos *)co->co; callout = (struct btdm_osal_callout_freertos *)co->co;
if (callout) { if (callout) {
memset(callout, 0, sizeof(struct btdm_osal_callout_freertos)); memset(callout, 0, sizeof(struct btdm_osal_callout_freertos));
@@ -1038,10 +1038,13 @@ wr_btdm_osal_malloc(uint32_t size, btdm_osal_malloc_flag_t flags)
{ {
void *ptr; void *ptr;
if (flags == BTDM_OSAL_MALLOC_F_INTERNAL) { #if UC_BT_CTRL_ALLOW_MALLOC_FROM_SPIRAM
if (flags & BTDM_OSAL_MALLOC_F_ALLOW_SPIRAM) {
ptr = heap_caps_malloc(size, MALLOC_CAP_SPIRAM | MALLOC_CAP_8BIT);
} else
#endif // UC_BT_CTRL_ALLOW_MALLOC_FROM_SPIRAM
{
ptr = heap_caps_malloc(size, MALLOC_CAP_INTERNAL | MALLOC_CAP_8BIT | MALLOC_CAP_DMA); ptr = heap_caps_malloc(size, MALLOC_CAP_INTERNAL | MALLOC_CAP_8BIT | MALLOC_CAP_DMA);
} else {
ptr = heap_caps_malloc(size, MALLOC_CAP_8BIT);
} }
return ptr; return ptr;
@@ -1060,7 +1063,7 @@ wr_btdm_osal_mmgmt_block_malloc(uint32_t size)
uint32_t *addr; uint32_t *addr;
// TODO: Only ble controller uses this function // TODO: Only ble controller uses this function
addr = btdm_osal_malloc(size + 4, BTDM_OSAL_MALLOC_F_INTERNAL); addr = btdm_osal_malloc(size + 4, 0);
if (!addr) { if (!addr) {
return NULL; return NULL;
} }
@@ -1150,7 +1153,7 @@ btdm_osal_elem_mempool_init(btdm_osal_elem_num_t *elem_num)
s_btdm_osal_ev_buf = btdm_osal_malloc( s_btdm_osal_ev_buf = btdm_osal_malloc(
BTDM_MEMPOOL_SIZE(elem_num->evt_count, sizeof(struct btdm_osal_event_freertos)) * BTDM_MEMPOOL_SIZE(elem_num->evt_count, sizeof(struct btdm_osal_event_freertos)) *
sizeof(btdm_membuf_t), sizeof(btdm_membuf_t),
BTDM_OSAL_MALLOC_F_INTERNAL); 0);
if (!s_btdm_osal_ev_buf) { if (!s_btdm_osal_ev_buf) {
return -1; return -1;
} }
@@ -1166,7 +1169,7 @@ btdm_osal_elem_mempool_init(btdm_osal_elem_num_t *elem_num)
s_btdm_osal_co_buf = btdm_osal_malloc( s_btdm_osal_co_buf = btdm_osal_malloc(
BTDM_MEMPOOL_SIZE(elem_num->co_count, sizeof(struct btdm_osal_callout_freertos)) * BTDM_MEMPOOL_SIZE(elem_num->co_count, sizeof(struct btdm_osal_callout_freertos)) *
sizeof(btdm_membuf_t), sizeof(btdm_membuf_t),
BTDM_OSAL_MALLOC_F_INTERNAL); 0);
if (!s_btdm_osal_co_buf) { if (!s_btdm_osal_co_buf) {
return -3; return -3;
} }
@@ -25,6 +25,7 @@
#include <assert.h> #include <assert.h>
#include <stdint.h> #include <stdint.h>
#include <string.h> #include <string.h>
#include "esp_log.h"
#include "esp_hci_internal.h" #include "esp_hci_internal.h"
#include "common/hci_driver_h4.h" #include "common/hci_driver_h4.h"
#include "common/hci_driver_util.h" #include "common/hci_driver_util.h"
@@ -45,6 +46,8 @@
#define HCI_H4_SM_W4_PAYLOAD 2 #define HCI_H4_SM_W4_PAYLOAD 2
#define HCI_H4_SM_COMPLETED 3 #define HCI_H4_SM_COMPLETED 3
#define TAG "HCI_H4"
struct hci_h4_input_buffer { struct hci_h4_input_buffer {
const uint8_t *buf; const uint8_t *buf;
uint16_t len; uint16_t len;
@@ -166,10 +169,27 @@ hci_h4_sm_w4_header(struct hci_h4_sm *h4sm, struct hci_h4_input_buffer *ib)
conn_handle = btdm_get_le16(&h4sm->hdr[0]) & HCI_INTERNAL_CONN_MASK; conn_handle = btdm_get_le16(&h4sm->hdr[0]) & HCI_INTERNAL_CONN_MASK;
h4sm->exp_len = h4sm->hdr[2] + 3; h4sm->exp_len = h4sm->hdr[2] + 3;
h4sm->pkt = h4sm->allocs->sync(conn_handle); h4sm->pkt = h4sm->allocs->sync(conn_handle);
if (!h4sm->pkt) { if (h4sm->pkt != NULL) {
return -1; memcpy(h4sm->pkt->data, h4sm->hdr, h4sm->len);
} }
memcpy(h4sm->pkt->data, h4sm->hdr, h4sm->len); /**
* According to the Bluetooth Core Specification, SCO flow control
* in the H2C direction is disabled by default. Therefore, occasional
* SCO buffer allocation failures are expected to be tolerated, in
* which case the packet should be discarded directly.
*
* When flow control is enabled, the controller guarantees that the
* number of SCO buffers matches the value reported by the response
* of "HCI Read Buffer Size" command. Therefore, allocation failures
* indicate incorrect credit management by the host, and no "Number
* Of Completed Packets" event is required.
*
* A corner case may occur during SCO disconnection, where packets
* continue to arrive before the "Disconnect Complete" event is
* received. In this case, the host is expected to reclaim the
* corresponding credits when handling the disconnect event, so no
* "Number Of Completed Packets" event is needed either.
*/
break; break;
#endif // UC_BT_CTRL_BR_EDR_IS_ENABLE #endif // UC_BT_CTRL_BR_EDR_IS_ENABLE
#if !CONFIG_BT_CONTROLLER_ENABLED #if !CONFIG_BT_CONTROLLER_ENABLED
@@ -5,6 +5,7 @@
*/ */
#include <string.h> #include <string.h>
#include <stdio.h> #include <stdio.h>
#include "esp_log.h"
#include "esp_hci_driver.h" #include "esp_hci_driver.h"
#include "esp_hci_internal.h" #include "esp_hci_internal.h"
#include "esp_bt.h" #include "esp_bt.h"
@@ -12,6 +13,8 @@
#include "ble_mbuf.h" #include "ble_mbuf.h"
#endif #endif
#define TAG "HCI_DRV_STD"
typedef struct { typedef struct {
hci_driver_forward_fn *forward_cb; hci_driver_forward_fn *forward_cb;
const esp_vhci_host_callback_t *host_recv_cb; const esp_vhci_host_callback_t *host_recv_cb;
@@ -178,6 +181,7 @@ hci_driver_vhci_controller_tx(hci_driver_data_type_t data_type, uint8_t *data, u
static int static int
hci_driver_vhci_host_tx(hci_driver_data_type_t data_type, uint8_t *data, uint32_t length) hci_driver_vhci_host_tx(hci_driver_data_type_t data_type, uint8_t *data, uint32_t length)
{ {
int rc = 0;
uint16_t pkt_len; uint16_t pkt_len;
uint16_t conn_handle; uint16_t conn_handle;
uint16_t handle_flags = 0; uint16_t handle_flags = 0;
@@ -223,10 +227,19 @@ hci_driver_vhci_host_tx(hci_driver_data_type_t data_type, uint8_t *data, uint32_
case HCI_DRIVER_TYPE_SYNC: case HCI_DRIVER_TYPE_SYNC:
conn_handle = btdm_get_le16(&data[1]) & HCI_INTERNAL_CONN_MASK; conn_handle = btdm_get_le16(&data[1]) & HCI_INTERNAL_CONN_MASK;
pkt = bredr_hci_trans_sync_rx_buf_alloc(conn_handle); pkt = bredr_hci_trans_sync_rx_buf_alloc(conn_handle);
assert(pkt); if (pkt != NULL) {
memcpy(pkt->data, &data[1], pkt_len); memcpy(pkt->data, &data[1], pkt_len);
data = (uint8_t *)pkt; } else {
#if (UC_BR_EDR_DYNAMIC_SYNC_TX_BUF_NB != 0)
pkt_len = 0;
ESP_LOGI(TAG, "hci: sync h2c no mem");
rc = -1;
#else
assert(0);
#endif
}
data_source = HCI_DRIVER_BREDR_SYNC; data_source = HCI_DRIVER_BREDR_SYNC;
data = (uint8_t *)pkt;
break; break;
#endif // UC_BT_CTRL_BR_EDR_IS_ENABLE #endif // UC_BT_CTRL_BR_EDR_IS_ENABLE
case HCI_DRIVER_TYPE_ISO: case HCI_DRIVER_TYPE_ISO:
@@ -237,11 +250,14 @@ hci_driver_vhci_host_tx(hci_driver_data_type_t data_type, uint8_t *data, uint32_
break; break;
} }
if (pkt) { if (rc == 0) {
pkt->length = pkt_len; if (pkt) {
pkt->length = pkt_len;
}
rc = s_hci_driver_vhci_env.forward_cb(data_type, data, pkt_len, HCI_DRIVER_DIR_H2C, data_source);
} }
return s_hci_driver_vhci_env.forward_cb(data_type, data, pkt_len, HCI_DRIVER_DIR_H2C, data_source); return rc;
} }
static int static int