

下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、 STM32M3 內(nèi)核的位帶操作原理及步驟STM32 M3內(nèi)核的位帶操作原理及步驟、位帶操作有什么?什么是位帶操作位帶操作的作:可以實現(xiàn)對某GPIO寄存器(或SRAM內(nèi)存中)的某bit位直接寫0或1,達(dá)到控制GPIO輸出(或改變SRAM中這bit位的值);就如同51單機(jī)控制GPIO樣的便。如:51:P10=1; / /把P1的第個引腳設(shè)置為電平STM32:PAout(0)=1; /把PA的第個引腳設(shè)置成電平位帶操作的原理:在 CM3 中,有兩個區(qū)中實現(xiàn)了位帶,如下圖,其中個是 SRAM 區(qū)的最低 1MB 范圍,第個則是內(nèi)外設(shè)區(qū)的最低1MB范圍。這兩個區(qū)中的地址除了可以像普通的 RAM 樣使外,
2、它們還都有的“位帶別名區(qū)”,位帶別名區(qū)把每個特(1bit)膨脹成個 32位(4個字節(jié))。當(dāng)你通過位帶別名區(qū)訪問這些字時,就可以達(dá)到訪問原始特的的。1MB位帶區(qū)對應(yīng)32MB位帶別名區(qū)(1byte=8bit映射成8*4byte=32byte)。位帶區(qū)和位帶別名區(qū)的映射如下圖:位帶區(qū):持位帶操作的地址區(qū)位帶別名:對別名地址的訪問最終作到位帶區(qū)的訪問上(這中途有個地址映射過程)映射過程舉例如下:要設(shè)置0 x2000 0000這個字節(jié)的第個位bit2為1,使位帶操作的步驟有:1、將1寫位 帶別名區(qū)對應(yīng)的映射地址(即0 x22000008,因為1bit對應(yīng)4個byte);2、將0 x2000 0000的值
3、 讀取到內(nèi)部的緩沖區(qū)(這步驟是內(nèi)核完成的,屬于原操作,不需要戶操作);3、將bit2 置1,再把值寫 回到0 x2000 0000(屬于原操作,不需要戶操作)。映射過程總結(jié):在位帶區(qū)中,每個特都映射到別名地址區(qū)的4個字節(jié)且4個字節(jié)只有最低位有效。當(dāng)個別名地址被訪問時,會先把該地址變換成位帶地址。對于讀操作,讀取位帶地址中的4個字節(jié)(因為數(shù)據(jù)總線是32位的,寄存器也是32位的,所以是讀4個字節(jié)),再把需要的位右移到最低有效位,并把最低有效位返回(相當(dāng)于將位帶區(qū)的值右移再做與操作)。對于寫操作,把需要寫的位左移對應(yīng)的位序號處(相當(dāng)于把1(或0)左移n(n為該bit位所在的位置)位再和位帶區(qū)的值做與
4、操作),然后執(zhí)個原的“讀改寫”過程。位帶操作的優(yōu)點(diǎn):1、操作簡單;2、因為進(jìn)的是原操作,可以防對寄存器的臟寫。、位帶操作的代碼實現(xiàn)解析這部分內(nèi)容參考STM32F3與F4系列Cortex M4內(nèi)核編程冊,先貼原:A word access to the SRAM or peripheral bit-band alias regions map to a single bit in the SRAM or peripheral bit-band region.Bit band accesses can use byte, halfword, or word transfers. The bit b
5、and transfer size matches the transfer size of the instructionmaking the bit band access.The following formula shows how the alias region maps onto the bit-band region:bit_word_offset = (byte_offset x 32) + (bit_number x 4)bit_word_addr = bit_band_base + bit_word_offset Where:Bit_word_offset is the
6、position of the target bit in the bit-band memory region.Bit_word_addr is the address of the word in the alias memory region that maps to thetargeted bit.Bit_band_base is the starting address of the alias region.Byte_offset is the number of the byte in the bit-band region that contains the targetedb
7、it.Bit_number is the bit position, 0-7, of the targeted bit.這段英介紹了位帶區(qū)和位帶別名區(qū)的地址映射關(guān)系。要獲得某個位帶區(qū)地址在位帶別名區(qū)的映射地址,按照上的公式即可求出。下解釋:bit_word_offse:t 基于位帶別名區(qū)起始地址的偏移;bit_word_add:r 映射在位帶別名區(qū)的地址(即為所求的地址);Bit_band_base:位帶別名區(qū)的起始地址,如下圖中編號3所;Byte_offse:t 該字節(jié)(或32位字)相對于位帶區(qū)起始地址的偏移;Bit_numbe:r 該bit位在所在字節(jié)(或32位字)中的位置,范圍07(03
8、1),如下圖中編號1所;bit_number x :4 4表bit位在位帶別名區(qū)占4個字節(jié)的地址空間下實例來進(jìn)敘述:參考資料中的實例:1、位帶區(qū)起始地址在位帶別名區(qū)的地址映射:The alias word at 0 x2200001C maps to bit7 of the bit-band byte at 0 x20000000:0 x2200001C = 0 x22000000+ (0*32) + (7*4)2、位帶區(qū)結(jié)束地址在位帶別名區(qū)的地址映射:The alias word at 0 x23FFFFED maps to bit0 of the bit-band byte at 0 x2
9、00FFFFF:0 x23FFFFED = 0 x22000000 + (0 xFFFFF*32) + (0*4)下解釋下,0 x000000 xFFFFF為1MB的地址;07表個字節(jié)中某bit位的位置;0 x2200 0000表始地址;0 xFFFFF*32=0 xFFFFF*8*4,表0 xFFFFF*8個bit位在位帶別名區(qū)所占的地址空間。位帶別名區(qū)的起代碼中的實例分析:#define PAout(n) BIT_ADDR(GPIOA_ODR_Addr,n) 輸/ 出#define GPIOA_ODR_Addr (GPIOA_BASE+20) /0 x4002001表4 GPIOA-ODR
10、寄存器的地址#define BIT_ADDR(addr, bitnum) MEM_ADDR(BITBAND(addr, bitnum)#define BITBAND(addr, bitnum) (addr & 0 xF0000000)+0 x2000000+(addr &0 xFFFFF)5)+(bitnum2) #define MEM_ADDR(addr) *(volatile unsigned long *)(addr)上的宏定義合成條:#define PAout(n) *(volatile unsigned long *)( GPIOA_ODR_Addr & 0 xF0000000)+0 x2000000+( GPIOA_ODR_Addr &0 xFFFFF)5)+(n2)其中:GPIOA_ODR_Addr & 0 xF0000000=0 x4000 0000(GPIOA_ODR_Addr &0 xFFFFF)5=0 x0002 0014*32n2=n*4即:PAout(n)= 0 x4000 0000+0 x2000000+0 x0
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)學(xué)-福建省龍巖市2025年高中畢業(yè)班三月教學(xué)質(zhì)量檢測(龍巖一檢)試題和答案
- 閥門拆除施工方案
- 石方靜態(tài)爆破施工方案
- 《千米的認(rèn)識》(教學(xué)設(shè)計)-2024-2025學(xué)年三年級上冊數(shù)學(xué)人教版
- 2025年中考物理模擬試卷猜題卷1(含答案)
- 醫(yī)院科室安裝監(jiān)控合同范例
- 合作租房合同范例
- 質(zhì)量控制標(biāo)準(zhǔn)提升計劃
- 人事部如何構(gòu)建企業(yè)形象計劃
- 幼兒園作業(yè)與學(xué)習(xí)反饋計劃
- 2025年山東核電有限公司招聘筆試參考題庫含答案解析
- 2025年宜賓人才限公司招聘高頻重點(diǎn)提升(共500題)附帶答案詳解
- 施工安全情況日常巡查表(完整版)
- 2025年醫(yī)院科教工作計劃
- 《亞洲概況及東亞》課件
- 河北交投物流有限公司所屬公司招聘筆試沖刺題2025
- 第二節(jié) 物業(yè)管理服務(wù)機(jī)構(gòu)設(shè)置及運(yùn)作流程
- 2025年上半年江西宜春市事業(yè)單位招聘工作人員651人重點(diǎn)基礎(chǔ)提升(共500題)附帶答案詳解
- 初三心理健康 教育課件
- UL1650標(biāo)準(zhǔn)中文版-2019便攜式電纜UL中文版標(biāo)準(zhǔn)
- 高血壓課件教學(xué)課件
評論
0/150
提交評論