嵌入式单片机中位带操作控制与实现
STM32 单片机的SRAM有两个区支持位带(bit-band)操作。
那么,什么是位带,位带操作的原理是怎样的呢?
今天来梳理一下这个知识点。
在介绍位带操作之前,先看一看 ARM Crotext-M3 的存储器映射。
CM3 的地址空间是 4GB, 程序可以在代码区,内部 SRAM 区以及外部 RAM 区中执行。
STM32单片机的程序存储器、数据存储器、寄存器和输入输出端口,被组织在同一个 4GB 的线性地址空间内。数据字节以小端格式存放在存储器中。
CM3 使用如下术语来表示位带存储的相关地址。
-
位带区:支持位带操作的地址区
-
位带别名:对别名地址的访问最终会变换成对位带区的访问(注意:有一个地址映射过程)
Cortex-M3 存储器映像包括两个位段(bit-band)区。这两个位段区将别名存储器区中的每个字映射到位段存储器区的一个位,在别名存储区写入一个字具有对位段区的目