libyggdrasil  v1.0.0
cortex.h
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 <c/common/types.h>
29 #include <c/common/attributes.h>
30 
31 #include <core_cm7.h>
32 
37  asm volatile ("cpsid i" : : : "memory");
38 }
39 
44  asm volatile ("cpsie i" : : : "memory");
45 }
46 
52  SCB->VTOR = address;
53 }
54 
60  u32 startTime = HAL_GetTick();
61 
62  while (HAL_GetTick() < startTime + ms);
63 }
types.h
Commonly used type definitions and helper templates.
addr_t
u32 addr_t
Definition: types.h:52
core_SetInterruptVectorBase
ALWAYS_INLINE void core_SetInterruptVectorBase(addr_t address)
Sets the base address of the interrupt vector table.
Definition: cortex.h:51
ALWAYS_INLINE
#define ALWAYS_INLINE
Definition: attributes.h:34
u32
uint32_t u32
Definition: types.h:38
core_DisableInterrupts
ALWAYS_INLINE void core_DisableInterrupts(void)
Disables all interrupts.
Definition: cortex.h:36
attributes.h
Commonly used C and GNU attributes.
core_EnableInterrupts
ALWAYS_INLINE void core_EnableInterrupts(void)
Enables all interrupts.
Definition: cortex.h:43
core_Delay
ALWAYS_INLINE void core_Delay(u32 ms)
Delays execution by a certain number of milliseconds.
Definition: cortex.h:37