Skip to content

Commit a58ce39

Browse files
committed
fix(nimble): Add support for minimilistic builds
1 parent 644e38f commit a58ce39

File tree

39 files changed

+2811
-157
lines changed

39 files changed

+2811
-157
lines changed

components/bt/host/nimble/Kconfig.in

Lines changed: 263 additions & 153 deletions
Large diffs are not rendered by default.

components/bt/host/nimble/port/include/esp_nimble_cfg.h

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -244,6 +244,18 @@
244244
#define MYNEWT_VAL_BLE_ROLE_PERIPHERAL (CONFIG_BT_NIMBLE_ROLE_PERIPHERAL)
245245
#endif
246246

247+
#ifndef CONFIG_BT_NIMBLE_GATT_CLIENT
248+
#define MYNEWT_VAL_BLE_GATTC (0)
249+
#else
250+
#define MYNEWT_VAL_BLE_GATTC (CONFIG_BT_NIMBLE_GATT_CLIENT)
251+
#endif
252+
253+
#ifndef CONFIG_BT_NIMBLE_GATT_SERVER
254+
#define MYNEWT_VAL_BLE_GATTS (0)
255+
#else
256+
#define MYNEWT_VAL_BLE_GATTS (CONFIG_BT_NIMBLE_GATT_SERVER)
257+
#endif
258+
247259
#ifndef MYNEWT_VAL_BLE_WHITELIST
248260
#define MYNEWT_VAL_BLE_WHITELIST (1)
249261
#endif
@@ -584,7 +596,7 @@
584596
#endif
585597

586598
#ifndef MYNEWT_VAL_BLE_ATT_SVR_MAX_PREP_ENTRIES
587-
#define MYNEWT_VAL_BLE_ATT_SVR_MAX_PREP_ENTRIES (64)
599+
#define MYNEWT_VAL_BLE_ATT_SVR_MAX_PREP_ENTRIES CONFIG_BT_NIMBLE_ATT_MAX_PREP_ENTRIES
588600
#endif
589601

590602
#ifndef MYNEWT_VAL_BLE_ATT_SVR_NOTIFY
@@ -2064,4 +2076,16 @@
20642076
#endif
20652077
#endif
20662078

2079+
#ifndef MYNEWT_VAL_BLE_ERR_CHECK
2080+
#ifdef CONFIG_BT_NIMBLE_PRINT_ERR_NAME
2081+
#define MYNEWT_VAL_BLE_ERR_CHECK CONFIG_BT_NIMBLE_PRINT_ERR_NAME
2082+
#else
2083+
#define MYNEWT_VAL_BLE_ERR_CHECK (0)
2084+
#endif
2085+
#endif
2086+
2087+
#ifndef MYNEWT_VAL_BLE_USED_IN_IDF
2088+
#define MYNEWT_VAL_BLE_USED_IN_IDF (1)
2089+
#endif
2090+
20672091
#endif

examples/bluetooth/blufi/main/blufi_init.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -211,9 +211,11 @@ esp_err_t esp_blufi_host_init(void)
211211
rc = esp_blufi_gatt_svr_init();
212212
assert(rc == 0);
213213

214+
#if CONFIG_BT_NIMBLE_GAP_SERVICE
214215
/* Set the default device name. */
215216
rc = ble_svc_gap_device_name_set(BLUFI_DEVICE_NAME);
216217
assert(rc == 0);
218+
#endif
217219

218220
/* XXX Need to have template for store */
219221
ble_store_config_init();
Lines changed: 123 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,123 @@
1+
# Override some defaults so BT stack is enabled
2+
# in this example
3+
4+
#
5+
# Partition Table
6+
# (It's possible to fit Blufi in 1MB app partition size with some other optimizations, but
7+
# default config is close to 1MB.)
8+
CONFIG_PARTITION_TABLE_SINGLE_APP_LARGE=y
9+
10+
#
11+
# BT config
12+
#
13+
CONFIG_BTDM_CTRL_MODE_BLE_ONLY=y
14+
CONFIG_BTDM_CTRL_MODE_BR_EDR_ONLY=n
15+
CONFIG_BTDM_CTRL_MODE_BTDM=n
16+
CONFIG_BT_BLUEDROID_ENABLED=n
17+
CONFIG_BT_NIMBLE_ENABLED=y
18+
CONFIG_BT_NIMBLE_MAX_CONNECTIONS=1
19+
CONFIG_BT_NIMBLE_MAX_BONDS=1
20+
CONFIG_BT_NIMBLE_MAX_CCCDS=1
21+
CONFIG_BT_NIMBLE_ROLE_CENTRAL=n
22+
CONFIG_BT_NIMBLE_ROLE_OBSERVER=n
23+
CONFIG_BT_NIMBLE_SM_SC=n
24+
CONFIG_BT_NIMBLE_ENABLE_CONN_REATTEMPT=n
25+
CONFIG_BT_NIMBLE_50_FEATURE_SUPPORT=n
26+
CONFIG_BT_NIMBLE_MSYS_1_BLOCK_COUNT=6
27+
CONFIG_BT_NIMBLE_MSYS_2_BLOCK_COUNT=12
28+
CONFIG_BT_NIMBLE_TRANSPORT_ACL_FROM_LL_COUNT=12
29+
CONFIG_BT_NIMBLE_TRANSPORT_EVT_COUNT=15
30+
CONFIG_BT_NIMBLE_ATT_MAX_PREP_ENTRIES=15
31+
CONFIG_BT_NIMBLE_GATT_CLIENT=n
32+
CONFIG_BT_NIMBLE_PRINT_ERR_NAME=n
33+
CONFIG_BT_ALARM_MAX_NUM=15
34+
CONFIG_BT_NIMBLE_PRINT_ERR_NAME=n
35+
CONFIG_BT_NIMBLE_PROX_SERVICE=n
36+
CONFIG_BT_NIMBLE_CTS_SERVICE=n
37+
CONFIG_BT_NIMBLE_HTP_SERVICE=n
38+
CONFIG_BT_NIMBLE_IPSS_SERVICE=n
39+
CONFIG_BT_NIMBLE_TPS_SERVICE=n
40+
CONFIG_BT_NIMBLE_IAS_SERVICE=n
41+
CONFIG_BT_NIMBLE_LLS_SERVICE=n
42+
CONFIG_BT_NIMBLE_SPS_SERVICE=n
43+
CONFIG_BT_NIMBLE_HR_SERVICE=n
44+
CONFIG_BT_NIMBLE_DIS_SERVICE=n
45+
46+
47+
CONFIG_BT_ALARM_MAX_NUM=15
48+
49+
CONFIG_MBEDTLS_HARDWARE_MPI=n
50+
CONFIG_MBEDTLS_DHM_C=y
51+
52+
CONFIG_BT_NIMBLE_BLUFI_ENABLE=y
53+
54+
CONFIG_BT_NIMBLE_ATT_PREFERRED_MTU=23
55+
CONFIG_PM_ENABLE=n
56+
CONFIG_HEAP_POISONING_DISABLED=y
57+
58+
CONFIG_BOOTLOADER_LOG_LEVEL_NONE=y
59+
CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_SIZE=y
60+
61+
CONFIG_VFS_SUPPORT_TERMIOS=n
62+
CONFIG_VFS_SUPPORT_DIR=n
63+
CONFIG_VFS_SUPPORT_IO=n
64+
CONFIG_BT_NIMBLE_HOST_TASK_STACK_SIZE=3152
65+
66+
# FreeRTOS
67+
CONFIG_FREERTOS_HZ=100
68+
CONFIG_FREERTOS_IDLE_TASK_STACKSIZE=1024
69+
CONFIG_FREERTOS_ISR_STACKSIZE=1024
70+
CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=2048
71+
72+
# C Library
73+
CONFIG_LIBC_NEWLIB_NANO_FORMAT=y
74+
CONFIG_LIBC_STDIN_LINE_ENDING_CRLF=n
75+
CONFIG_LIBC_STDOUT_LINE_ENDING_CRLF=n
76+
77+
# Optimization
78+
CONFIG_COMPILER_OPTIMIZATION_SIZE=y
79+
CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_DISABLE=y
80+
CONFIG_COMPILER_CXX_EXCEPTIONS=n
81+
82+
# Heap
83+
CONFIG_HEAP_POISONING_DISABLED=y
84+
CONFIG_HEAP_TRACING=n
85+
86+
# Power Management
87+
CONFIG_PM_ENABLE=n
88+
89+
# No networking
90+
CONFIG_ESP_WIFI_ENABLED=n
91+
92+
# Application
93+
CONFIG_APP_COMPILE_TIME_DATE=n
94+
95+
96+
CONFIG_ESP_COEX_SW_COEXIST_ENABLE=n
97+
CONFIG_ESP_ERR_TO_NAME_LOOKUP=n
98+
CONFIG_SPI_MASTER_ISR_IN_IRA=n
99+
CONFIG_SPI_MASTER_ISR_IN_IRAM=n
100+
CONFIG_SPI_SLAVE_ISR_IN_IRAM=n
101+
CONFIG_ESP_GDBSTUB_SUPPORT_TASKS=n
102+
CONFIG_ESP_NETIF_REPORT_DATA_TRAFFIC=n
103+
CONFIG_PM_POWER_DOWN_CPU_IN_LIGHT_SLEEP=n
104+
CONFIG_SPI_FLASH_ROM_DRIVER_PATCH=n
105+
CONFIG_SPI_FLASH_YIELD_DURING_ERASE=n
106+
CONFIG_SPI_FLASH_ENABLE_ENCRYPTED_READ_WRITE=n
107+
108+
#Uncomment below, if security needs to be disabled
109+
#CONFIG_BT_NIMBLE_SECURITY_ENABLE=n
110+
111+
112+
#Uncomment below, if logging needs to be disabled
113+
#CONFIG_LOG_DEFAULT_LEVEL_NONE=y
114+
#CONFIG_LOG_DEFAULT_LEVEL=0
115+
116+
#
117+
# Controller Options
118+
#
119+
120+
CONFIG_BT_CTRL_BLE_MAX_ACT=2
121+
CONFIG_BT_CTRL_ADV_DUP_FILT_MAX=1
122+
CONFIG_BT_CTRL_BLE_ADV_REPORT_FLOW_CTRL_SUPP=n
123+
CONFIG_BT_CTRL_BLE_SCAN_DUPL=n

examples/bluetooth/nimble/ble_cts/cts_cent/main/main.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -571,9 +571,11 @@ app_main(void)
571571
rc = peer_init(MYNEWT_VAL(BLE_MAX_CONNECTIONS), 64, 64, 64);
572572
assert(rc == 0);
573573

574+
#if CONFIG_BT_NIMBLE_GAP_SERVICE
574575
/* Set the default device name. */
575576
rc = ble_svc_gap_device_name_set("nimble-cts-cent");
576577
assert(rc == 0);
578+
#endif
577579

578580
/* XXX Need to have template for store */
579581
ble_store_config_init();
Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
# Override some defaults so BT stack is enabled
2+
# in this example
3+
4+
#
5+
# BT config
6+
#
7+
CONFIG_BT_ENABLED=y
8+
CONFIG_BTDM_CTRL_MODE_BLE_ONLY=y
9+
CONFIG_BTDM_CTRL_MODE_BR_EDR_ONLY=n
10+
CONFIG_BTDM_CTRL_MODE_BTDM=n
11+
CONFIG_BT_BLUEDROID_ENABLED=n
12+
CONFIG_BT_NIMBLE_ENABLED=y
13+
CONFIG_BT_NIMBLE_MAX_CONNECTIONS=1
14+
CONFIG_BT_NIMBLE_MAX_BONDS=1
15+
CONFIG_BT_NIMBLE_MAX_CCCDS=1
16+
CONFIG_BT_NIMBLE_ROLE_PERIPHERAL=n
17+
CONFIG_BT_NIMBLE_ROLE_BROADCASTER=n
18+
CONFIG_BT_NIMBLE_SM_SC=n
19+
CONFIG_BT_NIMBLE_ENABLE_CONN_REATTEMPT=n
20+
CONFIG_BT_NIMBLE_50_FEATURE_SUPPORT=n
21+
CONFIG_BT_NIMBLE_MSYS_1_BLOCK_COUNT=6
22+
CONFIG_BT_NIMBLE_MSYS_2_BLOCK_COUNT=0
23+
CONFIG_BT_NIMBLE_TRANSPORT_ACL_FROM_LL_COUNT=12
24+
CONFIG_BT_NIMBLE_TRANSPORT_EVT_COUNT=15
25+
CONFIG_BT_NIMBLE_ATT_MAX_PREP_ENTRIES=15
26+
CONFIG_BT_NIMBLE_GATT_SERVER=n
27+
CONFIG_BT_NIMBLE_PRINT_ERR_NAME=n
28+
CONFIG_BT_ALARM_MAX_NUM=15
29+
30+
CONFIG_BT_NIMBLE_ATT_PREFERRED_MTU=23
31+
CONFIG_PM_ENABLE=n
32+
CONFIG_HEAP_POISONING_DISABLED=y
33+
34+
CONFIG_BOOTLOADER_LOG_LEVEL_NONE=y
35+
CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_SIZE=y
36+
37+
CONFIG_VFS_SUPPORT_TERMIOS=n
38+
CONFIG_VFS_SUPPORT_DIR=n
39+
CONFIG_VFS_SUPPORT_IO=n
40+
CONFIG_BT_NIMBLE_HOST_TASK_STACK_SIZE=3152
41+
42+
# FreeRTOS
43+
CONFIG_FREERTOS_HZ=100
44+
CONFIG_FREERTOS_IDLE_TASK_STACKSIZE=1024
45+
CONFIG_FREERTOS_ISR_STACKSIZE=1024
46+
CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=2048
47+
48+
# C Library
49+
CONFIG_LIBC_NEWLIB_NANO_FORMAT=y
50+
CONFIG_LIBC_STDIN_LINE_ENDING_CRLF=n
51+
CONFIG_LIBC_STDOUT_LINE_ENDING_CRLF=n
52+
53+
# Optimization
54+
CONFIG_COMPILER_OPTIMIZATION_SIZE=y
55+
CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_DISABLE=y
56+
CONFIG_COMPILER_CXX_EXCEPTIONS=n
57+
58+
# Heap
59+
CONFIG_HEAP_POISONING_DISABLED=y
60+
CONFIG_HEAP_TRACING=n
61+
62+
# Power Management
63+
CONFIG_PM_ENABLE=n
64+
65+
# No networking
66+
CONFIG_ESP_WIFI_ENABLED=n
67+
68+
# Application
69+
CONFIG_APP_COMPILE_TIME_DATE=n
70+
71+
72+
CONFIG_ESP_COEX_SW_COEXIST_ENABLE=n
73+
CONFIG_ESP_ERR_TO_NAME_LOOKUP=n
74+
CONFIG_SPI_MASTER_ISR_IN_IRAM=n
75+
CONFIG_SPI_SLAVE_ISR_IN_IRAM=n
76+
CONFIG_ESP_GDBSTUB_SUPPORT_TASKS=n
77+
CONFIG_ESP_NETIF_REPORT_DATA_TRAFFIC=n
78+
CONFIG_PM_POWER_DOWN_CPU_IN_LIGHT_SLEEP=n
79+
CONFIG_SPI_FLASH_ROM_DRIVER_PATCH=n
80+
CONFIG_SPI_FLASH_YIELD_DURING_ERASE=n
81+
CONFIG_SPI_FLASH_ENABLE_ENCRYPTED_READ_WRITE=n
82+
83+
#Uncomment below, if security needs to be disabled
84+
#CONFIG_BT_NIMBLE_SECURITY_ENABLE=n
85+
86+
87+
#Uncomment below, if logging needs to be disabled
88+
#CONFIG_LOG_DEFAULT_LEVEL_NONE=y
89+
#CONFIG_LOG_DEFAULT_LEVEL=0
90+
91+
#
92+
# Controller Options
93+
#
94+
95+
CONFIG_BT_CTRL_BLE_MAX_ACT=2
96+
CONFIG_BT_CTRL_ADV_DUP_FILT_MAX=1
97+
CONFIG_BT_CTRL_BLE_ADV_REPORT_FLOW_CTRL_SUPP=n
98+
CONFIG_BT_CTRL_BLE_SCAN_DUPL=n

0 commit comments

Comments
 (0)