一、STM32的位带操作详解
1、别名存储器区, 字(32位)
映射
位段存储区, 位
为什么要有位带操作?因为STM32本身只支持8、16、32位的操作,而不支持位操作。但我们实际编程中有对1位单独操作的需求。我们一般是读出整个32位,然后对其中一位做操作后再整体32位写回去。这么做是可以,但是效率低。
如何改进效率?答案肯定是想一个办法能够直接一次性修改那一位同时还不影响其他位。如果硬件不支持是没办法的,除非硬件给你支持位操作。
而ARM又不支持位操作,所以发明了位带操作来替代。位带操作的思路是不让你直接单独操作这一位,而是把这一位给你映射到别的某个地方的32位,然后你在别的地方操作那个32位就相当于是操作这里的一位。
位带操作的核心问题就是:如何由位段存储器区地址,计算出别名存储器地址。