From 4820475e5ccf2451e9f1e8193b5e85e88f86cc58 Mon Sep 17 00:00:00 2001 From: Olivier Date: Tue, 13 Jun 2017 18:49:14 +0200 Subject: [PATCH] NRF5: Enable critical section (#879) --- drivers/CircularBuffer/CircularBuffer.h | 6 ++++-- hal/architecture/MyHwNRF5.h | 4 +--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/CircularBuffer/CircularBuffer.h b/drivers/CircularBuffer/CircularBuffer.h index 56258ed..0f03b49 100644 --- a/drivers/CircularBuffer/CircularBuffer.h +++ b/drivers/CircularBuffer/CircularBuffer.h @@ -1,4 +1,4 @@ -/* +/* CircularBuffer - An Arduino circular buffering library for arbitrary types. Created by Ivo Pullens, Emmission, 2014-2016 -- www.emmission.nl @@ -88,9 +88,11 @@ public: */ inline uint8_t available(void) const { + uint8_t ret_value; MY_CRITICAL_SECTION { - return m_fill; + ret_value = m_fill; } + return ret_value; } /** diff --git a/hal/architecture/MyHwNRF5.h b/hal/architecture/MyHwNRF5.h index e7c788d..1586d1c 100644 --- a/hal/architecture/MyHwNRF5.h +++ b/hal/architecture/MyHwNRF5.h @@ -130,9 +130,7 @@ typedef struct { } nrf_ecb_t; #ifndef DOXYGEN -#define MY_CRITICAL_SECTION -// temp. commented, to fix "CircularBuffer.h:94:2: warning: control reaches end of non-void function" error -#define __MY_CRITICAL_SECTION \ +#define MY_CRITICAL_SECTION \ for (uint32_t __savePriMask \ __attribute__((__cleanup__(__priMaskRestore))) = __get_PRIMASK(), \ __ToDo = __disableIntsRetVal(); \