fsfw/osal/FreeRTOS/Mutex.h

30 lines
690 B
C
Raw Normal View History

2020-05-29 14:02:14 +02:00
#ifndef FRAMEWORK_FREERTOS_MUTEX_H_
#define FRAMEWORK_FREERTOS_MUTEX_H_
2018-07-13 15:56:37 +02:00
2020-08-13 20:53:35 +02:00
#include "../../ipc/MutexIF.h"
2018-07-13 15:56:37 +02:00
2020-05-29 14:02:14 +02:00
#include <freertos/FreeRTOS.h>
#include <freertos/semphr.h>
2018-07-13 15:56:37 +02:00
2020-05-29 14:02:14 +02:00
/**
* @brief OS component to implement MUTual EXclusion
*
* @details
* Mutexes are binary semaphores which include a priority inheritance mechanism.
* Documentation: https://www.freertos.org/Real-time-embedded-RTOS-mutexes.html
* @ingroup osal
*/
2018-07-13 15:56:37 +02:00
class Mutex : public MutexIF {
public:
Mutex();
~Mutex();
2020-08-07 22:10:58 +02:00
ReturnValue_t lockMutex(TimeoutType timeoutType,
uint32_t timeoutMs) override;
2020-05-29 14:02:14 +02:00
ReturnValue_t unlockMutex() override;
2020-08-07 22:10:58 +02:00
2018-07-13 15:56:37 +02:00
private:
SemaphoreHandle_t handle;
};
2020-05-29 14:02:14 +02:00
#endif /* FRAMEWORK_FREERTOS_MUTEX_H_ */