STM32 單片機的SRAM有兩個區支持位帶(bit-band)操作。
那么,什么是位帶,位帶操作的原理是怎樣的呢?
今天來梳理一下這個知識點。
在介紹位帶操作之前,先看一看 ARM Crotext-M3 的存儲器映射。
CM3 的地址空間是 4GB, 程序可以在代碼區,內部 SRAM 區以及外部 RAM 區中執行。
STM32單片機的程序存儲器、數據存儲器、寄存器和輸入輸出端口,被組織在同一個 4GB 的線性地址空間內。數據字節以小端格式存放在存儲器中。
CM3 使用如下術語來表示位帶存儲的相關地址。
-
位帶區:支持位帶操作的地址區
-
位帶別名:對別名地址的訪問最終會變換成對位帶區的訪問(注意:有一個地址映射過程)
Cortex-M3 存儲器映像包括兩個位段(bit-band)區。這兩個位段區將別名存儲器區中的每個字映射到位段存儲器區的一個位,在別名存儲區寫入一個字具有對位段區的目