diff --git a/critical_context.cpp b/critical_context.cpp new file mode 100644 index 0000000..607d4ed --- /dev/null +++ b/critical_context.cpp @@ -0,0 +1,8 @@ +#include "critical_context.hpp" +extern "C" { +#include "stm32/critical.h" +} +using namespace iflytop; + +CriticalContext::CriticalContext() { stm32_critical_enter(); } +CriticalContext::~CriticalContext() { stm32_critical_exit(); } \ No newline at end of file diff --git a/critical_context.hpp b/critical_context.hpp new file mode 100644 index 0000000..bf601f1 --- /dev/null +++ b/critical_context.hpp @@ -0,0 +1,13 @@ +#pragma once + +namespace iflytop { +using namespace std; + +class CriticalContext { + public: + CriticalContext(); + ~CriticalContext(); +}; +#define ZCriticalContext CriticalContext + +} // namespace iflytop \ No newline at end of file diff --git a/sdk.hpp b/sdk.hpp index 4cb73c2..44a17bc 100644 --- a/sdk.hpp +++ b/sdk.hpp @@ -7,4 +7,5 @@ extern "C" { #include "stm32/stm32.hpp" #include "mutex.hpp" #include "ticket.hpp" +#include "critical_context.hpp" void sdkinit(); \ No newline at end of file