Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -240,7 +240,7 @@ jobs:
- "examples/NimBLE_Client"
- "examples/NimBLE_Server"
variant:
# - Generic_nRF51822:chip=xxaa
- Generic_nRF51822:chip=xxaa
- Generic_nRF52832
- Generic_nRF52833
- Generic_nRF52840
Expand Down Expand Up @@ -312,8 +312,8 @@ jobs:
platform = https://github.com/h2zero/platform-n-able.git
framework = arduino

; [env:generic_nrf51822_xxaa
; board = generic_nrf51822_xxaa
[env:generic_nrf51822_xxaa]
board = generic_nrf51822_xxaa

[env:generic_nrf52832]
board = generic_nrf52832
Expand Down Expand Up @@ -357,7 +357,7 @@ jobs:

[env:generic_nrf52840]
board = generic_nrf52840
build_flags = '-DMYNEWT_VAL_BLE_EXT_ADV=1'
build_flags = -D MYNEWT_VAL_BLE_EXT_ADV=1
EOF
cp ${{ matrix.example }}/* example/src/
platformio run -d example
Expand Down
4 changes: 4 additions & 0 deletions src/nimble/nimble/drivers/nrf51/src/ble_phy.c
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,10 @@
#error LE Coded PHY cannot be enabled on nRF51
#endif

#ifndef min
#define min(a, b) ((a)<(b)?(a):(b))
#endif

static uint32_t
ble_phy_mode_pdu_start_off(int phy_mode)
{
Expand Down
4 changes: 4 additions & 0 deletions src/nimble/nimble/drivers/nrf5x/src/ble_phy.c
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,10 @@ extern void tm_tick(void);

#include <nimble/nimble/controller/include/controller/ble_ll_pdu.h>

#ifndef min
#define min(a, b) ((a)<(b)?(a):(b))
#endif

/*
* NOTE: This code uses a couple of PPI channels so care should be taken when
* using PPI somewhere else.
Expand Down
11 changes: 4 additions & 7 deletions src/nimble/porting/npl/freertos/src/nimble_port_freertos.c
Original file line number Diff line number Diff line change
Expand Up @@ -98,14 +98,11 @@ nimble_port_freertos_deinit(void)
#else // ESP_PLATFORM

#if NIMBLE_CFG_CONTROLLER
# ifdef MYNEWT_VAL_NIMBLE_CONTROLLER_TASK_STACK_SIZE
# define NIMBLE_LL_STACK_SIZE (MYNEWT_VAL(NIMBLE_CONTROLLER_TASK_STACK_SIZE) / 4)

# if MYNEWT_VAL(BLE_LL_CFG_FEAT_LL_EXT_ADV)
# define NIMBLE_LL_STACK_SIZE (MYNEWT_VAL(NIMBLE_CONTROLLER_TASK_STACK_SIZE) / 4) + 30
# else
# if MYNEWT_VAL(BLE_LL_CFG_FEAT_LL_EXT_ADV)
# define NIMBLE_LL_STACK_SIZE (130)
# else
# define NIMBLE_LL_STACK_SIZE (100)
# endif
# define NIMBLE_LL_STACK_SIZE (MYNEWT_VAL(NIMBLE_CONTROLLER_TASK_STACK_SIZE) / 4)
# endif

// configMAX_PRIORITIES - 1 is Tmr builtin task
Expand Down
116 changes: 69 additions & 47 deletions src/nimconfig.h
Original file line number Diff line number Diff line change
@@ -1,12 +1,6 @@
#ifndef NIMCONFIG_H
#define NIMCONFIG_H

#ifdef ESP_PLATFORM
#include "sdkconfig.h"
#else
#include "ext_nimble_config.h"
#endif

/***********************************************
* Arduino User Options *
**********************************************/
Expand All @@ -24,12 +18,12 @@
* Values: 0 = DEBUG, 1 = INFO, 2 = WARNING, 3 = ERROR, 4 = CRITICAL, 5+ = NONE\n
* Uses approx. 32kB of flash memory.
*/
// #define MYNEWT_VAL_BLE_HS_LOG_LVL 5
// #define MYNEWT_VAL_BLE_HS_LOG_LVL 5

/** @brief Un-comment to change the default GAP appearance */
// #define MYNEWT_VAL_BLE_SVC_GAP_APPEARANCE 0x0

/** @brief Un-comment if not using NimBLE Client functions \n
/** @brief Un-comment if not using NimBLE Client functions \n
* Reduces flash size by approx. 7kB.
*/
// #define MYNEWT_VAL_BLE_ROLE_CENTRAL 0
Expand Down Expand Up @@ -108,11 +102,11 @@
*/
// #define MYNEWT_VAL_NIMBLE_CPP_ATT_VALUE_INIT_LENGTH 20

/** @brief Un-comment to set the debug log messages level from the NimBLE CPP Wrapper.\n
/** @brief Un-comment to set the debug log messages level from the NimBLE CPP Wrapper.\n
* Values: 0 = NONE, 1 = ERROR, 2 = WARNING, 3 = INFO, 4+ = DEBUG\n
* Uses approx. 32kB of flash memory.
*/
// #define MYNEWT_VAL_NIMBLE_CPP_LOG_LEVEL 0
// #define MYNEWT_VAL_NIMBLE_CPP_LOG_LEVEL 0

/** @brief Un-comment to enable the debug asserts in NimBLE CPP wrapper.*/
// #define MYNEWT_VAL_NIMBLE_CPP_DEBUG_ASSERT_ENABLED 1
Expand Down Expand Up @@ -153,53 +147,81 @@
/* This section should not be altered */

#ifdef ESP_PLATFORM
#include "sdkconfig.h"

#ifndef CONFIG_BTDM_SCAN_DUPL_TYPE_DEVICE
#define CONFIG_BTDM_SCAN_DUPL_TYPE_DEVICE (0)
#endif

#ifndef CONFIG_BTDM_SCAN_DUPL_TYPE_DATA
#define CONFIG_BTDM_SCAN_DUPL_TYPE_DATA (1)
#endif

#ifndef CONFIG_BTDM_SCAN_DUPL_TYPE_DATA_DEVICE
#define CONFIG_BTDM_SCAN_DUPL_TYPE_DATA_DEVICE (2)
#endif

#if !defined(CONFIG_BT_NIMBLE_LEGACY_VHCI_ENABLE) && (defined(CONFIG_IDF_TARGET_ESP32) || \
defined(CONFIG_IDF_TARGET_ESP32C3) || defined(CONFIG_IDF_TARGET_ESP32S3))
#define CONFIG_BT_NIMBLE_LEGACY_VHCI_ENABLE (1)
#endif

#if !defined(CONFIG_BT_CONTROLLER_DISABLED)
#define CONFIG_BT_CONTROLLER_DISABLED (0)
#endif

#ifndef CONFIG_BT_NIMBLE_USE_ESP_TIMER
#define CONFIG_BT_NIMBLE_USE_ESP_TIMER (1)
#endif
# include "sdkconfig.h"

# ifndef CONFIG_BTDM_SCAN_DUPL_TYPE_DEVICE
# define CONFIG_BTDM_SCAN_DUPL_TYPE_DEVICE (0)
# endif

# ifndef CONFIG_BTDM_SCAN_DUPL_TYPE_DATA
# define CONFIG_BTDM_SCAN_DUPL_TYPE_DATA (1)
# endif

# ifndef CONFIG_BTDM_SCAN_DUPL_TYPE_DATA_DEVICE
# define CONFIG_BTDM_SCAN_DUPL_TYPE_DATA_DEVICE (2)
# endif

# if !defined(CONFIG_BT_NIMBLE_LEGACY_VHCI_ENABLE) && \
(defined(CONFIG_IDF_TARGET_ESP32) || defined(CONFIG_IDF_TARGET_ESP32C3) || defined(CONFIG_IDF_TARGET_ESP32S3))
# define CONFIG_BT_NIMBLE_LEGACY_VHCI_ENABLE (1)
# endif

# if !defined(CONFIG_BT_CONTROLLER_DISABLED)
# define CONFIG_BT_CONTROLLER_DISABLED (0)
# endif

# if CONFIG_IDF_TARGET_ESP32 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32S3
# define NIMBLE_CFG_CONTROLLER 0
# else
# define NIMBLE_CFG_CONTROLLER CONFIG_BT_CONTROLLER_ENABLED
# endif

# ifndef CONFIG_BT_NIMBLE_USE_ESP_TIMER
# define CONFIG_BT_NIMBLE_USE_ESP_TIMER (1)
# endif

#define MYNEWT_VAL_BLE_USE_ESP_TIMER (CONFIG_BT_NIMBLE_USE_ESP_TIMER)

#else // !ESP_PLATFORM
# if defined(NRF51)
# include "syscfg/devcfg/nrf51cfg.h"
# elif defined(NRF52810_XXAA)
# include "syscfg/devcfg/nrf52810cfg.h"
# elif defined(NRF52832_XXAA) || defined(NRF52832_XXAB)
# include "syscfg/devcfg/nrf52832cfg.h"
# elif defined(NRF52833_XXAA)
# include "syscfg/devcfg/nrf52833cfg.h"
# elif defined(NRF52840_XXAA)
# include "syscfg/devcfg/nrf52840cfg.h"
# else
# error No supported mcu config specified
# endif

# ifdef USE_LFRC
# define MYNEWT_VAL_BLE_LL_SCA (500)
# endif

/* Required definitions for NimBLE */
# define NIMBLE_CFG_CONTROLLER (1)
# define MYNEWT_VAL_BLE_CONTROLLER (1)
# define CONFIG_BT_NIMBLE_LEGACY_VHCI_ENABLE (1)
#endif // ESP_PLATFORM

/* Enables the use of Arduino String class for attribute values */
#if defined __has_include
# if __has_include (<Arduino.h>)
# define NIMBLE_CPP_ARDUINO_STRING_AVAILABLE (1)
# endif
# if __has_include(<Arduino.h>)
# define NIMBLE_CPP_ARDUINO_STRING_AVAILABLE (1)
# endif
#endif

/* Required macros for all supported devices */

#ifndef CONFIG_BT_NIMBLE_ENABLED
#define CONFIG_BT_NIMBLE_ENABLED (1)
# define CONFIG_BT_NIMBLE_ENABLED (1)
#endif

#ifndef CONFIG_BT_CONTROLLER_ENABLED
#define CONFIG_BT_CONTROLLER_ENABLED (1)
#endif

#if CONFIG_IDF_TARGET_ESP32 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32S3
#define NIMBLE_CFG_CONTROLLER 0
#else
#define NIMBLE_CFG_CONTROLLER CONFIG_BT_CONTROLLER_ENABLED
# define CONFIG_BT_CONTROLLER_ENABLED (1)
#endif

#endif // NIMCONFIG_H
102 changes: 102 additions & 0 deletions src/syscfg/devcfg/nrf51cfg.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
#ifndef _NRF51CFG_H
#define _NRF51CFG_H

#ifndef NRF51
# error NRF51 not defined
#else

# ifndef DEVICE_RAM_SIZE
# error undefined ram size
# endif

# ifndef MYNEWT_VAL_BLE_MAX_CONNECTIONS
# define MYNEWT_VAL_BLE_MAX_CONNECTIONS 1
# endif

# ifndef MYNEWT_VAL_BLE_STORE_MAX_BONDS
# define MYNEWT_VAL_BLE_STORE_MAX_BONDS 1
# endif

# if MYNEWT_VAL_BLE_STORE_MAX_BONDS
# ifndef MYNEWT_VAL_BLE_STORE_MAX_CCCDS
# define MYNEWT_VAL_BLE_STORE_MAX_CCCDS 3
# endif
# ifndef MYNEWT_VAL_BLE_LL_CFG_FEAT_LL_PRIVACY
# define MYNEWT_VAL_BLE_LL_CFG_FEAT_LL_PRIVACY (1)
# endif
# else
# define MYNEWT_VAL_BLE_STORE_MAX_CCCDS 0
# ifndef MYNEWT_VAL_BLE_LL_CFG_FEAT_LL_PRIVACY
# define MYNEWT_VAL_BLE_LL_CFG_FEAT_LL_PRIVACY (0)
# endif
# endif

# if (DEVICE_RAM_SIZE) > 16
# ifndef MYNEWT_VAL_MSYS_1_BLOCK_COUNT
# define MYNEWT_VAL_MSYS_1_BLOCK_COUNT (12)
# endif
# ifndef MYNEWT_VAL_NIMBLE_HOST_TASK_STACK_SIZE
# define MYNEWT_VAL_NIMBLE_HOST_TASK_STACK_SIZE (2048)
# endif
# else
# ifndef MYNEWT_VAL_MSYS_1_BLOCK_COUNT
# if MYNEWT_VAL_BLE_LL_CFG_FEAT_LL_PRIVACY
# define MYNEWT_VAL_MSYS_1_BLOCK_COUNT (7)
# else
# define MYNEWT_VAL_MSYS_1_BLOCK_COUNT (5)
# endif
# endif
# ifndef MYNEWT_VAL_NIMBLE_HOST_TASK_STACK_SIZE
# define MYNEWT_VAL_NIMBLE_HOST_TASK_STACK_SIZE (1152)
# endif
# endif

# ifndef MYNEWT_VAL_NIMBLE_CONTROLLER_TASK_STACK_SIZE
# define MYNEWT_VAL_NIMBLE_CONTROLLER_TASK_STACK_SIZE (400)
# endif

# ifndef MYNEWT_VAL_MSYS_1_BLOCK_SIZE
# define MYNEWT_VAL_MSYS_1_BLOCK_SIZE (88)
# endif

# ifndef MYNEWT_VAL_BLE_ATT_PREFERRED_MTU
# define MYNEWT_VAL_BLE_ATT_PREFERRED_MTU (23)
# endif

# ifndef MYNEWT_VAL_BLE_SM_SC
# define MYNEWT_VAL_BLE_SM_SC (0)
# endif

# ifndef MYNEWT_VAL_BLE_LL_NUM_SCAN_DUP_ADVS
# define MYNEWT_VAL_BLE_LL_NUM_SCAN_DUP_ADVS (8)
# endif

# ifndef MYNEWT_VAL_BLE_LL_NUM_SCAN_RSP_ADVS
# define MYNEWT_VAL_BLE_LL_NUM_SCAN_RSP_ADVS (8)
# endif

# ifndef MYNEWT_VAL_BLE_LL_WHITELIST_SIZE
# define MYNEWT_VAL_BLE_LL_WHITELIST_SIZE (1)
# endif

# ifndef MYNEWT_VAL_BLE_ATT_SVR_MAX_PREP_ENTRIES
# define MYNEWT_VAL_BLE_ATT_SVR_MAX_PREP_ENTRIES (5)
# endif

# ifndef MYNEWT_VAL_BLE_GATT_READ_MAX_ATTRS
# define MYNEWT_VAL_BLE_GATT_READ_MAX_ATTRS (4)
# endif

# ifndef MYNEWT_VAL_BLE_TRANSPORT_EVT_COUNT
# define MYNEWT_VAL_BLE_TRANSPORT_EVT_COUNT (2)
# endif

# ifndef MYNEWT_VAL_BLE_TRANSPORT_ACL_COUNT
# define MYNEWT_VAL_BLE_TRANSPORT_ACL_COUNT (4)
# endif

#define MYNEWT_VAL_BLE_LL_CFG_FEAT_LE_2M_PHY (0)
#define MYNEWT_VAL_BLE_LL_CFG_FEAT_LE_CODED_PHY (0)

#endif /* NRF51 */
#endif /* _NRF51CFG_H */
61 changes: 61 additions & 0 deletions src/syscfg/devcfg/nrf52810cfg.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
#ifndef _NRF52810CFG_H
#define _NRF52810CFG_H

#if !defined(NRF52810_XXAA)
# error NRF52810_XXAA not defined
#else

# ifndef MYNEWT_VAL_MCU_TARGET__nRF52810
# define MYNEWT_VAL_MCU_TARGET__nRF52810 (1)
# endif

# ifndef MYNEWT_VAL_BLE_MAX_CONNECTIONS
# define MYNEWT_VAL_BLE_MAX_CONNECTIONS 1
# endif

# ifndef MYNEWT_VAL_MSYS_1_BLOCK_COUNT
# define MYNEWT_VAL_MSYS_1_BLOCK_COUNT (8)
# endif

# ifndef MYNEWT_VAL_MSYS_1_BLOCK_SIZE
# define MYNEWT_VAL_MSYS_1_BLOCK_SIZE (88)
# endif

# ifndef MYNEWT_VAL_BLE_STORE_MAX_BONDS
# define MYNEWT_VAL_BLE_STORE_MAX_BONDS 1
# endif

# if MYNEWT_VAL_BLE_STORE_MAX_BONDS
# ifndef MYNEWT_VAL_BLE_STORE_MAX_CCCDS
# define MYNEWT_VAL_BLE_STORE_MAX_CCCDS 3
# endif
# ifndef MYNEWT_VAL_BLE_LL_CFG_FEAT_LL_PRIVACY
# define MYNEWT_VAL_BLE_LL_CFG_FEAT_LL_PRIVACY (1)
# endif
# else
# define MYNEWT_VAL_BLE_STORE_MAX_CCCDS 0
# ifndef MYNEWT_VAL_BLE_LL_CFG_FEAT_LL_PRIVACY
# define MYNEWT_VAL_BLE_LL_CFG_FEAT_LL_PRIVACY (0)
# endif
# endif

# ifndef MYNEWT_VAL_BLE_ATT_PREFERRED_MTU
# define MYNEWT_VAL_BLE_ATT_PREFERRED_MTU (256)
# endif

# ifndef MYNEWT_VAL_NIMBLE_HOST_TASK_STACK_SIZE
# define MYNEWT_VAL_NIMBLE_HOST_TASK_STACK_SIZE (1408)
# endif

# ifndef MYNEWT_VAL_NIMBLE_CONTROLLER_TASK_STACK_SIZE
# define MYNEWT_VAL_NIMBLE_CONTROLLER_TASK_STACK_SIZE (400)
# endif

# ifndef MYNEWT_VAL_BLE_SM_SC
# define MYNEWT_VAL_BLE_SM_SC (0)
# endif

#define MYNEWT_VAL_BLE_LL_CFG_FEAT_LE_CODED_PHY (0)

#endif // NRF52810_XXAA
#endif // _NRF52810CFG_H
Loading