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