cp15.h 811 B

123456789101112131415161718192021
  1. /*
  2. * Copyright (c) 2011-2024, Shanghai Real-Thread Electronic Technology Co.,Ltd
  3. *
  4. * Change Logs:
  5. * Date Author Notes
  6. * 2022-08-29 RT-Thread first version
  7. */
  8. #ifndef __CP15_H__
  9. #define __CP15_H__
  10. #define __get_cp(cp, op1, Rt, CRn, CRm, op2) \
  11. __asm volatile("MRC p" # cp ", " # op1 ", %0, c" # CRn ", c" # CRm ", " # op2 : "=r" (Rt) : : "memory" )
  12. #define __set_cp(cp, op1, Rt, CRn, CRm, op2) \
  13. __asm volatile("MCR p" # cp ", " # op1 ", %0, c" # CRn ", c" # CRm ", " # op2 : : "r" (Rt) : "memory" )
  14. #define __get_cp64(cp, op1, Rt, CRm) \
  15. __asm volatile("MRRC p" # cp ", " # op1 ", %Q0, %R0, c" # CRm : "=r" (Rt) : : "memory" )
  16. #define __set_cp64(cp, op1, Rt, CRm) \
  17. __asm volatile("MCRR p" # cp ", " # op1 ", %Q0, %R0, c" # CRm : : "r" (Rt) : "memory" )
  18. #endif