位帶的概述 2.1.1 什么是位帶操作? 先認識兩個概念:位帶區(qū)、位帶別名區(qū)。 位帶區(qū):支持位帶操作的地址區(qū)。 位帶別名區(qū):位帶區(qū)映射的地址區(qū) 

由圖可知,位帶區(qū)的每一位,在位帶別名區(qū)中都有32位對應(yīng)。(假裝理解:在位帶區(qū)中它是1位,在位帶別名區(qū)中它膨脹了,為32位)
位帶操作: 簡單理解,能對單片機的某一位進行單獨操作。 復(fù)雜理解,對位帶別名區(qū)的操作,最終會映射到位帶區(qū)中。理解:你對位帶別名的某32位地址寫入1,相當于在這個32位地址對應(yīng)的位帶區(qū)中的某一位寫1。 
2.1.2位帶操作的細節(jié)? 在位帶區(qū)中,每個位(比特)都映射到別名地址區(qū)的一個(32位)字——這字只有 LSB (最低位)有效。 理解:在位帶別名區(qū)中某個32位地址中寫入0x1,0x3,0x7,0xf是一樣的效果,都映射到位帶區(qū)中的某一位寫入1。 
支持位帶操作的兩個內(nèi)存區(qū)的范圍是: 0x2000_0000-0x200F_FFFF( SRAM 區(qū)中的最低 1MB) 0x4000_0000-0x400F_FFFF(片上外設(shè)區(qū)中的最低 1MB) 
2.1.3 位帶操作的好處 《1》書寫方便、使代碼簡潔 以前對某一位進行操作時(寫操作) 讀----讀取整個寄存器 改----屏蔽不需要的位,修改需要的位 寫----把修改好的值,寫回寄存器 現(xiàn)在對某一位進行操作時(寫操作) 寫----確定需要修改的位,寫入對應(yīng)位帶別名區(qū) 《2》安全 以前讀、改、寫,是三個步驟,在多中斷系統(tǒng)中,存在數(shù)據(jù)寫入丟失的風(fēng)險。 位帶操作、一步到位、直接寫,不會存在數(shù)據(jù)寫入丟失風(fēng)險。底層是執(zhí)行一個原子操作的讀、改、寫過程,不允許被中斷。 2.1.4 位帶操作的實現(xiàn) 映射公式: 
理解公式從這個角度理解:位帶操作的位帶區(qū)與位帶別名區(qū)的關(guān)系是:一個比特位(1位)與一個字(32位=4個字節(jié))之間的映射 “1比特位與4個字節(jié)的對應(yīng)” 
2.2 位帶軟件實現(xiàn) 2.2.1 片上外設(shè)位帶實現(xiàn) 以PA端口為例: 第一步:找出PA端口數(shù)據(jù)寄存器對應(yīng)的地址。 






復(fù)盤: 0x4000 0000 0x0002 0000 0x0000 0000 0x0000 0014 相加結(jié)果: 0x4002 0014 第二步:根據(jù)公式,求出位帶區(qū)別名區(qū)中地址 






2.3補充 位帶操作開始難以理解其實現(xiàn)原理,但漸漸喜歡位帶操作,漸漸了解一點一點。 《1》位帶操作,實現(xiàn)51類似的IO控制功能 《2》位帶區(qū)中的每一比特位,都映射到別名區(qū)的一個字(4個字節(jié))(綁定關(guān)系) 《3》對別名地址的訪問最終作用到位帶區(qū)的訪問上
51hei.png (2.27 KB, 下載次數(shù): 54)
下載附件
2020-6-20 01:07 上傳
以上文檔51hei下載地址:
位帶操作.docx
(1.91 MB, 下載次數(shù): 22)
2020-6-20 00:47 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
頭文件:
M4位帶操作文件.zip
(910 Bytes, 下載次數(shù): 16)
2020-6-20 00:47 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|