STM32位帶區(qū)和位帶別名區(qū)的淺談

1.首先談下為什么要使用位帶?

在學習51單片機時就已經(jīng)使用過位操作,比如使用sbit對單片機IO口的定義,但是STM32中并沒有這類關鍵字昵骤,而是通過訪問位帶別名區(qū)來實現(xiàn),即通過將每個比特位膨脹成一個32位字肯适,當訪問這些字的時候就達到了訪問比特的目的变秦。比方說BSRR寄存器有32個位,那么可以映射到32個地址上框舔,當我們?nèi)ピL問這32個地址就達到訪問32個比特的目的蹦玫,也就是說我們可以通過位帶輕松的去控制某一位。

2.存儲單元和存儲地址的相關概念

?在計算機中最小的信息單位是bit刘绣,也就是一個二進制位樱溉,8個bit組成一個Byte,也就是字節(jié)纬凤。一個存儲單元可以存儲一個字節(jié)福贞,也就是8個二進制位。計算機的存儲器容量是以字節(jié)為最小單位來計算的停士,對于一個有128個存儲單元的存儲器挖帘,可以說它的容量為128字節(jié)。如果有一個1KB的存儲器則它有1024個存儲單元恋技,它的編號為從0-1023拇舀。存儲器被劃分成了若干個存儲單元,每個存儲單元都是從0開始順序編號蜻底,如一個存儲器有128個存儲單元骄崩,則它的編號就是從0-127。

存儲地址一般用十六進制數(shù)表示,而每一個存儲器地址中又存放著一組二進制(或十六進制)表示的數(shù)要拂,通常稱為該地址的內(nèi)容抠璃。值得注意的是,內(nèi)儲單元的地址和地址中的內(nèi)容兩者是不一樣的脱惰。前者是存儲單元的編號搏嗡,表示存儲器總的一個位置,而后者表示這個位置里存放的數(shù)據(jù)枪芒。正如一個是房間號碼彻况,一個是房間里住的人一樣。

存放一個機器字的存儲單元舅踪,通常稱為字存儲單元纽甘,相應的單元地址叫字地址。而存放一個字節(jié)的單元抽碌,稱為字節(jié)存儲單元悍赢,相應的地址稱為字節(jié)地址。如果計算機中可以編址的最小單元是字存儲單元货徙,則該計算機稱為按字尋址的計算機左权。如果計算機中可編址的最小單位是字節(jié),則該計算機稱為按字節(jié)尋址的計算機痴颊。如果機器字長等于存儲器單元的位數(shù)赏迟,一個機器字可以包含數(shù)個字節(jié),所以一個存儲單元也可以包含數(shù)個能夠單獨編址的字節(jié)地址蠢棱。例如一個16位二進制的字存儲單元可存放兩個字節(jié)锌杀,可以按字地址尋址,也可以按字節(jié)地址尋址泻仙。當用字節(jié)地址尋址時糕再,16位的存儲單元占兩個字節(jié)地址。(摘自百度百科)

以STM32來說玉转,STM32是一個32位的微控制器突想,它是按字存儲單元;每一個寄存器都是占用4個字節(jié)即32位究抓,這點將在下面位帶和位帶別名地址換算的時候用到

3.Cortex-M3位帶區(qū)和位帶映射區(qū)對應關系

STM32位帶及位帶別名區(qū)域支持位帶操作的區(qū)域是SRAM 區(qū)的最低1MB 范圍(APB1/2猾担,AHB1外設)和片內(nèi)外設區(qū)的最低1MB范圍。


映射示意圖

對于SRAM/GPIO位帶區(qū)的某個比特(bit)漩蟆,記它所在的字節(jié)地址為A垒探,位序號為n(0<=n<=7)(如果是GPIO則n<=16),則該比特在位帶別名區(qū)中的地址為:

AliasAddr=0x22000000+((A-0x20000000)*8+n)*4

上式中‘8’表示每個字節(jié)中有8個比特怠李,‘4’表示4個字節(jié)(因為CM3是32位機,機器字為4個字節(jié))。

(A-0x20000000)表示一共用這么多個字節(jié)捺癞,(A-0x20000000)*8+n表示一共有這么多位,在別名區(qū)中夷蚊,每個位占4個字節(jié)地址,故((A-0x20000000)*8+n)*4表示該位在別名區(qū)中的偏移字節(jié)地址髓介。偏移地址加上基地址就是該比特在位帶別名區(qū)中的地址


?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末惕鼓,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子唐础,更是在濱河造成了極大的恐慌箱歧,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,817評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件一膨,死亡現(xiàn)場離奇詭異呀邢,居然都是意外死亡,警方通過查閱死者的電腦和手機豹绪,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,329評論 3 385
  • 文/潘曉璐 我一進店門价淌,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人瞒津,你說我怎么就攤上這事蝉衣。” “怎么了巷蚪?”我有些...
    開封第一講書人閱讀 157,354評論 0 348
  • 文/不壞的土叔 我叫張陵病毡,是天一觀的道長。 經(jīng)常有香客問我屁柏,道長啦膜,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,498評論 1 284
  • 正文 為了忘掉前任前联,我火速辦了婚禮功戚,結果婚禮上,老公的妹妹穿的比我還像新娘似嗤。我一直安慰自己啸臀,他們只是感情好,可當我...
    茶點故事閱讀 65,600評論 6 386
  • 文/花漫 我一把揭開白布烁落。 她就那樣靜靜地躺著乘粒,像睡著了一般。 火紅的嫁衣襯著肌膚如雪伤塌。 梳的紋絲不亂的頭發(fā)上灯萍,一...
    開封第一講書人閱讀 49,829評論 1 290
  • 那天,我揣著相機與錄音每聪,去河邊找鬼旦棉。 笑死齿风,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的绑洛。 我是一名探鬼主播救斑,決...
    沈念sama閱讀 38,979評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼真屯!你這毒婦竟也來了脸候?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,722評論 0 266
  • 序言:老撾萬榮一對情侶失蹤绑蔫,失蹤者是張志新(化名)和其女友劉穎运沦,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體配深,經(jīng)...
    沈念sama閱讀 44,189評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡携添,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,519評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了凉馆。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片薪寓。...
    茶點故事閱讀 38,654評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖澜共,靈堂內(nèi)的尸體忽然破棺而出向叉,到底是詐尸還是另有隱情,我是刑警寧澤嗦董,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布母谎,位于F島的核電站,受9級特大地震影響京革,放射性物質發(fā)生泄漏奇唤。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,940評論 3 313
  • 文/蒙蒙 一匹摇、第九天 我趴在偏房一處隱蔽的房頂上張望咬扇。 院中可真熱鬧,春花似錦廊勃、人聲如沸懈贺。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,762評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽梭灿。三九已至,卻和暖如春冰悠,著一層夾襖步出監(jiān)牢的瞬間堡妒,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,993評論 1 266
  • 我被黑心中介騙來泰國打工溉卓, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留皮迟,地道東北人搬泥。 一個月前我還...
    沈念sama閱讀 46,382評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像万栅,于是被迫代替她去往敵國和親佑钾。 傳聞我的和親對象是個殘疾皇子西疤,可洞房花燭夜當晚...
    茶點故事閱讀 43,543評論 2 349

推薦閱讀更多精彩內(nèi)容