位帶操作
概念其實30年前就有了,那還是 8051 單片機開創的先河。如今CortexM3 將此能力進化,這里的位帶操作是8051 位尋址區的威力大幅加強版。
概念:
位帶操作就是指可以使用普通的加載/存儲指令來對單一的比特(bit)來進行讀寫。打個比喻,就相當于是為位帶區的每一位都起了一個別名,或者說是為為帶區的每一位新建了一個快捷方式,通過對指定別名的訪問來代替對指定位的訪問。說明:指定位與別名之間的映射過程是由內核完成的,無需人工干預。
為了能使用普通指令來加載和存儲那么這個別名肯定得膨脹成32位(一個字),不過這個32位只有低位有效。所以這樣就可以通過對別名的訪問來代替對位帶區指定位的訪問了。
位帶區:支持位帶操作的地址范圍,在cortexM3中有兩個地區實現了位帶操作,一個是SRAM的最低1MB范圍,另一個是片內外設區的最低1MB范圍。這兩個區中的地址除了可以像普通的RAM 一樣使用外,它們還都在“位帶別名區”有自己的位帶別名,位帶別名區把每個比特膨脹成一個32 位的字。當你通過位帶別名區訪問這些字時,就可以達到訪問原始比特的目的。
位帶別名區:對別名地址的訪問最終會作用到位帶區對應位,注意這個過程中有一個地址映射的過程。