YAHAL
Yet Another Hardware Abstraction Library
Loading...
Searching...
No Matches
src
MCU
rp2040
lock_base_rp2040.h
1
/*
2
* lock_base_rp2040.h
3
*
4
* A basic lock implementation for rp2040
5
*
6
* Created on: 05.11.2022
7
* Author: Andreas Terstegge
8
*/
9
10
#ifndef _LOCK_BASE_RP2040_H
11
#define _LOCK_BASE_RP2040_H
12
13
#include "lock_base_interface.h"
14
#include "
RP2040.h
"
15
#include <cstdint>
16
using namespace
_SIO_;
17
18
class
lock_base_rp2040
:
public
lock_base_interface
19
{
20
public
:
21
lock_base_rp2040
();
22
virtual
~lock_base_rp2040
();
23
24
// No copy, no assignment
25
lock_base_rp2040
(
const
lock_base_rp2040
&) =
delete
;
26
lock_base_rp2040
& operator= (
const
lock_base_rp2040
&) =
delete
;
27
28
inline
bool
try_lock()
override
{
29
return
*_lock;
30
}
31
32
inline
void
unlock()
override
{
33
*_lock = 1;
34
}
35
36
inline
bool
is_locked()
override
{
37
return
SIO.SPINLOCK_ST & _mask;
38
}
39
40
private
:
41
static
uint32_t _index;
42
uint32_t _mask;
43
SPINLOCK_t * _lock;
44
};
45
46
#endif
// _LOCK_BASE_RP2040_H
RP2040.h
CMSIS-Core(M) Device Peripheral Access Layer Header File for Device RP2040.
lock_base_interface
Definition
lock_base_interface.h:28
lock_base_rp2040
Definition
lock_base_rp2040.h:19
Generated by
1.12.0