1
0

armv7.h 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. /*
  2. * Copyright (c) 2006-2021, 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. #ifndef VFP_DATA_NR
  12. #define VFP_DATA_NR 32
  13. #endif
  14. /* the exception stack without VFP registers */
  15. struct rt_hw_exp_stack
  16. {
  17. unsigned long r0;
  18. unsigned long r1;
  19. unsigned long r2;
  20. unsigned long r3;
  21. unsigned long r4;
  22. unsigned long r5;
  23. unsigned long r6;
  24. unsigned long r7;
  25. unsigned long r8;
  26. unsigned long r9;
  27. unsigned long r10;
  28. unsigned long fp;
  29. unsigned long ip;
  30. unsigned long sp;
  31. unsigned long lr;
  32. unsigned long pc;
  33. unsigned long cpsr;
  34. };
  35. #define USERMODE 0x10
  36. #define FIQMODE 0x11
  37. #define IRQMODE 0x12
  38. #define SVCMODE 0x13
  39. #define MONITORMODE 0x16
  40. #define ABORTMODE 0x17
  41. #define HYPMODE 0x1b
  42. #define UNDEFMODE 0x1b
  43. #define MODEMASK 0x1f
  44. #define NOINT 0xc0
  45. #define T_Bit (1<<5)
  46. #define F_Bit (1<<6)
  47. #define I_Bit (1<<7)
  48. #define A_Bit (1<<8)
  49. #define E_Bit (1<<9)
  50. #define J_Bit (1<<24)
  51. #endif