xref: /nrf52832-nimble/rt-thread/libcpu/arm/cortex-r4/armv7.h (revision 104654410c56c573564690304ae786df310c91fc)
1 /*
2  * Copyright (c) 2006-2018, RT-Thread Development Team
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  *
6  * Change Logs:
7  * Date           Author       Notes
8  */
9 #ifndef __ARMV7_H__
10 #define __ARMV7_H__
11 
12 #ifndef VFP_DATA_NR
13 #define VFP_DATA_NR 32
14 #endif
15 
16 /* the exception stack without VFP registers */
17 struct rt_hw_exp_stack
18 {
19 	unsigned long r0;
20 	unsigned long r1;
21 	unsigned long r2;
22 	unsigned long r3;
23 	unsigned long r4;
24 	unsigned long r5;
25 	unsigned long r6;
26 	unsigned long r7;
27 	unsigned long r8;
28 	unsigned long r9;
29 	unsigned long r10;
30 	unsigned long fp;
31 	unsigned long ip;
32 	unsigned long sp;
33 	unsigned long lr;
34 	unsigned long pc;
35 	unsigned long cpsr;
36 };
37 
38 #define USERMODE    0x10
39 #define FIQMODE     0x11
40 #define IRQMODE     0x12
41 #define SVCMODE     0x13
42 #define MONITORMODE 0x16
43 #define ABORTMODE   0x17
44 #define HYPMODE     0x1b
45 #define UNDEFMODE   0x1b
46 #define MODEMASK    0x1f
47 #define NOINT       0xc0
48 
49 #define T_Bit       (1<<5)
50 #define F_Bit       (1<<6)
51 #define I_Bit       (1<<7)
52 #define A_Bit       (1<<8)
53 #define E_Bit       (1<<9)
54 #define J_Bit       (1<<24)
55 
56 #endif
57