bits.h 743 B

123456789101112131415161718192021
  1. #ifndef _ARM_BITS_H
  2. #define _ARM_BITS_H
  3. /* The classic macro */
  4. #define BV(x) (1<<(x))
  5. /* CM3 bit-bang access macro - no error checks! */
  6. #define BITBANG(addr,bit) \
  7. (*((volatile unsigned long *)( \
  8. ((unsigned long)&(addr) & 0x01ffffff)*32 + \
  9. (bit)*4 + 0x02000000 + ((unsigned long)&(addr) & 0xfe000000) \
  10. )))
  11. #define BITBANG_OFF(addr,offset,bit) \
  12. (*((volatile unsigned long *)( \
  13. (((unsigned long)&(addr) + offset) & 0x01ffffff)*32 + \
  14. (bit)*4 + 0x02000000 + (((unsigned long)&(addr) + offset) & 0xfe000000) \
  15. )))
  16. #endif