22 lines
559 B
C
22 lines
559 B
C
#ifndef _ARM_BITS_H
|
|
#define _ARM_BITS_H
|
|
|
|
/* The classic macro */
|
|
#define BV(x) (1<<(x))
|
|
|
|
/* CM3 bit-band access macro - no error checks! */
|
|
#define BITBAND(addr,bit) \
|
|
(*((volatile unsigned long *)( \
|
|
((unsigned long)&(addr) & 0x01ffffff)*32 + \
|
|
(bit)*4 + 0x02000000 + ((unsigned long)&(addr) & 0xfe000000) \
|
|
)))
|
|
|
|
#define BITBAND_OFF(addr,offset,bit) \
|
|
(*((volatile unsigned long *)( \
|
|
(((unsigned long)&(addr) + offset) & 0x01ffffff)*32 + \
|
|
(bit)*4 + 0x02000000 + (((unsigned long)&(addr) + offset) & 0xfe000000) \
|
|
)))
|
|
|
|
|
|
#endif
|