一、位带操作:
位带操作的好处:通过位带操作(一套机制(特殊区域才拥有)+(一套公式))间接接取到某位地址,实现直接对位的操作。
在cm3中有两个区实现位带(一个是片上外设区。一个是SRAM区(运存))。
原理:把两个位带区的某一位膨胀成32位的字,我们可以得到32位的地址,当我们操作这个地址时,就相当于间接操作了这个位。
/*****************延申知识点***************/
volatile 关键字的作用:
该关键字主要用于寄存器地址的定义中;
作用:
防止编译器因为代码的优化而在每次访问寄存器地址获取的值不重新去读取该地址的值(自我理解作用就是:保证每次用到这个寄存器地址的值时,保证这个值一定是新鲜访问的,而不是之前留下来的状态)
/******************************************/
公式:
【片上外设公式】
对于片上外设位带区的某个比特,记它所在字节的地址为 A, 位序号为 n(0<=n<=7),则该比特在
别名区的地址为:
AliasAddr= =0x42000000+ (A-0x40000000)*8*4 +n*4
0X42000000 是外设位带别名区的起始地