91c8f324a9
The NimBLE host buffers that consume a significant amount of memory are now allocated dynamically. The advantage is that, the memory can be reclaimed in cases where BLE is turned off and not required for the current boot cycle
307 lines
9.1 KiB
Text
307 lines
9.1 KiB
Text
|
|
choice BT_NIMBLE_MEM_ALLOC_MODE
|
|
prompt "Memory allocation strategy"
|
|
default BT_NIMBLE_MEM_ALLOC_MODE_INTERNAL
|
|
help
|
|
Allocation strategy for NimBLE host stack, essentially provides ability to
|
|
allocate all required dynamic allocations from,
|
|
|
|
- Internal DRAM memory only
|
|
- External SPIRAM memory only
|
|
- Either internal or external memory based on default malloc()
|
|
behavior in ESP-IDF
|
|
|
|
Recommended mode here is always internal, since that is most preferred
|
|
from security perspective. But if application requirement does not
|
|
allow sufficient free internal memory then alternate mode can be
|
|
selected.
|
|
|
|
config BT_NIMBLE_MEM_ALLOC_MODE_INTERNAL
|
|
bool "Internal memory"
|
|
|
|
config BT_NIMBLE_MEM_ALLOC_MODE_EXTERNAL
|
|
bool "External SPIRAM"
|
|
depends on ESP32_SPIRAM_SUPPORT
|
|
|
|
config BT_NIMBLE_MEM_ALLOC_MODE_DEFAULT
|
|
bool "Default alloc mode"
|
|
|
|
endchoice
|
|
|
|
config BT_NIMBLE_MAX_CONNECTIONS
|
|
int "Maximum number of concurrent connections"
|
|
range 1 9
|
|
default BTDM_CTRL_BLE_MAX_CONN
|
|
depends on BT_NIMBLE_ENABLED
|
|
help
|
|
Defines maximum number of concurrent BLE connections
|
|
|
|
config BT_NIMBLE_MAX_BONDS
|
|
int "Maximum number of bonds to save across reboots"
|
|
default 3
|
|
depends on BT_NIMBLE_ENABLED
|
|
help
|
|
Defines maximum number of bonds to save for peer security and our security
|
|
|
|
config BT_NIMBLE_MAX_CCCDS
|
|
int "Maximum number of CCC descriptors to save across reboots"
|
|
default 8
|
|
depends on BT_NIMBLE_ENABLED
|
|
help
|
|
Defines maximum number of CCC descriptors to save
|
|
|
|
config BT_NIMBLE_L2CAP_COC_MAX_NUM
|
|
int "Maximum number of connection oriented channels"
|
|
range 0 9
|
|
depends on BT_NIMBLE_ENABLED
|
|
default 0
|
|
help
|
|
Defines maximum number of BLE Connection Oriented Channels. When set to (0), BLE COC is not compiled in
|
|
|
|
choice BT_NIMBLE_PINNED_TO_CORE_CHOICE
|
|
prompt "The CPU core on which NimBLE host will run"
|
|
depends on BT_NIMBLE_ENABLED && !FREERTOS_UNICORE
|
|
help
|
|
The CPU core on which NimBLE host will run. You can choose Core 0 or Core 1.
|
|
Cannot specify no-affinity
|
|
|
|
config BT_NIMBLE_PINNED_TO_CORE_0
|
|
bool "Core 0 (PRO CPU)"
|
|
config BT_NIMBLE_PINNED_TO_CORE_1
|
|
bool "Core 1 (APP CPU)"
|
|
depends on !FREERTOS_UNICORE
|
|
endchoice
|
|
|
|
config BT_NIMBLE_PINNED_TO_CORE
|
|
int
|
|
depends on BT_NIMBLE_ENABLED
|
|
default 0 if BT_NIMBLE_PINNED_TO_CORE_0
|
|
default 1 if BT_NIMBLE_PINNED_TO_CORE_1
|
|
default 0
|
|
|
|
config BT_NIMBLE_TASK_STACK_SIZE
|
|
int "NimBLE Host task stack size"
|
|
depends on BT_NIMBLE_ENABLED
|
|
default 5120 if BLE_MESH
|
|
default 4096
|
|
help
|
|
This configures stack size of NimBLE host task
|
|
|
|
config BT_NIMBLE_ROLE_CENTRAL
|
|
bool "Enable BLE Central role"
|
|
depends on BT_NIMBLE_ENABLED
|
|
default y
|
|
|
|
config BT_NIMBLE_ROLE_PERIPHERAL
|
|
bool "Enable BLE Peripheral role"
|
|
depends on BT_NIMBLE_ENABLED
|
|
default y
|
|
|
|
config BT_NIMBLE_ROLE_BROADCASTER
|
|
bool "Enable BLE Broadcaster role"
|
|
depends on BT_NIMBLE_ENABLED
|
|
default y
|
|
|
|
config BT_NIMBLE_ROLE_OBSERVER
|
|
bool "Enable BLE Observer role"
|
|
depends on BT_NIMBLE_ENABLED
|
|
default y
|
|
|
|
config BT_NIMBLE_NVS_PERSIST
|
|
bool "Persist the BLE Bonding keys in NVS"
|
|
depends on BT_NIMBLE_ENABLED
|
|
default y
|
|
help
|
|
Enable this flag to make bonding persistent across device reboots
|
|
|
|
config BT_NIMBLE_SM_LEGACY
|
|
bool "Security manager legacy pairing"
|
|
depends on BT_NIMBLE_ENABLED
|
|
default y
|
|
help
|
|
Enable security manager legacy pairing
|
|
|
|
config BT_NIMBLE_SM_SC
|
|
bool "Security manager secure connections (4.2)"
|
|
depends on BT_NIMBLE_ENABLED
|
|
default y
|
|
help
|
|
Enable security manager secure connections
|
|
|
|
config BT_NIMBLE_DEBUG
|
|
bool "Enable extra runtime asserts and host debugging"
|
|
default n
|
|
depends on BT_NIMBLE_ENABLED
|
|
help
|
|
This enables extra runtime asserts and host debugging
|
|
|
|
config BT_NIMBLE_SM_SC_DEBUG_KEYS
|
|
bool "Use predefined public-private key pair"
|
|
default n
|
|
depends on BT_NIMBLE_SM_SC
|
|
help
|
|
If this option is enabled, SM uses predefined DH key pair as described
|
|
in Core Specification, Vol. 3, Part H, 2.3.5.6.1. This allows to
|
|
decrypt air traffic easily and thus should only be used for debugging.
|
|
|
|
config BT_NIMBLE_SVC_GAP_DEVICE_NAME
|
|
string "BLE GAP default device name"
|
|
depends on BT_NIMBLE_ENABLED
|
|
default "nimble"
|
|
help
|
|
The Device Name characteristic shall contain the name of the device as an UTF-8 string.
|
|
This name can be changed by using API ble_svc_gap_device_name_set()
|
|
|
|
config BT_NIMBLE_GAP_DEVICE_NAME_MAX_LEN
|
|
int "Maximum length of BLE device name in octets"
|
|
depends on BT_NIMBLE_ENABLED
|
|
default 31
|
|
help
|
|
Device Name characteristic value shall be 0 to 248 octets in length
|
|
|
|
config BT_NIMBLE_ATT_PREFERRED_MTU
|
|
int "Preferred MTU size in octets"
|
|
depends on BT_NIMBLE_ENABLED
|
|
default 256
|
|
help
|
|
This is the default value of ATT MTU indicated by the device during an ATT MTU exchange.
|
|
This value can be changed using API ble_att_set_preferred_mtu()
|
|
|
|
config BT_NIMBLE_SVC_GAP_APPEARANCE
|
|
hex "External appearance of the device"
|
|
depends on BT_NIMBLE_ENABLED
|
|
default 0
|
|
help
|
|
Standard BLE GAP Appearance value in HEX format e.g. 0x02C0
|
|
|
|
config BT_NIMBLE_ACL_BUF_COUNT
|
|
int "ACL Buffer count"
|
|
depends on BT_NIMBLE_ENABLED
|
|
default 12
|
|
help
|
|
The number of ACL data buffers.
|
|
|
|
config BT_NIMBLE_ACL_BUF_SIZE
|
|
int "ACL Buffer size"
|
|
depends on BT_NIMBLE_ENABLED
|
|
default 255
|
|
help
|
|
This is the maximum size of the data portion of HCI ACL data packets.
|
|
It does not include the HCI data header (of 4 bytes)
|
|
|
|
config BT_NIMBLE_HCI_EVT_BUF_SIZE
|
|
int "HCI Event Buffer size"
|
|
depends on BT_NIMBLE_ENABLED
|
|
default 70
|
|
help
|
|
This is the size of each HCI event buffer in bytes
|
|
|
|
config BT_NIMBLE_HCI_EVT_HI_BUF_COUNT
|
|
int "High Priority HCI Event Buffer count"
|
|
depends on BT_NIMBLE_ENABLED
|
|
default 30
|
|
help
|
|
This is the high priority HCI events' buffer size. High-priority
|
|
event buffers are for everything except advertising reports. If there
|
|
are no free high-priority event buffers then host will try to allocate a
|
|
low-priority buffer instead
|
|
|
|
config BT_NIMBLE_HCI_EVT_LO_BUF_COUNT
|
|
int "Low Priority HCI Event Buffer count"
|
|
depends on BT_NIMBLE_ENABLED
|
|
default 8
|
|
help
|
|
This is the low priority HCI events' buffer size. Low-priority event
|
|
buffers are only used for advertising reports. If there are no free
|
|
low-priority event buffers, then an incoming advertising report will
|
|
get dropped
|
|
|
|
menuconfig BT_NIMBLE_MESH
|
|
bool "Enable BLE mesh functionality"
|
|
select BT_NIMBLE_SM_SC
|
|
depends on BT_NIMBLE_ENABLED
|
|
default n
|
|
help
|
|
Enable BLE Mesh functionality
|
|
|
|
config BT_NIMBLE_MESH_PROXY
|
|
bool "Enable mesh proxy functionality"
|
|
default n
|
|
depends on BT_NIMBLE_MESH
|
|
help
|
|
Enable proxy. This is automatically set whenever NIMBLE_MESH_PB_GATT or
|
|
NIMBLE_MESH_GATT_PROXY is set
|
|
|
|
|
|
config BT_NIMBLE_MESH_PROV
|
|
bool "Enable BLE mesh provisioning"
|
|
default y
|
|
depends on BT_NIMBLE_MESH
|
|
help
|
|
Enable mesh provisioning
|
|
|
|
config BT_NIMBLE_MESH_PB_ADV
|
|
bool "Enable mesh provisioning over advertising bearer"
|
|
default y
|
|
depends on BT_NIMBLE_MESH_PROV
|
|
help
|
|
Enable this option to allow the device to be provisioned over
|
|
the advertising bearer
|
|
|
|
|
|
config BT_NIMBLE_MESH_PB_GATT
|
|
bool "Enable mesh provisioning over GATT bearer"
|
|
default y
|
|
select BT_NIMBLE_MESH_PROXY
|
|
depends on BT_NIMBLE_MESH_PROV
|
|
help
|
|
Enable this option to allow the device to be provisioned over the GATT
|
|
bearer
|
|
|
|
config BT_NIMBLE_MESH_GATT_PROXY
|
|
bool "Enable GATT Proxy functionality"
|
|
default y
|
|
select BT_NIMBLE_MESH_PROXY
|
|
depends on BT_NIMBLE_MESH
|
|
help
|
|
This option enables support for the Mesh GATT Proxy Service,
|
|
i.e. the ability to act as a proxy between a Mesh GATT Client
|
|
and a Mesh network
|
|
|
|
config BT_NIMBLE_MESH_RELAY
|
|
bool "Enable mesh relay functionality"
|
|
default n
|
|
depends on BT_NIMBLE_MESH
|
|
help
|
|
Support for acting as a Mesh Relay Node
|
|
|
|
config BT_NIMBLE_MESH_LOW_POWER
|
|
bool "Enable mesh low power mode"
|
|
default n
|
|
depends on BT_NIMBLE_MESH
|
|
help
|
|
Enable this option to be able to act as a Low Power Node
|
|
|
|
config BT_NIMBLE_MESH_FRIEND
|
|
bool "Enable mesh friend functionality"
|
|
default n
|
|
depends on BT_NIMBLE_MESH
|
|
help
|
|
Enable this option to be able to act as a Friend Node
|
|
|
|
config BT_NIMBLE_MESH_DEVICE_NAME
|
|
string "Set mesh device name"
|
|
default "nimble-mesh-node"
|
|
depends on BT_NIMBLE_MESH
|
|
help
|
|
This value defines Bluetooth Mesh device/node name
|
|
|
|
config BT_NIMBLE_CRYPTO_STACK_MBEDTLS
|
|
bool "Override TinyCrypt with mbedTLS for crypto computations"
|
|
default y
|
|
depends on BT_NIMBLE_ENABLED
|
|
select MBEDTLS_ECP_RESTARTABLE
|
|
select MBEDTLS_CMAC_C
|
|
help
|
|
Enable this option to choose mbedTLS instead of TinyCrypt for crypto
|
|
computations.
|