libyggdrasil  v1.0.0
instructions.hpp
Go to the documentation of this file.
1  /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
2  * _____.___. .___ .__.__ *
3  * \__ | | ____ ____ __| _/___________ _____|__| | *
4  * / | |/ ___\ / ___\ / __ |\_ __ \__ \ / ___/ | | *
5  * \____ / /_/ > /_/ > /_/ | | | \// __ \_\___ \| | |__ *
6  * / ______\___ /\___ /\____ | |__| (____ /____ >__|____/ *
7  * \/ /_____//_____/ \/ \/ \/ *
8  * - Midgard - *
9  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
10  * This software can be used by students and other personal of the *
11  * Bern University of Applied Sciences under the terms of the MIT *
12  * license. *
13  * For other persons this software is under the terms of the GNU *
14  * General Public License version 2. *
15  * *
16  * Copyright © 2021, Bern University of Applied Sciences. *
17  * All rights reserved. *
18  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
26 #pragma once
27 
28 #include <cpp/common/types.hpp>
30 
31 namespace bsp::core {
32 
36  ALWAYS_INLINE static void DSB() {
37  asm volatile("DSB");
38  }
39 
43  ALWAYS_INLINE static void ISB() {
44  asm volatile("ISB");
45  }
46 
50  ALWAYS_INLINE static void WFE() {
51  asm volatile("WFE");
52  }
53 
57  ALWAYS_INLINE static void WFI() {
58  asm volatile("WFI");
59  }
60 
64  ALWAYS_INLINE static void NOP() {
65  asm volatile("NOP");
66  }
67 }
types.hpp
Commonly used type definitions and helper templates.
ALWAYS_INLINE
#define ALWAYS_INLINE
Definition: attributes.h:34
bsp::core
Definition: cortex.hpp:33
attributes.hpp
Commonly used C++ and GNU attributes.