8000 extmod/btstack: Allow the BTstack config to be overridden by a board. · pybricks/micropython@9c9f06a · GitHub
[go: up one dir, main page]

Skip to content

Commit 9c9f06a

Browse files
committed
extmod/btstack: Allow the BTstack config to be overridden by a board.
If a board defines MICROPY_BLUETOOTH_BTSTACK_CONFIG_FILE as the path to a header file, then that file will be used for the BTstack config. Signed-off-by: Damien George <damien@micropython.org>
1 parent 5de8d7e commit 9c9f06a

File tree

3 files changed

+51
-43
lines changed

3 files changed

+51
-43
lines changed

extmod/btstack/btstack.mk

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ GIT_SUBMODULES += lib/btstack
66

77
MICROPY_BLUETOOTH_BTSTACK_USB ?= 0
88
MICROPY_BLUETOOTH_BTSTACK_H4 ?= 1
9+
MICROPY_BLUETOOTH_BTSTACK_CONFIG_FILE ?= '"extmod/btstack/btstack_config_common.h"'
910

1011
BTSTACK_EXTMOD_DIR = extmod/btstack
1112

@@ -14,6 +15,7 @@ SRC_EXTMOD_C += $(BTSTACK_EXTMOD_DIR)/modbluetooth_btstack.c
1415
INC += -I$(TOP)/$(BTSTACK_EXTMOD_DIR)
1516

1617
CFLAGS_EXTMOD += -DMICROPY_BLUETOOTH_BTSTACK=1
18+
CFLAGS_EXTMOD += -DMICROPY_BLUETOOTH_BTSTACK_CONFIG_FILE=$(MICROPY_BLUETOOTH_BTSTACK_CONFIG_FILE)
1719
CFLAGS_EXTMOD += -DMICROPY_PY_BLUETOOTH_USE_SYNC_EVENTS=1
1820
CFLAGS_EXTMOD += -DMICROPY_PY_BLUETOOTH_ENABLE_PAIRING_BONDING=1
1921

extmod/btstack/btstack_config.h

Lines changed: 1 addition & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -1,48 +1,6 @@
11
#ifndef MICROPY_INCLUDED_EXTMOD_BTSTACK_BTSTACK_CONFIG_H
22
#define MICROPY_INCLUDED_EXTMOD_BTSTACK_BTSTACK_CONFIG_H
33

4-
// BTstack features that can be enabled
5-
#define ENABLE_BLE
6-
#define ENABLE_LE_PERIPHERAL
7-
#define ENABLE_LE_CENTRAL
8-
// #define ENABLE_CLASSIC
9-
#define ENABLE_L2CAP_LE_CREDIT_BASED_FLOW_CONTROL_MODE
10-
// #define ENABLE_LOG_INFO
11-
// #define ENABLE_LOG_DEBUG
12-
#define ENABLE_LOG_ERROR
13-
14-
// BTstack configuration. buffers, sizes, ...
15-
#define HCI_ACL_PAYLOAD_SIZE 1021
16-
#define MAX_NR_GATT_CLIENTS 1
17-
#define MAX_NR_HCI_CONNECTIONS 1
18-
#define MAX_NR_L2CAP_SERVICES 3
19-
#define MAX_NR_L2CAP_CHANNELS 3
20-
#define MAX_NR_RFCOMM_MULTIPLEXERS 1
21-
#define MAX_NR_RFCOMM_SERVICES 1
22-
#define MAX_NR_RFCOMM_CHANNELS 1
23-
#define MAX_NR_BTSTACK_LINK_KEY_DB_MEMORY_ENTRIES 2
24-
#define MAX_NR_BNEP_SERVICES 1
25-
#define MAX_NR_BNEP_CHANNELS 1
26-
#define MAX_NR_HFP_CONNECTIONS 1
27-
#define MAX_NR_WHITELIST_ENTRIES 1
28-
#define MAX_NR_SM_LOOKUP_ENTRIES 3
29-
#define MAX_NR_SERVICE_RECORD_ITEMS 1
30-
#define MAX_NR_AVDTP_STREAM_ENDPOINTS 1
31-
#define MAX_NR_AVDTP_CONNECTIONS 1
32-
#define MAX_NR_AVRCP_CONNECTIONS 1
33-
34-
#define MAX_NR_LE_DEVICE_DB_ENTRIES 4
35-
36-
// Link Key DB and LE Device DB using TLV on top of Flash Sector interface
37-
// #define NVM_NUM_DEVICE_DB_ENTRIES 16
38-
39-
// We don't give btstack a malloc, so use a fixed-size ATT DB.
40-
#define MAX_ATT_DB_SIZE 512
41-
42-
// BTstack HAL configuration
43-
#define HAVE_EMBEDDED_TIME_MS
44-
45-
// Some USB dongles take longer to respond to HCI reset (e.g. BCM20702A).
46-
#define HCI_RESET_RESEND_TIMEOUT_MS 1000
4+
#include MICROPY_BLUETOOTH_BTSTACK_CONFIG_FILE
475

486
#endif // MICROPY_INCLUDED_EXTMOD_BTSTACK_BTSTACK_CONFIG_H
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
#ifndef MICROPY_INCLUDED_EXTMOD_BTSTACK_BTSTACK_CONFIG_COMMON_H
2+
#define MICROPY_INCLUDED_EXTMOD_BTSTACK_BTSTACK_CONFIG_COMMON_H
3+
4+
// BTstack features that can be enabled
5+
#define ENABLE_BLE
6+
#define ENABLE_LE_PERIPHERAL
7+
#define ENABLE_LE_CENTRAL
8+
// #define ENABLE_CLASSIC
9+
#define ENABLE_L2CAP_LE_CREDIT_BASED_FLOW_CONTROL_MODE
10+
// #define ENABLE_LOG_INFO
11+
// #define ENABLE_LOG_DEBUG
12+
#define ENABLE_LOG_ERROR
13+
14+
// BTstack configuration. buffers, sizes, ...
15+
#define HCI_ACL_PAYLOAD_SIZE 1021
16+
#define MAX_NR_GATT_CLIENTS 1
17+
#define MAX_NR_HCI_CONNECTIONS 1
18+
#define MAX_NR_L2CAP_SERVICES 3
19+
#define MAX_NR_L2CAP_CHANNELS 3
20+
#define MAX_NR_RFCOMM_MULTIPLEXERS 1
21+
#define MAX_NR_RFCOMM_SERVICES 1
22+
#define MAX_NR_RFCOMM_CHANNELS 1
23+
#define MAX_NR_BTSTACK_LINK_KEY_DB_MEMORY_ENTRIES 2
24+
#define MAX_NR_BNEP_SERVICES 1
25+
#define MAX_NR_BNEP_CHANNELS 1
26+
#define MAX_NR_HFP_CONNECTIONS 1
27+
#define MAX_NR_WHITELIST_ENTRIES 1
28+
#define MAX_NR_SM_LOOKUP_ENTRIES 3
29+
#define MAX_NR_SERVICE_RECORD_ITEMS 1
30+
#define MAX_NR_AVDTP_STREAM_ENDPOINTS 1
31+
#define MAX_NR_AVDTP_CONNECTIONS 1
32+
#define MAX_NR_AVRCP_CONNECTIONS 1
33+
34+
#define MAX_NR_LE_DEVICE_DB_ENTRIES 4
35+
36+
// Link Key DB and LE Device DB using TLV on top of Flash Sector interface
37+
// #define NVM_NUM_DEVICE_DB_ENTRIES 16
38+
39+
// We don't give btstack a malloc, so use a fixed-size ATT DB.
40+
#define MAX_ATT_DB_SIZE 512
41+
42+
// BTstack HAL configuration
43+
#define HAVE_EMBEDDED_TIME_MS
44+
45+
// Some USB dongles take longer to respond to HCI reset (e.g. BCM20702A).
46+
#define HCI_RESET_RESEND_TIMEOUT_MS 1000
47+
48+
#endif // MICROPY_INCLUDED_EXTMOD_BTSTACK_BTSTACK_CONFIG_COMMON_H

0 commit comments

Comments
 (0)
0