From 75d936bed077758a6e8e3f1ea246ec104506c1fa Mon Sep 17 00:00:00 2001 From: cfif Date: Fri, 11 Jul 2025 13:36:32 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A1=D0=B1=D0=BE=D1=80=D0=BA=D0=B0=20=D0=BD?= =?UTF-8?q?=D0=BE=D0=B2=D0=BE=D0=B3=D0=BE=20=D0=BF=D1=80=D0=BE=D0=B5=D0=BA?= =?UTF-8?q?=D1=82=D0=B0.=20=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D0=BE=D1=81=D0=BD=D0=BE=D0=B2=D0=BD=D1=8B?= =?UTF-8?q?=D1=85=20=D0=BC=D0=BE=D0=B4=D1=83=D0=BB=D0=B5=D0=B9.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- inc/SystemMutexCmsis.h | 17 +++++++++++++++++ modular.json | 22 ++++++++++++++++++++++ src/SystemMutexCmsis.c | 29 +++++++++++++++++++++++++++++ 3 files changed, 68 insertions(+) create mode 100644 inc/SystemMutexCmsis.h create mode 100644 modular.json create mode 100644 src/SystemMutexCmsis.c diff --git a/inc/SystemMutexCmsis.h b/inc/SystemMutexCmsis.h new file mode 100644 index 0000000..85b43c3 --- /dev/null +++ b/inc/SystemMutexCmsis.h @@ -0,0 +1,17 @@ +// +// Created by xemon on 26.09.23. +// + +#ifndef MOTOTERMINAL_MAIN_ONAT435_SYSTEMMUTEXCMSIS_H +#define MOTOTERMINAL_MAIN_ONAT435_SYSTEMMUTEXCMSIS_H + +#include "SystemMutexInterface.h" +#include "cmsis_os.h" + +typedef osMutexId_t SystemMutexCmsis; + +void SystemMutexCmsis_init(SystemMutexCmsis *env, const osMutexAttr_t *attr); + +tSystemMutexInterface SystemMutexCmsis_getInterface(SystemMutexCmsis *env); + +#endif //MOTOTERMINAL_MAIN_ONAT435_SYSTEMMUTEXCMSIS_H diff --git a/modular.json b/modular.json new file mode 100644 index 0000000..e2c0431 --- /dev/null +++ b/modular.json @@ -0,0 +1,22 @@ +{ + "dep": [ + { + "type": "git", + "provider": "HVAC", + "repo": "CmsisRtosInterface" + }, + { + "type": "git", + "provider": "HVAC", + "repo": "SystemSyncInterface" + } + ], + "cmake": { + "inc_dirs": [ + "./inc/" + ], + "srcs": [ + "./src/**.c" + ] + } +} \ No newline at end of file diff --git a/src/SystemMutexCmsis.c b/src/SystemMutexCmsis.c new file mode 100644 index 0000000..f7ca45e --- /dev/null +++ b/src/SystemMutexCmsis.c @@ -0,0 +1,29 @@ +// +// Created by xemon on 26.09.23. +// +#include +#include +#include "SystemMutexCmsis.h" + + +void SystemMutexCmsis_init(SystemMutexCmsis *env, const osMutexAttr_t *attr) { + *env = osMutexNew(attr); +} + +static bool SystemMutexCmsis_acquire(SystemMutexCmsis *env, int32_t timeout) { + return osMutexAcquire(*env, timeout) == osOK; +} + +static bool SystemMutexCmsis_release(SystemMutexCmsis *env, const osMutexAttr_t *attr) { + return osMutexRelease(*env) == osOK; +} + + +tSystemMutexInterface SystemMutexCmsis_getInterface(SystemMutexCmsis *env) { + return (tSystemMutexInterface) { + .env = env, + .acquire = (void *) SystemMutexCmsis_acquire, + .release = (void *) SystemMutexCmsis_release, + }; +} +