今天学习了位带操作。
在CM3中实现了位带。其中一个就是SRAM区的最低位1MB范围,第二个则是片内外设的最低位1MB范围。这两个区中的地址除了可以像普通的RAM一样使用外,它们都还有自己的“未带别名区”。位带别名区把每个比特位膨胀成一个32位的字。我们可以通过操作为带区进而操作原始的比特区。
Cortex-M3中内存存储器映射:
位带的计算方法:
AliasAddr = 0x22000000 + ((A - 0x20000000) * 8 + n)*4
即 公式:位别名地址=0x42000000(外设区位别名基地址) + 外设区位字节地址偏移量× 32 + 操作位号(0~7) × 4
其他类似。