NE5532 发表于 2012-12-30 10:00 
位带里面每一个32bit存储单元,对应被映射区的一个bit,顺序排列,组成位带,32bit单元内,只有最低1bit有 ...
多谢大侠,
这个意思我大致明白。
归根结底为以下三条指令难以理解:
#define BITBAND(addr, bitnum) ((addr & 0xF0000000)+0x2000000+((addr &0xFFFFF)<<5)+(bitnum<<2))
此指令为将位带地址转换为对应的位带别名区地址?但从运算上似乎对应不上
#define MEM_ADDR(addr) *((volatile unsigned long *)(addr))
此指令有点看不懂,似乎是实行所谓的原子“读改写”操作相关的东西?
#define BIT_ADDR(addr, bitnum) MEM_ADDR(BITBAND(addr, bitnum))
|