summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/CMakeLists.txt1
-rw-r--r--src/libs/mynewt-nimble/porting/npl/freertos/include/nimble/nimble_npl_os.h14
-rw-r--r--src/libs/mynewt-nimble/porting/npl/freertos/src/npl_os_freertos.c2
3 files changed, 15 insertions, 2 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 9de1ca11..aa06b2b3 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -780,6 +780,7 @@ add_definitions(-DNRF52 -DNRF52832 -DNRF52832_XXAA -DNRF52_PAN_74 -DNRF52_PAN_64
add_definitions(-DFREERTOS)
add_definitions(-D__STACK_SIZE=1024)
add_definitions(-D__HEAP_SIZE=4096)
+add_definitions(-DMYNEWT_VAL_BLE_LL_RFMGMT_ENABLE_TIME=1500)
# Note: Only use this for debugging
# Derive the low frequency clock from the main clock (SYNT)
diff --git a/src/libs/mynewt-nimble/porting/npl/freertos/include/nimble/nimble_npl_os.h b/src/libs/mynewt-nimble/porting/npl/freertos/include/nimble/nimble_npl_os.h
index 545be0f4..3a3de40d 100644
--- a/src/libs/mynewt-nimble/porting/npl/freertos/include/nimble/nimble_npl_os.h
+++ b/src/libs/mynewt-nimble/porting/npl/freertos/include/nimble/nimble_npl_os.h
@@ -37,6 +37,8 @@ extern "C" {
#define BLE_NPL_TIME_FOREVER portMAX_DELAY
+extern volatile int ble_npl_in_critical;
+
/* This should be compatible with TickType_t */
typedef uint32_t ble_npl_time_t;
typedef int32_t ble_npl_stime_t;
@@ -282,14 +284,22 @@ static inline uint32_t
ble_npl_hw_enter_critical(void)
{
//vPortEnterCritical();
- return npl_freertos_hw_enter_critical();
+ ++ble_npl_in_critical;
+ return npl_freertos_hw_enter_critical();
}
static inline void
ble_npl_hw_exit_critical(uint32_t ctx)
{
- npl_freertos_hw_exit_critical(ctx);
+ --ble_npl_in_critical;
+ npl_freertos_hw_exit_critical(ctx);
+}
+static inline bool
+ble_npl_hw_is_in_critical(void)
+{
+ // Do the same as RIOT and keep track of the critical state manually
+ return (ble_npl_in_critical > 0);
}
#ifdef __cplusplus
diff --git a/src/libs/mynewt-nimble/porting/npl/freertos/src/npl_os_freertos.c b/src/libs/mynewt-nimble/porting/npl/freertos/src/npl_os_freertos.c
index 875521ab..667a751c 100644
--- a/src/libs/mynewt-nimble/porting/npl/freertos/src/npl_os_freertos.c
+++ b/src/libs/mynewt-nimble/porting/npl/freertos/src/npl_os_freertos.c
@@ -22,6 +22,8 @@
#include <string.h>
#include "nimble/nimble_npl.h"
+volatile int ble_npl_in_critical = 0;
+
static inline bool
in_isr(void)
{