distortos  v0.7.0
object-oriented C++ RTOS for microcontrollers
ARMv6-M-ARMv7-M-SoftwareStackFrame.hpp
Go to the documentation of this file.
1 
12 #ifndef SOURCE_ARCHITECTURE_ARM_ARMV6_M_ARMV7_M_ARMV6_M_ARMV7_M_SOFTWARESTACKFRAME_HPP_
13 #define SOURCE_ARCHITECTURE_ARM_ARMV6_M_ARMV7_M_ARMV6_M_ARMV7_M_SOFTWARESTACKFRAME_HPP_
14 
16 
17 namespace distortos
18 {
19 
20 namespace architecture
21 {
22 
25 {
26 #if __FPU_PRESENT == 1 && __FPU_USED == 1
27 
29  constexpr static uintptr_t defaultExceptionReturn {0xfffffffd};
30 
31 #endif // __FPU_PRESENT == 1 && __FPU_USED == 1
32 
33 #if defined(__ARM_ARCH_7M__) || defined(__ARM_ARCH_7EM__)
34 
36  void* r4;
38  void* r5;
40  void* r6;
42  void* r7;
43 
44 #endif // defined(__ARM_ARCH_7M__) || defined(__ARM_ARCH_7EM__)
45 
47  void* r8;
49  void* r9;
51  void* r10;
53  void* r11;
54 
55 #if !defined(__ARM_ARCH_7M__) && !defined(__ARM_ARCH_7EM__)
56 
58  void* r4;
60  void* r5;
62  void* r6;
64  void* r7;
65 
66 #endif // !defined(__ARM_ARCH_7M__) && !defined(__ARM_ARCH_7EM__)
67 
68 #if __FPU_PRESENT == 1 && __FPU_USED == 1
69 
71  void* reserved;
73  void* exceptionReturn;
74 
75 #endif // __FPU_PRESENT == 1 && __FPU_USED == 1
76 };
77 
78 } // namespace architecture
79 
80 } // namespace distortos
81 
82 #endif // SOURCE_ARCHITECTURE_ARM_ARMV6_M_ARMV7_M_ARMV6_M_ARMV7_M_SOFTWARESTACKFRAME_HPP_
void * r9
r9 register
Definition: ARMv6-M-ARMv7-M-SoftwareStackFrame.hpp:49
void * r7
r7 register
Definition: ARMv6-M-ARMv7-M-SoftwareStackFrame.hpp:64
stack frame for ARMv6-M and ARMv7-M created by software during context switch
Definition: ARMv6-M-ARMv7-M-SoftwareStackFrame.hpp:24
void * r5
r5 register
Definition: ARMv6-M-ARMv7-M-SoftwareStackFrame.hpp:60
CMSIS proxy header for STM32F4.
void * r6
r6 register
Definition: ARMv6-M-ARMv7-M-SoftwareStackFrame.hpp:62
Top-level namespace of distortos project.
Definition: buttons.hpp:33
void * r8
r8 register
Definition: ARMv6-M-ARMv7-M-SoftwareStackFrame.hpp:47
void * r4
r4 register
Definition: ARMv6-M-ARMv7-M-SoftwareStackFrame.hpp:58
void * r11
r11 register
Definition: ARMv6-M-ARMv7-M-SoftwareStackFrame.hpp:53
void * r10
r10 register
Definition: ARMv6-M-ARMv7-M-SoftwareStackFrame.hpp:51