Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nickshl/DevBoy.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'STM32F415APP/DevCore/FreeRtosWrapper/RtosMutex.cpp')
m---------STM32F415APP/DevCore0
-rw-r--r--STM32F415APP/DevCore/FreeRtosWrapper/RtosMutex.cpp124
2 files changed, 0 insertions, 124 deletions
diff --git a/STM32F415APP/DevCore b/STM32F415APP/DevCore
new file mode 160000
+Subproject f560c684baebe9d7d5bdc4ee01149e8c29cf060
diff --git a/STM32F415APP/DevCore/FreeRtosWrapper/RtosMutex.cpp b/STM32F415APP/DevCore/FreeRtosWrapper/RtosMutex.cpp
deleted file mode 100644
index 8a54679..0000000
--- a/STM32F415APP/DevCore/FreeRtosWrapper/RtosMutex.cpp
+++ /dev/null
@@ -1,124 +0,0 @@
-//******************************************************************************
-// @file RtosMutex.cpp
-// @author Nicolai Shlapunov
-//
-// @details DevCore: FreeRTOS Mutex Wrapper Class, implementation
-//
-// @copyright Copyright (c) 2018, Devtronic & Nicolai Shlapunov
-// All rights reserved.
-//
-// @section SUPPORT
-//
-// Devtronic invests time and resources providing this open source code,
-// please support Devtronic and open-source hardware/software by
-// donations and/or purchasing products from Devtronic.
-//
-//******************************************************************************
-
-// *****************************************************************************
-// *** Includes ************************************************************
-// *****************************************************************************
-#include "RtosMutex.h"
-#include "Rtos.h"
-
-// *****************************************************************************
-// *** Constructor **********************************************************
-// *****************************************************************************
-RtosMutex::RtosMutex()
-{
- // Create semaphore
- mutex = xSemaphoreCreateMutex();
- // Check error
- if(mutex == nullptr)
- {
- // TODO: implement error handling
- Break();
- }
-}
-
-// *****************************************************************************
-// *** Destructor **********************************************************
-// *****************************************************************************
-RtosMutex::~RtosMutex()
-{
- if(mutex == nullptr)
- {
- vSemaphoreDelete(mutex);
- }
-}
-
-// *****************************************************************************
-// *** Lock ****************************************************************
-// *****************************************************************************
-Result RtosMutex::Lock(TickType_t ticks_to_wait)
-{
- Result result;
- // Variable for check result
- BaseType_t res;
-
- // Check handler mode
- if(Rtos::IsInHandlerMode())
- {
- BaseType_t task_woken;
- // Take mutex from ISR
- res = xSemaphoreTakeFromISR(mutex, &task_woken);
- // Switch context if needed
- portEND_SWITCHING_ISR((res == pdPASS) ? task_woken : pdFALSE);
- }
- else
- {
- // Take mutex
- res = xSemaphoreTake(mutex, ticks_to_wait);
- }
-
- // Find result
- if(res == pdTRUE)
- {
- result = Result::RESULT_OK;
- }
- else
- {
- result = Result::ERR_MUTEX_LOCK;
- }
-
- // Return result
- return result;
-}
-
-
-// *****************************************************************************
-// *** Release *************************************************************
-// *****************************************************************************
-Result RtosMutex::Release()
-{
- Result result;
- // Variable for check result
- BaseType_t res = xSemaphoreGive(mutex);
-
- // Check handler mode
- if(Rtos::IsInHandlerMode())
- {
- BaseType_t task_woken;
- // Give mutex from ISR
- res = xSemaphoreGiveFromISR(mutex, &task_woken);
- // Switch context if needed
- portEND_SWITCHING_ISR((res == pdPASS) ? task_woken : pdFALSE);
- }
- else
- {
- // Give mutex
- res = xSemaphoreGive(mutex);
- }
-
- // Find result
- if(res == pdTRUE)
- {
- result = Result::RESULT_OK;
- }
- else
- {
- result = Result::ERR_MUTEX_RELEASE;
- }
- // Return result
- return result;
-}