Cortex‐M3 预定义的存储器映射
支持了位帶操作后可以使用普通的加载/存储指令来对单一的比特进行读写。
在CM3中有两个区中实现了位带。其中一个是SRAM 区的最低1MB 范围第二个则昰片内外设区的最低1MB 范围。这两个区中的地址除了可以像普通的RAM 一样使用外它们还都有自己的“位带别名区”,位带别名区把每个比特膨胀成一个32 位的字当你通过位带别名区访问这些字时,就可以达到访问原始比特的目的
位带区与位带别名区的膨胀对应关系图
汇编程序角度,普通操作与位带操作对比
当跳转依据是某个位时:
- 从位带别名区读取状态位
支持位带操作的两个内存区的范围是:
对于SRAM 位带区的某個比特记它所在字节地址为A,位序号为n(0<=n<=7),则该比特在别名区的地址为:
对于片上外设位带区的某个比特记它所在字节的地址为A,位序号为n(0<=n<=7),则该比特在别名区的地址为:
上式中“*4”表示一个字为4 个字节,“*8”表示一个字节中有8 个比特
详细内容查阅《Cortex-M3权威指南》第5章