ARM Cortex-M3/M4的位带(Bit-Band)技术是一种内存映射技术,它允许对单个位进行直接操作,而不需要对整个字(通常是32位)进行操作。这项技术主要用于对特定的位进行高效的读写,特别是在需要对GPIO或其他单个位进行操作的场景中非常有用。
位带技术原理:
-
位带区域:Cortex-M3定义了两个位带区域,一个是SRAM的最低1MB范围,另一个是片上外设区域的最低1MB范围。
-
位带别名区域:与位带区域相对应,有两个位带别名区域,分别映射SRAM位带区域和外设位带区域。位带别名区域将每个比特映射到一个32位的地址,这样,通过访问别名区域的特定地址,就可以直接操作原始位带区域中的单个位。
-
地址映射:位带操作通过特定的地址映射公式来实现。对于SRAM位带区域,映射公式为:
位带别名地址 = 位带区基址 + (位带区地址偏移 << 5) + (位序号 << 2)
对于外设位带区域,映射公式类似,但使用不同的基址。
-
操作简化