位段操作

本文介绍了Cortex-M3处理器如何使用位段操作访问内存中的位,特别是两个预定义的位段区域,一个位于SRAM,另一个位于外设区域。通过位带基地址和映射公式,可以实现对特定位的读-改-写操作。举例说明了如何映射SRAM地址到位段地址,并指出对位段地址的写操作等同于对源地址的位操作。

       利用位段操作,一次加载/存储操作可以访问(读/写)一个位。对于Cortex-M3处理器,两个名为位段区域的预定义存储器区域支持位段操作,其中一个位于SRAM区的第一个1MB,另一个位于外设区域的第一个1MB。这两个位段区将别名存储器区中的每个字映射到位段存储器区的一个位,在别名存储区写入一个字具有对位段区的目标位执行读-改-写操作的相同效果。

      下面的映射公式给出了别名区中的每个字是如何对应位带区的相应位的:

            bit_word_addr = bit_band_base + (byte_offset× 32) + (bit_number× 4)

 其中:

         bit_word_addr是别名存储器区中字的地址,它映射到某个目标位。

         bit_band_base是别名区的起始地址。

         byte_offset是包含目标位的字节在位段里的序号

         bit_number是目标位所在位置(0-31)

下面的例子说明如何映射别名区中SRAM地址为0x20000300的字节中的位2:

        0x22006008 = 0x22000000 + (0x300× 32) + (2× 4).

对0x22006008地址的写操作与对SRAM中地址0x20000300字节的位2执行读-改-写操作有着相同的效果。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值