fix(bt): supported allocate memroy from spiram for ESP32-S31 and ESP32-H4

This commit is contained in:
ShenWeilong
2026-09-10 20:53:10 +08:00
parent 2dc25a7bbe
commit 91234cb3f2
4 changed files with 68 additions and 36 deletions
+32 -16
View File
@@ -8,6 +8,7 @@
#include <stdint.h> #include <stdint.h>
#include <stdbool.h> #include <stdbool.h>
#include <string.h>
#include "btdm_user_cfg.h" #include "btdm_user_cfg.h"
#if UC_BT_CTRL_BLE_IS_ENABLE #if UC_BT_CTRL_BLE_IS_ENABLE
#include "ble_user_cfg.h" #include "ble_user_cfg.h"
@@ -103,6 +104,7 @@ extern int brk_sym_pawrBcast_02YCihGkfXcpLt0zh1uM(void *param);
extern int brk_sym_pawrBcast_0PNup0d8oI1288mfULNW(void *param); extern int brk_sym_pawrBcast_0PNup0d8oI1288mfULNW(void *param);
extern int brk_sym_pawrBcast_0Wq1DOQE0eOWEGV2grxM(void *param); extern int brk_sym_pawrBcast_0Wq1DOQE0eOWEGV2grxM(void *param);
extern int brk_sym_pawrBcast_1y9l4P0a3qWUSydU3cDY(void *param); extern int brk_sym_pawrBcast_1y9l4P0a3qWUSydU3cDY(void *param);
extern int brk_sym_pawrBcast_3Fe1AkLrn3EG25GkGfL4(void *param);
extern int brk_sym_pawrBcast_7jK56jlcfafMtoQgLg6t(void *param); extern int brk_sym_pawrBcast_7jK56jlcfafMtoQgLg6t(void *param);
extern int brk_sym_pawrBcast_7qGF1F9weQ363Ml7Gj0n(void *param); extern int brk_sym_pawrBcast_7qGF1F9weQ363Ml7Gj0n(void *param);
extern int brk_sym_pawrBcast_JHmbFJCpV155hIYyDVQ8(void *param); extern int brk_sym_pawrBcast_JHmbFJCpV155hIYyDVQ8(void *param);
@@ -114,6 +116,7 @@ extern int brk_sym_pawrBcast_SB1LBCzybPoDd0XYyLM8(void *param);
extern int brk_sym_pawrBcast_WNd7Y6n56cZrTlhBjFRU(void *param); extern int brk_sym_pawrBcast_WNd7Y6n56cZrTlhBjFRU(void *param);
extern int brk_sym_pawrBcast_eBH7HrPT8y2Fj9382el3(void *param); extern int brk_sym_pawrBcast_eBH7HrPT8y2Fj9382el3(void *param);
extern int brk_sym_pawrBcast_g6t1IjxRbcv5GUq1uXIA(void *param); extern int brk_sym_pawrBcast_g6t1IjxRbcv5GUq1uXIA(void *param);
extern int brk_sym_pawrBcast_ivWxQ61JhFEBhkuxoZhM(void *param);
extern int brk_sym_pawrBcast_lk2Wpy4u04ukjtC7Ijcb(void *param); extern int brk_sym_pawrBcast_lk2Wpy4u04ukjtC7Ijcb(void *param);
extern int brk_sym_pawrBcast_on08yxBjym4I0iV3tlPo(void *param); extern int brk_sym_pawrBcast_on08yxBjym4I0iV3tlPo(void *param);
extern int brk_sym_pawrBcast_sSbQFGKMJszbA895ddLO(void *param); extern int brk_sym_pawrBcast_sSbQFGKMJszbA895ddLO(void *param);
@@ -270,6 +273,12 @@ const void * const _adv_linear_broker_flash[] = BTDM_BROKER_NODE_DEF_FLASH(
[13] = BTDM_BROKER_ENTRY_DEF_FLASH( [13] = BTDM_BROKER_ENTRY_DEF_FLASH(
brk_sym_pawrBcast_WNd7Y6n56cZrTlhBjFRU, brk_sym_pawrBcast_WNd7Y6n56cZrTlhBjFRU,
), ),
[14] = BTDM_BROKER_ENTRY_DEF_FLASH(
brk_sym_pawrBcast_3Fe1AkLrn3EG25GkGfL4,
),
[15] = BTDM_BROKER_ENTRY_DEF_FLASH(
brk_sym_pawrBcast_ivWxQ61JhFEBhkuxoZhM,
),
#endif /* UC_BLE_CTRL_PAWR_BCAST_SUPPORTED */ #endif /* UC_BLE_CTRL_PAWR_BCAST_SUPPORTED */
); );
#endif /* UC_BT_CTRL_BLE_IS_ENABLE */ #endif /* UC_BT_CTRL_BLE_IS_ENABLE */
@@ -735,65 +744,72 @@ int
btdm_broker_init(void) btdm_broker_init(void)
{ {
#if UC_BT_CTRL_BLE_IS_ENABLE #if UC_BT_CTRL_BLE_IS_ENABLE
if (r_btdm_broker_linear_selfcheck(_adv_linear_broker_flash, false)) { extern const char *ble_controller_get_compile_version(void);
if (memcmp(ble_controller_get_compile_version(), "4c3f1e9", 7) != 0) {
return -1; return -1;
} }
#endif /* UC_BT_CTRL_BLE_IS_ENABLE */ #endif /* UC_BT_CTRL_BLE_IS_ENABLE */
#if UC_BT_CTRL_BLE_IS_ENABLE #if UC_BT_CTRL_BLE_IS_ENABLE
if (r_btdm_broker_linear_selfcheck(_base_linear_broker_flash, false)) { if (r_btdm_broker_linear_selfcheck(_adv_linear_broker_flash, false)) {
return -2; return -2;
} }
#endif /* UC_BT_CTRL_BLE_IS_ENABLE */ #endif /* UC_BT_CTRL_BLE_IS_ENABLE */
if (r_btdm_broker_linear_selfcheck(_btdm_hal_linear_broker_ram, true)) { #if UC_BT_CTRL_BLE_IS_ENABLE
if (r_btdm_broker_linear_selfcheck(_base_linear_broker_flash, false)) {
return -3; return -3;
} }
#endif /* UC_BT_CTRL_BLE_IS_ENABLE */
if (r_btdm_broker_linear_selfcheck(_btdm_hci_linear_broker_flash, false)) { if (r_btdm_broker_linear_selfcheck(_btdm_hal_linear_broker_ram, true)) {
return -4; return -4;
} }
if (r_btdm_broker_linear_selfcheck(_btdm_sched_linear_broker_flash, false)) { if (r_btdm_broker_linear_selfcheck(_btdm_hci_linear_broker_flash, false)) {
return -5; return -5;
} }
if (r_btdm_broker_linear_selfcheck(_btdm_sched_linear_broker_ram, true)) { if (r_btdm_broker_linear_selfcheck(_btdm_sched_linear_broker_flash, false)) {
return -6; return -6;
} }
if (r_btdm_broker_linear_selfcheck(_btdm_sleep_linear_broker_flash, false)) { if (r_btdm_broker_linear_selfcheck(_btdm_sched_linear_broker_ram, true)) {
return -7; return -7;
} }
if (r_btdm_broker_linear_selfcheck(_btdm_task_linear_broker_flash, false)) { if (r_btdm_broker_linear_selfcheck(_btdm_sleep_linear_broker_flash, false)) {
return -8; return -8;
} }
if (r_btdm_broker_linear_selfcheck(_btdm_task_linear_broker_flash, false)) {
return -9;
}
#if UC_BT_CTRL_BLE_IS_ENABLE && UC_BLE_CTRL_CONN_ENABLED #if UC_BT_CTRL_BLE_IS_ENABLE && UC_BLE_CTRL_CONN_ENABLED
if (r_btdm_broker_linear_selfcheck(_conn_linear_broker_flash, false)) { if (r_btdm_broker_linear_selfcheck(_conn_linear_broker_flash, false)) {
return -9; return -10;
} }
#endif /* UC_BT_CTRL_BLE_IS_ENABLE && UC_BLE_CTRL_CONN_ENABLED */ #endif /* UC_BT_CTRL_BLE_IS_ENABLE && UC_BLE_CTRL_CONN_ENABLED */
#if UC_BT_CTRL_BLE_IS_ENABLE #if UC_BT_CTRL_BLE_IS_ENABLE
if (r_btdm_broker_linear_selfcheck(_nrtIsr_linear_broker_flash, false)) { if (r_btdm_broker_linear_selfcheck(_nrtIsr_linear_broker_flash, false)) {
return -10;
}
#endif /* UC_BT_CTRL_BLE_IS_ENABLE */
#if UC_BT_CTRL_BLE_IS_ENABLE
if (r_btdm_broker_linear_selfcheck(_perAdv_linear_broker_flash, false)) {
return -11; return -11;
} }
#endif /* UC_BT_CTRL_BLE_IS_ENABLE */ #endif /* UC_BT_CTRL_BLE_IS_ENABLE */
#if UC_BT_CTRL_BLE_IS_ENABLE #if UC_BT_CTRL_BLE_IS_ENABLE
if (r_btdm_broker_linear_selfcheck(_sync_linear_broker_flash, false)) { if (r_btdm_broker_linear_selfcheck(_perAdv_linear_broker_flash, false)) {
return -12; return -12;
} }
#endif /* UC_BT_CTRL_BLE_IS_ENABLE */ #endif /* UC_BT_CTRL_BLE_IS_ENABLE */
#if UC_BT_CTRL_BLE_IS_ENABLE
if (r_btdm_broker_linear_selfcheck(_sync_linear_broker_flash, false)) {
return -13;
}
#endif /* UC_BT_CTRL_BLE_IS_ENABLE */
return 0; return 0;
} }
+34 -18
View File
@@ -8,6 +8,7 @@
#include <stdint.h> #include <stdint.h>
#include <stdbool.h> #include <stdbool.h>
#include <string.h>
#include "btdm_user_cfg.h" #include "btdm_user_cfg.h"
#if UC_BT_CTRL_BLE_IS_ENABLE #if UC_BT_CTRL_BLE_IS_ENABLE
#include "ble_user_cfg.h" #include "ble_user_cfg.h"
@@ -111,6 +112,7 @@ extern int brk_sym_pawrBcast_02YCihGkfXcpLt0zh1uM(void *param);
extern int brk_sym_pawrBcast_0PNup0d8oI1288mfULNW(void *param); extern int brk_sym_pawrBcast_0PNup0d8oI1288mfULNW(void *param);
extern int brk_sym_pawrBcast_0Wq1DOQE0eOWEGV2grxM(void *param); extern int brk_sym_pawrBcast_0Wq1DOQE0eOWEGV2grxM(void *param);
extern int brk_sym_pawrBcast_1y9l4P0a3qWUSydU3cDY(void *param); extern int brk_sym_pawrBcast_1y9l4P0a3qWUSydU3cDY(void *param);
extern int brk_sym_pawrBcast_3Fe1AkLrn3EG25GkGfL4(void *param);
extern int brk_sym_pawrBcast_7jK56jlcfafMtoQgLg6t(void *param); extern int brk_sym_pawrBcast_7jK56jlcfafMtoQgLg6t(void *param);
extern int brk_sym_pawrBcast_7qGF1F9weQ363Ml7Gj0n(void *param); extern int brk_sym_pawrBcast_7qGF1F9weQ363Ml7Gj0n(void *param);
extern int brk_sym_pawrBcast_JHmbFJCpV155hIYyDVQ8(void *param); extern int brk_sym_pawrBcast_JHmbFJCpV155hIYyDVQ8(void *param);
@@ -122,6 +124,7 @@ extern int brk_sym_pawrBcast_SB1LBCzybPoDd0XYyLM8(void *param);
extern int brk_sym_pawrBcast_WNd7Y6n56cZrTlhBjFRU(void *param); extern int brk_sym_pawrBcast_WNd7Y6n56cZrTlhBjFRU(void *param);
extern int brk_sym_pawrBcast_eBH7HrPT8y2Fj9382el3(void *param); extern int brk_sym_pawrBcast_eBH7HrPT8y2Fj9382el3(void *param);
extern int brk_sym_pawrBcast_g6t1IjxRbcv5GUq1uXIA(void *param); extern int brk_sym_pawrBcast_g6t1IjxRbcv5GUq1uXIA(void *param);
extern int brk_sym_pawrBcast_ivWxQ61JhFEBhkuxoZhM(void *param);
extern int brk_sym_pawrBcast_lk2Wpy4u04ukjtC7Ijcb(void *param); extern int brk_sym_pawrBcast_lk2Wpy4u04ukjtC7Ijcb(void *param);
extern int brk_sym_pawrBcast_on08yxBjym4I0iV3tlPo(void *param); extern int brk_sym_pawrBcast_on08yxBjym4I0iV3tlPo(void *param);
extern int brk_sym_pawrBcast_sSbQFGKMJszbA895ddLO(void *param); extern int brk_sym_pawrBcast_sSbQFGKMJszbA895ddLO(void *param);
@@ -291,6 +294,12 @@ const void * const _adv_linear_broker_flash[] = BTDM_BROKER_NODE_DEF_FLASH(
[13] = BTDM_BROKER_ENTRY_DEF_FLASH( [13] = BTDM_BROKER_ENTRY_DEF_FLASH(
brk_sym_pawrBcast_WNd7Y6n56cZrTlhBjFRU, brk_sym_pawrBcast_WNd7Y6n56cZrTlhBjFRU,
), ),
[14] = BTDM_BROKER_ENTRY_DEF_FLASH(
brk_sym_pawrBcast_3Fe1AkLrn3EG25GkGfL4,
),
[15] = BTDM_BROKER_ENTRY_DEF_FLASH(
brk_sym_pawrBcast_ivWxQ61JhFEBhkuxoZhM,
),
#endif /* UC_BLE_CTRL_PAWR_BCAST_SUPPORTED */ #endif /* UC_BLE_CTRL_PAWR_BCAST_SUPPORTED */
); );
#endif /* UC_BT_CTRL_BLE_IS_ENABLE */ #endif /* UC_BT_CTRL_BLE_IS_ENABLE */
@@ -837,73 +846,80 @@ int
btdm_broker_init(void) btdm_broker_init(void)
{ {
#if UC_BT_CTRL_BLE_IS_ENABLE #if UC_BT_CTRL_BLE_IS_ENABLE
if (r_btdm_broker_linear_selfcheck(_adv_linear_broker_flash, false)) { extern const char *ble_controller_get_compile_version(void);
if (memcmp(ble_controller_get_compile_version(), "4c3f1e9", 7) != 0) {
return -1; return -1;
} }
#endif /* UC_BT_CTRL_BLE_IS_ENABLE */ #endif /* UC_BT_CTRL_BLE_IS_ENABLE */
#if UC_BT_CTRL_BLE_IS_ENABLE #if UC_BT_CTRL_BLE_IS_ENABLE
if (r_btdm_broker_linear_selfcheck(_base_linear_broker_flash, false)) { if (r_btdm_broker_linear_selfcheck(_adv_linear_broker_flash, false)) {
return -2; return -2;
} }
#endif /* UC_BT_CTRL_BLE_IS_ENABLE */ #endif /* UC_BT_CTRL_BLE_IS_ENABLE */
if (r_btdm_broker_linear_selfcheck(_btdm_coex_linear_broker_flash, false)) { #if UC_BT_CTRL_BLE_IS_ENABLE
if (r_btdm_broker_linear_selfcheck(_base_linear_broker_flash, false)) {
return -3; return -3;
} }
#endif /* UC_BT_CTRL_BLE_IS_ENABLE */
if (r_btdm_broker_linear_selfcheck(_btdm_hal_linear_broker_ram, true)) { if (r_btdm_broker_linear_selfcheck(_btdm_coex_linear_broker_flash, false)) {
return -4; return -4;
} }
if (r_btdm_broker_linear_selfcheck(_btdm_hci_linear_broker_flash, false)) { if (r_btdm_broker_linear_selfcheck(_btdm_hal_linear_broker_ram, true)) {
return -5; return -5;
} }
if (r_btdm_broker_linear_selfcheck(_btdm_sched_linear_broker_flash, false)) { if (r_btdm_broker_linear_selfcheck(_btdm_hci_linear_broker_flash, false)) {
return -6; return -6;
} }
if (r_btdm_broker_linear_selfcheck(_btdm_sched_linear_broker_ram, true)) { if (r_btdm_broker_linear_selfcheck(_btdm_sched_linear_broker_flash, false)) {
return -7; return -7;
} }
if (r_btdm_broker_linear_selfcheck(_btdm_sleep_linear_broker_flash, false)) { if (r_btdm_broker_linear_selfcheck(_btdm_sched_linear_broker_ram, true)) {
return -8; return -8;
} }
if (r_btdm_broker_linear_selfcheck(_btdm_sleep_linear_broker_ram, true)) { if (r_btdm_broker_linear_selfcheck(_btdm_sleep_linear_broker_flash, false)) {
return -9; return -9;
} }
if (r_btdm_broker_linear_selfcheck(_btdm_task_linear_broker_flash, false)) { if (r_btdm_broker_linear_selfcheck(_btdm_sleep_linear_broker_ram, true)) {
return -10; return -10;
} }
if (r_btdm_broker_linear_selfcheck(_btdm_task_linear_broker_flash, false)) {
return -11;
}
#if UC_BT_CTRL_BLE_IS_ENABLE && UC_BLE_CTRL_CONN_ENABLED #if UC_BT_CTRL_BLE_IS_ENABLE && UC_BLE_CTRL_CONN_ENABLED
if (r_btdm_broker_linear_selfcheck(_conn_linear_broker_flash, false)) { if (r_btdm_broker_linear_selfcheck(_conn_linear_broker_flash, false)) {
return -11; return -12;
} }
#endif /* UC_BT_CTRL_BLE_IS_ENABLE && UC_BLE_CTRL_CONN_ENABLED */ #endif /* UC_BT_CTRL_BLE_IS_ENABLE && UC_BLE_CTRL_CONN_ENABLED */
#if UC_BT_CTRL_BLE_IS_ENABLE #if UC_BT_CTRL_BLE_IS_ENABLE
if (r_btdm_broker_linear_selfcheck(_nrtIsr_linear_broker_flash, false)) { if (r_btdm_broker_linear_selfcheck(_nrtIsr_linear_broker_flash, false)) {
return -12;
}
#endif /* UC_BT_CTRL_BLE_IS_ENABLE */
#if UC_BT_CTRL_BLE_IS_ENABLE
if (r_btdm_broker_linear_selfcheck(_perAdv_linear_broker_flash, false)) {
return -13; return -13;
} }
#endif /* UC_BT_CTRL_BLE_IS_ENABLE */ #endif /* UC_BT_CTRL_BLE_IS_ENABLE */
#if UC_BT_CTRL_BLE_IS_ENABLE #if UC_BT_CTRL_BLE_IS_ENABLE
if (r_btdm_broker_linear_selfcheck(_sync_linear_broker_flash, false)) { if (r_btdm_broker_linear_selfcheck(_perAdv_linear_broker_flash, false)) {
return -14; return -14;
} }
#endif /* UC_BT_CTRL_BLE_IS_ENABLE */ #endif /* UC_BT_CTRL_BLE_IS_ENABLE */
#if UC_BT_CTRL_BLE_IS_ENABLE
if (r_btdm_broker_linear_selfcheck(_sync_linear_broker_flash, false)) {
return -15;
}
#endif /* UC_BT_CTRL_BLE_IS_ENABLE */
return 0; return 0;
} }