Skip to content

Commit db8ffca

Browse files
committed
Merge branch 'bugfix/fixed_c5_ble_cache_error_240919' into 'master'
Bugfix/fixed c5 ble cache error 240919 Closes BLERP-1038, BLERP-1039, BLERP-1040, BLERP-1041, BLERP-1042, BLERP-1043, BLERP-1044, BLERP-1045, BLERP-1046, BLERP-1047, BLERP-1048, BLERP-1049, and BLERP-1036 See merge request espressif/esp-idf!33645
2 parents ae67021 + 3c72084 commit db8ffca

File tree

2 files changed

+39
-37
lines changed

2 files changed

+39
-37
lines changed

components/bt/CMakeLists.txt

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -855,16 +855,17 @@ if(CONFIG_BT_ENABLED)
855855
target_link_directories(${COMPONENT_LIB} INTERFACE
856856
"${CMAKE_CURRENT_LIST_DIR}/controller/lib_esp32c3_family/esp32s3")
857857
target_link_libraries(${COMPONENT_LIB} PUBLIC btdm_app)
858-
elseif(CONFIG_IDF_TARGET_ESP32C6)
859-
add_prebuilt_library(libble_app
858+
elseif(CONFIG_BT_CONTROLLER_ENABLED)
859+
if(CONFIG_IDF_TARGET_ESP32C6)
860+
add_prebuilt_library(libble_app
860861
"${CMAKE_CURRENT_LIST_DIR}/controller/lib_esp32c6/esp32c6-bt-lib/esp32c6/libble_app.a")
861-
target_link_libraries(${COMPONENT_LIB} PRIVATE libble_app)
862-
elseif(CONFIG_IDF_TARGET_ESP32C61)
863-
add_prebuilt_library(libble_app
862+
elseif(CONFIG_IDF_TARGET_ESP32C61)
863+
add_prebuilt_library(libble_app
864864
"${CMAKE_CURRENT_LIST_DIR}/controller/lib_esp32c6/esp32c6-bt-lib/esp32c61/libble_app.a")
865-
target_link_libraries(${COMPONENT_LIB} PRIVATE libble_app)
866-
elseif(CONFIG_BT_CONTROLLER_ENABLED)
867-
add_prebuilt_library(libble_app "controller/lib_${target_name}/${target_name}-bt-lib/libble_app.a")
865+
else()
866+
add_prebuilt_library(libble_app
867+
"controller/lib_${target_name}/${target_name}-bt-lib/libble_app.a")
868+
endif()
868869
target_link_libraries(${COMPONENT_LIB} PRIVATE libble_app)
869870
endif()
870871

components/bt/porting/npl/freertos/src/npl_os_freertos.c

Lines changed: 30 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
#include "esp_log.h"
2222
#include "soc/soc_caps.h"
2323
#include "esp_bt.h"
24+
#include "bt_osi_mem.h"
2425

2526
portMUX_TYPE ble_port_mutex = portMUX_INITIALIZER_UNLOCKED;
2627

@@ -95,7 +96,7 @@ IRAM_ATTR npl_freertos_event_init(struct ble_npl_event *ev, ble_npl_event_fn *fn
9596
}
9697
#else
9798
if(!ev->event) {
98-
ev->event = malloc(sizeof(struct ble_npl_event_freertos));
99+
ev->event = bt_osi_mem_malloc_internal(sizeof(struct ble_npl_event_freertos));
99100
}
100101
#endif
101102
event = (struct ble_npl_event_freertos *)ev->event;
@@ -113,7 +114,7 @@ IRAM_ATTR npl_freertos_event_deinit(struct ble_npl_event *ev)
113114
#if OS_MEM_ALLOC
114115
os_memblock_put(&ble_freertos_ev_pool,ev->event);
115116
#else
116-
free(ev->event);
117+
bt_osi_mem_free(ev->event);
117118
#endif
118119
ev->event = NULL;
119120
}
@@ -144,7 +145,7 @@ npl_freertos_eventq_init(struct ble_npl_eventq *evq)
144145
}
145146
#else
146147
if(!evq->eventq) {
147-
evq->eventq = malloc(sizeof(struct ble_npl_eventq_freertos));
148+
evq->eventq = bt_osi_mem_malloc_internal(sizeof(struct ble_npl_eventq_freertos));
148149
eventq = (struct ble_npl_eventq_freertos*)evq->eventq;
149150
BLE_LL_ASSERT(eventq);
150151
memset(eventq, 0, sizeof(*eventq));
@@ -167,7 +168,7 @@ npl_freertos_eventq_deinit(struct ble_npl_eventq *evq)
167168
#if OS_MEM_ALLOC
168169
os_memblock_put(&ble_freertos_evq_pool,eventq);
169170
#else
170-
free((void *)eventq);
171+
bt_osi_mem_free((void *)eventq);
171172
#endif
172173
evq->eventq = NULL;
173174
}
@@ -357,7 +358,7 @@ npl_freertos_mutex_init(struct ble_npl_mutex *mu)
357358
}
358359
#else
359360
if(!mu->mutex) {
360-
mu->mutex = malloc(sizeof(struct ble_npl_mutex_freertos));
361+
mu->mutex = bt_osi_mem_malloc_internal(sizeof(struct ble_npl_mutex_freertos));
361362
mutex = (struct ble_npl_mutex_freertos *)mu->mutex;
362363

363364
if (!mutex) {
@@ -388,7 +389,7 @@ npl_freertos_mutex_deinit(struct ble_npl_mutex *mu)
388389
#if OS_MEM_ALLOC
389390
os_memblock_put(&ble_freertos_mutex_pool,mutex);
390391
#else
391-
free((void *)mutex);
392+
bt_osi_mem_free((void *)mutex);
392393
#endif
393394
mu->mutex = NULL;
394395

@@ -494,7 +495,7 @@ npl_freertos_sem_init(struct ble_npl_sem *sem, uint16_t tokens)
494495
}
495496
#else
496497
if(!sem->sem) {
497-
sem->sem = malloc(sizeof(struct ble_npl_sem_freertos));
498+
sem->sem = bt_osi_mem_malloc_internal(sizeof(struct ble_npl_sem_freertos));
498499
semaphore = (struct ble_npl_sem_freertos *)sem->sem;
499500

500501
if (!semaphore) {
@@ -525,7 +526,7 @@ npl_freertos_sem_deinit(struct ble_npl_sem *sem)
525526
#if OS_MEM_ALLOC
526527
os_memblock_put(&ble_freertos_sem_pool,semaphore);
527528
#else
528-
free((void *)semaphore);
529+
bt_osi_mem_free((void *)semaphore);
529530
#endif
530531
sem->sem = NULL;
531532

@@ -684,7 +685,7 @@ npl_freertos_callout_init(struct ble_npl_callout *co, struct ble_npl_eventq *evq
684685
#else
685686

686687
if(!co->co) {
687-
co->co = malloc(sizeof(struct ble_npl_callout_freertos));
688+
co->co = bt_osi_mem_malloc_internal(sizeof(struct ble_npl_callout_freertos));
688689
callout = (struct ble_npl_callout_freertos *)co->co;
689690
if (!callout) {
690691
return -1;
@@ -704,7 +705,7 @@ npl_freertos_callout_init(struct ble_npl_callout *co, struct ble_npl_eventq *evq
704705

705706
if (esp_timer_create(&create_args, &callout->handle) != ESP_OK) {
706707
ble_npl_event_deinit(&callout->ev);
707-
free((void *)callout);
708+
bt_osi_mem_free((void *)callout);
708709
co->co = NULL;
709710
return -1;
710711
}
@@ -713,7 +714,7 @@ npl_freertos_callout_init(struct ble_npl_callout *co, struct ble_npl_eventq *evq
713714

714715
if (!callout->handle) {
715716
ble_npl_event_deinit(&callout->ev);
716-
free((void *)callout);
717+
bt_osi_mem_free((void *)callout);
717718
co->co = NULL;
718719
return -1;
719720
}
@@ -761,7 +762,7 @@ npl_freertos_callout_deinit(struct ble_npl_callout *co)
761762
#if OS_MEM_ALLOC
762763
os_memblock_put(&ble_freertos_co_pool,callout);
763764
#else
764-
free((void *)callout);
765+
bt_osi_mem_free((void *)callout);
765766
#endif // OS_MEM_ALLOC
766767
co->co = NULL;
767768
memset(co, 0, sizeof(struct ble_npl_callout));
@@ -1089,7 +1090,7 @@ struct npl_funcs_t * npl_freertos_funcs_get(void)
10891090

10901091
void npl_freertos_funcs_init(void)
10911092
{
1092-
npl_funcs = (struct npl_funcs_t *)malloc(sizeof(struct npl_funcs_t));
1093+
npl_funcs = (struct npl_funcs_t *)bt_osi_mem_malloc_internal(sizeof(struct npl_funcs_t));
10931094
if(!npl_funcs) {
10941095
printf("npl funcs init failed\n");
10951096
assert(0);
@@ -1123,7 +1124,7 @@ int npl_freertos_mempool_init(void)
11231124
ble_freertos_total_event_cnt = ble_total_evt_count;
11241125

11251126
if (ble_total_evt_count) {
1126-
ble_freertos_ev_buf = malloc(OS_MEMPOOL_SIZE(ble_total_evt_count,
1127+
ble_freertos_ev_buf = bt_osi_mem_malloc_internal(OS_MEMPOOL_SIZE(ble_total_evt_count,
11271128
sizeof (struct ble_npl_event_freertos)) *
11281129
sizeof(os_membuf_t));
11291130
if (!ble_freertos_ev_buf) {
@@ -1138,7 +1139,7 @@ int npl_freertos_mempool_init(void)
11381139
}
11391140

11401141
if (ble_total_evtq_count) {
1141-
ble_freertos_evq_buf = malloc(OS_MEMPOOL_SIZE(ble_total_evtq_count,
1142+
ble_freertos_evq_buf = bt_osi_mem_malloc_internal(OS_MEMPOOL_SIZE(ble_total_evtq_count,
11421143
sizeof (struct ble_npl_eventq_freertos)) *
11431144
sizeof(os_membuf_t));
11441145
if (!ble_freertos_evq_buf) {
@@ -1153,7 +1154,7 @@ int npl_freertos_mempool_init(void)
11531154
}
11541155

11551156
if (ble_total_co_count) {
1156-
ble_freertos_co_buf = malloc(OS_MEMPOOL_SIZE(ble_total_co_count,
1157+
ble_freertos_co_buf = bt_osi_mem_malloc_internal(OS_MEMPOOL_SIZE(ble_total_co_count,
11571158
sizeof (struct ble_npl_callout_freertos)) *
11581159
sizeof(os_membuf_t));
11591160
if (!ble_freertos_co_buf) {
@@ -1168,7 +1169,7 @@ int npl_freertos_mempool_init(void)
11681169
}
11691170

11701171
if (ble_total_sem_count) {
1171-
ble_freertos_sem_buf = malloc(OS_MEMPOOL_SIZE(ble_total_sem_count,
1172+
ble_freertos_sem_buf = bt_osi_mem_malloc_internal(OS_MEMPOOL_SIZE(ble_total_sem_count,
11721173
sizeof (struct ble_npl_sem_freertos)) *
11731174
sizeof(os_membuf_t));
11741175
if (!ble_freertos_sem_buf) {
@@ -1183,7 +1184,7 @@ int npl_freertos_mempool_init(void)
11831184
}
11841185

11851186
if (ble_total_mutex_count) {
1186-
ble_freertos_mutex_buf = malloc(OS_MEMPOOL_SIZE(ble_total_mutex_count,
1187+
ble_freertos_mutex_buf = bt_osi_mem_malloc_internal(OS_MEMPOOL_SIZE(ble_total_mutex_count,
11871188
sizeof (struct ble_npl_mutex_freertos)) *
11881189
sizeof(os_membuf_t));
11891190
if (!ble_freertos_mutex_buf) {
@@ -1200,27 +1201,27 @@ int npl_freertos_mempool_init(void)
12001201
return 0;
12011202
_error:
12021203
if (ble_freertos_ev_buf) {
1203-
free(ble_freertos_ev_buf);
1204+
bt_osi_mem_free(ble_freertos_ev_buf);
12041205
ble_freertos_ev_buf = NULL;
12051206
}
12061207

12071208
if (ble_freertos_evq_buf) {
1208-
free(ble_freertos_evq_buf);
1209+
bt_osi_mem_free(ble_freertos_evq_buf);
12091210
ble_freertos_evq_buf = NULL;
12101211
}
12111212

12121213
if (ble_freertos_co_buf) {
1213-
free(ble_freertos_co_buf);
1214+
bt_osi_mem_free(ble_freertos_co_buf);
12141215
ble_freertos_co_buf = NULL;
12151216
}
12161217

12171218
if (ble_freertos_sem_buf) {
1218-
free(ble_freertos_sem_buf);
1219+
bt_osi_mem_free(ble_freertos_sem_buf);
12191220
ble_freertos_sem_buf = NULL;
12201221
}
12211222

12221223
if (ble_freertos_mutex_buf) {
1223-
free(ble_freertos_mutex_buf);
1224+
bt_osi_mem_free(ble_freertos_mutex_buf);
12241225
ble_freertos_mutex_buf = NULL;
12251226
}
12261227
return -1;
@@ -1229,31 +1230,31 @@ int npl_freertos_mempool_init(void)
12291230
void npl_freertos_mempool_deinit(void)
12301231
{
12311232
if (ble_freertos_ev_buf) {
1232-
free(ble_freertos_ev_buf);
1233+
bt_osi_mem_free(ble_freertos_ev_buf);
12331234
ble_freertos_ev_buf = NULL;
12341235
}
12351236
if (ble_freertos_evq_buf) {
1236-
free(ble_freertos_evq_buf);
1237+
bt_osi_mem_free(ble_freertos_evq_buf);
12371238
ble_freertos_evq_buf = NULL;
12381239
}
12391240
if (ble_freertos_co_buf) {
1240-
free(ble_freertos_co_buf);
1241+
bt_osi_mem_free(ble_freertos_co_buf);
12411242
ble_freertos_co_buf = NULL;
12421243
}
12431244
if (ble_freertos_sem_buf) {
1244-
free(ble_freertos_sem_buf);
1245+
bt_osi_mem_free(ble_freertos_sem_buf);
12451246
ble_freertos_sem_buf = NULL;
12461247
}
12471248
if (ble_freertos_mutex_buf) {
1248-
free(ble_freertos_mutex_buf);
1249+
bt_osi_mem_free(ble_freertos_mutex_buf);
12491250
ble_freertos_mutex_buf = NULL;
12501251
}
12511252
}
12521253

12531254
void npl_freertos_funcs_deinit(void)
12541255
{
12551256
if (npl_funcs) {
1256-
free(npl_funcs);
1257+
bt_osi_mem_free(npl_funcs);
12571258
}
12581259
npl_funcs = NULL;
12591260
}

0 commit comments

Comments
 (0)