今天刚开始学习TM4C123G 在学习BIT_BANDING 时,对它的涉及到的地址很是不解。 一个问题是在TM4C123G 这款芯片中,字地址 与 字节地址的区别,字地址是不是对应四个字节中的低地址; 二是
对于这个公式(byte_offset X 8 +bit_number)x 4 ,为什么要乘 4 ?
还有就是经过位绑定后,在下图中 ,在位带别名区字地址相差4,字地址不是应该连续的吗?为什会这样?
我还是个菜鸟,请大家竭力帮助啊!坐等啊!
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
M4中对寄存器或者RAM访问,可以直接操作32bit的数据,也可以直接进行位操作。
bit banding就是把每个地址的位映射到另外一个地址上,对这个地址进行操作,来操作这个位。操作这个位的时候不影响其它位的值。
Datasheet中有关于bit banding的详细描述。TivaWare中也有相关的例程。
不太清楚楼主描述的字地址 和 字节地址具体的概念是什么。
实际上bit banding是通过对寄存器的某一位映射的一个地址进行操作,来直接操作这一位的值。
传统的做法,我们都是先把这个字节读出来,然后修改这个结果中的某一位的值然后再写回去。这样需要3步操作。使用bit banding的话一步就搞定了。
当然效率高只是其中一方面了。上述三步操作过程中如果MCU进入中断后修改了另外的位的话,上述操作会造成中断中修改位的信息丢失。
楼主想问的是什么细节?
M4中,外设寄存器、RAM、Flash、ROM等都有对应的地址的。
详细信息可以看一下memory map的描述。