您好,登錄后才能下訂單哦!
這篇文章主要介紹STM32位段是什么意思,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
首先需要明確下,位段,位帶和別名區(qū)這三個名詞
位段:STM32用戶參考手冊使用的名字
位帶:CortexM3參考手冊使用的
別名區(qū):地址總線上用來位訪問地址區(qū)域,
所以說,位段和位帶是一個意思,是不同手冊的不同叫法。
由上述的名詞解釋得知,位帶功能并不是STM32獨有的,是CortexM3的功能(CortexM4也有這樣的功能)。MCS51有位操作,以一位(bit)為數(shù)據(jù)對象的操作,MCS51可以簡單的將P1口的第2位獨立操作:P1.2=0;P1.2=1 ;這樣就把P1口的第三個腳(bit2)置0置1。而STM32的位段、位帶別名區(qū)最重要的就為了實現(xiàn)這樣的功能。
位帶是有范圍的,并不是CortexM3全部地址空間都支持的。在 CM3中,有兩個區(qū)中實現(xiàn)了位帶。其中一個是 SRAM 區(qū)的最低 1MB 范圍,第二個則是片內(nèi)外設(shè)區(qū)的最低 1MB 范圍。這兩個區(qū)中的地址除了可以像普通的 RAM 一樣使用外,它們還都有自己的“位帶別名區(qū)”,位帶別名區(qū)把每個比特膨脹成一個 32 位的字。當你通過位帶別名區(qū)訪問這些字時,就可以達到訪問原始比特的目的。
支持位帶操作的兩個內(nèi)存區(qū)的范圍是:
0x2000_0000‐0x200F_FFFF(SRAM 區(qū)中最低1MB區(qū)域)
0x4000_0000‐0x400F_FFFF(片上外設(shè)區(qū)中的最低 1MB)
對 SRAM 位帶區(qū)的某個比特,記該比特所在字節(jié)的地址為A,位序號為 n (0<=n<=7),則它在別名區(qū)的地址為:
AliasAddr = 0x22000000 + ((A‐0x20000000)*8+n)*4 =0x22000000 + (A‐0x20000000)*32 + n*4
對于片上外設(shè)位帶區(qū)的某個比特,記該比特所在字節(jié)的地址為A,位序號為 n (0<=n<=7),則該比特在別名區(qū)的地址為:
AliasAddr = 0x42000000 + ((A‐0x40000000)*8+n)*4 = 0x42000000 + (A‐0x40000000)*32 + n*4
上式中,“*4”表示一個字為 4 個字節(jié),“*8”表示一個字節(jié)中有 8 個比特。
當然,對于寫入操作也從4步精簡到3步
以上是“STM32位段是什么意思”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道!
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。