娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

歷史上的今天

今天是:2025年02月02日(星期日)

2020年02月02日 | STM32F1學(xué)習(xí)-深入理解存儲(chǔ)器(存儲(chǔ)器映射以及bit-band)

發(fā)布者:MysticalEssence 來(lái)源: eefocus關(guān)鍵字:STM32F1  存儲(chǔ)器  存儲(chǔ)器映射  bit-band 手機(jī)看文章 掃描二維碼
隨時(shí)隨地手機(jī)看文章

1.存儲(chǔ)器映射


STM32F1的系統(tǒng)結(jié)構(gòu)

存儲(chǔ)器映射

STM32F1的存儲(chǔ)器的映射


存儲(chǔ)器映射是指把芯片中或芯片外的FLASH,RAM,外設(shè),BOOTBLOCK等進(jìn)行統(tǒng)一編址。即用地址來(lái)表示對(duì)象。這個(gè)地址絕大多數(shù)是由廠家規(guī)定好的,用戶(hù)只能用而不能改。用戶(hù)只能在掛外部RAM或FLASH的情況下可進(jìn)行自定義。

從系統(tǒng)結(jié)構(gòu)圖中我們可以看出,所有內(nèi)部設(shè)備都是AHB System Bus上,AHB系統(tǒng)總線(xiàn)又分成兩個(gè)連接的橋,APB1的操作速度限于36MHZ,APB2的操作速度是全速(最高72MHZ)可以很清晰的從圖中看出每個(gè)橋連接的內(nèi)部設(shè)備。


寄存器(GPIOX)組起始地址

我們以GPIOA為例子。首先我們得明確一點(diǎn):GPIOA是掛載在APB2上,APB2是從AHB系統(tǒng)總線(xiàn)中分出來(lái)的。


從stm32f10x.h頭文件中,我們可以得到一些程序段:


typedef unsigned int uint32_t;//說(shuō)明CRL等寄存器是十六位的。


typedef struct

{

  __IO uint32_t CRL;

  __IO uint32_t CRH;

  __IO uint32_t IDR;

  __IO uint32_t ODR;

  __IO uint32_t BSRR;

  __IO uint32_t BRR;

  __IO uint32_t LCKR;

} GPIO_TypeDef;


首先我們明確GPIO_TypeDef是一個(gè)結(jié)構(gòu)體變量。


下面的程序段最好從下往上看更好理解。


#define PERIPH_BASE((uint32_t)0x40000000) 


#define APB2PERIPH_BASE (PERIPH_BASE + 0x10000) 


#define GPIOA_BASE (APB2PERIPH_BASE + 0x0800)


#define GPIOA ((GPIO_TypeDef *) GPIOA_BASE)


PERIPH_BASE 是外設(shè)基地址,為了便于我們可以把這個(gè)比作是AHB系統(tǒng)總線(xiàn)的地址,那么APB2的地址就是在外設(shè)基地址的基礎(chǔ)上加上偏移量。由程序段看出來(lái)偏移量是0x10000,同樣的理解。GPIOA的地址就是在APB2的地址的地址基礎(chǔ)上加上一個(gè)偏移地址,由程序段中可以看出是0x800。所以我們可以得到GPIOA的起始地址地址是0x4000_0000+0x1_0000+0x0800 = 0x4001_0800。


從STM32的中文參考手冊(cè)中,我們看到CRL、CHL、IDR、ODR、BSRR、BRR、LCKR的偏移量都是004H。


因?yàn)镃RL、CHL、IDR、ODR、BSRR、BRR、LCKR寄存器都定義的是16位的地址,所以定義32的地址需要


這么理解:一個(gè)地址存儲(chǔ)八位信息,(char一個(gè)字節(jié)是八位最大的整數(shù)是2^8-1)比如:0x4001_0800存儲(chǔ)8位的信息,0x4001_0801存儲(chǔ)8位信息......0x4001_0804存儲(chǔ)8位信息。一共存儲(chǔ)32位信息。GPIOx的某一位的CRL需要4個(gè)位(兩個(gè)位控制模式,兩個(gè)位控制速度)來(lái)控制。4*8(CRL只控制低8位)=32。


因此GPIOA各個(gè)寄存器的實(shí)際地址


寄存器                偏移地址         實(shí)際地址=基地址+偏移地址 


GPIOA->CRL     0x00  0x40010800+0x00 

GPIOA->CRH;   0x04   0x40010800+0x04 


GPIOA->IDR;     0x08   0x40010800+0x08 


GPIOA->ODR    0x0c  0x40010800+0x0c 


GPIOA->BSRR   0x10   0x40010800+0x10 


GPIOA->BRR     0x14   0x40010800+0x14


GPIOA->LCKR   0x18   0x40010800+0x18 


2.bit-band理解


Bit Banding功能是相對(duì)于以往能夠進(jìn)行bit操作的單片機(jī)而言的。通過(guò)Bit Banding功能可以像51單片機(jī)的bit操作一樣。MCS51可以簡(jiǎn)單的將P1口的第2位獨(dú)立作:P1.2=0;P1.2=1  就是這樣把P1口的第三個(gè)腳(BIT2)置0或置1了。而現(xiàn)在STM32的位段、位帶別名區(qū)就為了實(shí)現(xiàn)這樣的功能。只不過(guò)他是為需要操作的地址(1字節(jié))的每一個(gè)位(共8位)起個(gè)別名,分別對(duì)應(yīng)別名區(qū)的一個(gè)字(word)。也就是別名區(qū)的大小是Bit Band的32倍。這樣,32MB的別名區(qū)地址的操作,就是對(duì)相應(yīng)Bit Band區(qū)的位的操作。Bit Banding功能是相對(duì)于以往能夠進(jìn)行bit操作的單片機(jī)而言的。


和bit-bind有關(guān)的寄存器

STM32有兩個(gè)Bit Band區(qū)域,分別是:


0x2000 0000——0x2010 0000:該地址是STM32的SRAM低1MB的地址區(qū)域;


0x4000 0000——0x4010 0000:該地址是STM32的Peripherals低1MB的地址區(qū)域;


另外,STM32還有兩個(gè)對(duì)應(yīng)的Bit Band區(qū)域的別名區(qū),分別是:


0x2200 0000——0x23FF FFFF:共32MB的空間,對(duì)應(yīng)相應(yīng)1MB的每一個(gè)位;


0x4200 0000——0x43FF FFFF:共32MB的空間,對(duì)應(yīng)相應(yīng)1MB的每一個(gè)位;


接下來(lái)的問(wèn)題是如何確定Bit Band區(qū)字節(jié)的位所對(duì)應(yīng)的那個(gè)別名區(qū)的字(word)。Bit Band區(qū)和別名區(qū)是一一對(duì)應(yīng)的,具體的公式為:


bit_word_addr=bit_band_base+ (byte_offset×32) + (bit_number×4);


bit_band_base:32MB別名區(qū)首地址;


byte_offset:1MB位段區(qū)偏移量,即為bit-band 區(qū)中包含目標(biāo)位的字節(jié)的編號(hào);


bit_number:位段中目標(biāo)位的位位置(0-7);


 舉個(gè)例子(通過(guò)別名區(qū)訪問(wèn)地址):


1、想操作SRAM中Bit Band區(qū)地址為 0x2000 0018字節(jié)的第2位


計(jì)算別名區(qū)對(duì)應(yīng)子地址:0x2200 0000 +(18*32)+(2*4) = 0x2200 0248


所以,對(duì)0x2200 0248地址的操作,就是對(duì)0x2000 0018字節(jié)的第2位進(jìn)行操作;


注意:別名字的位[31:1]在 bit-band 位上不起作用。寫(xiě)入 0x01 與寫(xiě)入 0xFF 的效果相同。寫(xiě)入0x00 與寫(xiě)入0x0E 的效果相同。

關(guān)鍵字:STM32F1  存儲(chǔ)器  存儲(chǔ)器映射  bit-band 引用地址:STM32F1學(xué)習(xí)-深入理解存儲(chǔ)器(存儲(chǔ)器映射以及bit-band)

上一篇:STM32F105標(biāo)準(zhǔn)庫(kù)讀寫(xiě)USB寫(xiě)入csv文件
下一篇:STM32F103ZET XXX.map的可執(zhí)行映像分析

推薦閱讀

Cosworth 這家極富盛名的汽車(chē)工程公司正在尋求將其先進(jìn)的電動(dòng)汽車(chē)和內(nèi)燃機(jī)動(dòng)力總成及電子設(shè)計(jì)、測(cè)試和制造能力引入中國(guó)。Cosworth于1958年在倫敦成立,致力于成為歷史上最成功的獨(dú)立發(fā)動(dòng)機(jī)設(shè)計(jì)商及制造商,擁有著50多年卓越、創(chuàng)新和協(xié)作的聲望。公司是一個(gè)在性能電子領(lǐng)域的市場(chǎng)領(lǐng)導(dǎo)者,有著一系列賽事中有賽車(chē)手和制造商頭銜,如一級(jí)方程式、印地賽事、CH...
諸如手勢(shì)之類(lèi)的身體動(dòng)作是用戶(hù)與計(jì)算設(shè)備交互的一種潛在解決方案,因?yàn)槲覀內(nèi)祟?lèi)已經(jīng)習(xí)慣于通過(guò)手勢(shì)進(jìn)行交流。要實(shí)現(xiàn)這一點(diǎn),我們需要某種手勢(shì)識(shí)別系統(tǒng)。但是,傳統(tǒng)的手勢(shì)識(shí)別系統(tǒng)可能難以使用或影響舒適感。例如通過(guò)機(jī)械信號(hào)來(lái)追蹤手部運(yùn)動(dòng)的手套型裝置可能會(huì)干擾手的自然觸感;難以為有著不同手部大小的不同用戶(hù)進(jìn)行個(gè)性化定制。為了解決上述問(wèn)題,F(xiàn)acebo...
在一些特定的場(chǎng)合,例如在環(huán)境試驗(yàn)室,環(huán)境噪聲有可能會(huì)達(dá)到80 分貝到90 分貝,工程師不宜長(zhǎng)期在這樣的環(huán)境下進(jìn)行工作;或者進(jìn)行異地調(diào)試時(shí),需要對(duì)儀器進(jìn)行遠(yuǎn)程操作;另外,為了提高工作效率,可以讓電腦代替工程師完成一些簡(jiǎn)單的遍歷測(cè)試,例如,遍歷被測(cè)件的輸出電壓并測(cè)量輸出波形的幅值,這些自動(dòng)化測(cè)試可以大幅提升測(cè)試效率。需要做到這些,就需要...
對(duì)于單片機(jī)程序員,在數(shù)字電路中,三極管的作用,99.9%都只是用來(lái)做“開(kāi)關(guān)”而已。我用一個(gè)NPN型三極管驅(qū)動(dòng)直流電機(jī),來(lái)說(shuō)明一下,看圖一圖一大家對(duì)著上圖,簡(jiǎn)單說(shuō)明一下;對(duì)于NPN型三極管:B極接上高電平,CE極之間導(dǎo)通,你可以把它理解成一條導(dǎo)線(xiàn)也行,然后整個(gè)電路就變成,一個(gè)直流電機(jī)和一個(gè)電源串聯(lián),電機(jī)能不轉(zhuǎn)嗎?B極接著低電平,CE極之間截至,你...

史海拾趣

問(wèn)答坊 | AI 解惑

如何使用FPGA設(shè)計(jì)語(yǔ)音存儲(chǔ)系統(tǒng)

最近剛開(kāi)始學(xué)VHDL,需要使用VHDL語(yǔ)言編程,以FPGA為基礎(chǔ),做一個(gè)數(shù)字錄音存儲(chǔ)系統(tǒng),利用MAX7128電路板來(lái)做,需要用到哪幾部分?具體的電路該怎么設(shè)計(jì)~?不知道有沒(méi)前輩能夠指導(dǎo)一下,在此謝過(guò)了~…

查看全部問(wèn)答∨

程序類(lèi)

本帖最后由 paulhyde 于 2014-9-15 09:22 編輯  …

查看全部問(wèn)答∨

對(duì)MTK平臺(tái)的一些認(rèn)識(shí)

對(duì)MTK平臺(tái)的一些認(rèn)識(shí) 一、 目的 來(lái)到這里近兩月,更近距離的接近了MTK。身處基于MTK平臺(tái)的產(chǎn)品開(kāi)發(fā)浪潮之中,讓我對(duì)MTK有更多的了解,不光是在平臺(tái)技術(shù)本身。就技術(shù)上,從軟件角度、系統(tǒng)角度,對(duì)MTK我應(yīng)該能給出深度而全面的評(píng)價(jià)或看法。就產(chǎn)品 ...…

查看全部問(wèn)答∨

【藏書(shū)閣】電子技術(shù)(電工學(xué)Ⅱ)典型題解析及自測(cè)試題

目錄: 第一部分 典型題解析 第一章 半導(dǎo)體二極管與簡(jiǎn)單應(yīng)用 一、內(nèi)容提要 二、典型題解析 三、習(xí)題 第二章 半導(dǎo)體三極管與基本放大電路 一、內(nèi)容提要 二、典型題解析 三、習(xí)題 第三章 集成運(yùn)算放大器 一、內(nèi)容提要 二、典型題解析 ...…

查看全部問(wèn)答∨

我看IC:全球最小的數(shù)字界面MEMS麥克風(fēng)

全球最小的數(shù)字界面MEMS麥克風(fēng) TDK 集團(tuán)的分公司TDK-EPC推出了一款商用MEMS麥克風(fēng),成為迄今全球最小的、集成了數(shù)字界面的麥克風(fēng)。愛(ài)普科斯T4030的尺寸僅為3.25 × 2.25 × 1.1 mm³,比同類(lèi)產(chǎn)品小60%。這使手機(jī)、MP3和數(shù)碼相機(jī)等消費(fèi)電子 ...…

查看全部問(wèn)答∨

有關(guān)嵌入式的問(wèn)題?

color=#000000]我是一個(gè)很笨的大一的專(zhuān)科生,學(xué)的專(zhuān)業(yè)是嵌入式,現(xiàn)在很迷茫,不知道該怎么發(fā)展?我的理想是嵌入式系統(tǒng)設(shè)計(jì)師。 1.我不是很了解這個(gè)行業(yè)的特點(diǎn),發(fā)展要求,職業(yè)要求,未來(lái)趨勢(shì),市場(chǎng)需求? 2.嵌入式系統(tǒng)設(shè)計(jì)是偏軟還是偏硬? 3 ...…

查看全部問(wèn)答∨

NAND FLASH問(wèn)題

我在存儲(chǔ)管理器,可以看到正常的FLASH大小信息,但看不到分區(qū)信息。格式化后,可以看到分區(qū)信息,也能看到盤(pán)符,可以復(fù)制文件到這個(gè)盤(pán)符。但重啟后,盤(pán)符看不到,里面的文件也看不到了。 當(dāng)初以為原來(lái)看到的盤(pán)符和復(fù)制到里面的文件都是在內(nèi)存里面 ...…

查看全部問(wèn)答∨

請(qǐng)教高手,設(shè)計(jì)是將NAND FLASH選通輸出信號(hào)nFCE和ce一起拉高到1.8v,但是上電之后測(cè)得CE引腳一直為低電平

請(qǐng)教高手,設(shè)計(jì)是將NAND FLASH選通輸出信號(hào)nFCE和ce一起拉高到1.8v,但是上電之后測(cè)得CE引腳一直為低電平,就是一直選通,本來(lái)應(yīng)該在讀取FLASH數(shù)據(jù)時(shí)候或者有效信號(hào)來(lái)的時(shí)候才為低,這樣導(dǎo)致JTAG進(jìn)不去,我換到32位ROM啟動(dòng)JTAG能進(jìn),擦除FLASH后, ...…

查看全部問(wèn)答∨

求助:怎樣計(jì)算DTU的功耗

請(qǐng)各位大俠指教,怎樣合理計(jì)算DTU的功耗。同事之間討論沒(méi)有得出好的辦法,自己接上穩(wěn)壓電源測(cè)試,發(fā)現(xiàn)電流是在不斷變化的,而且跳躍量很大,可以達(dá)到0.1A。我們開(kāi)玩笑說(shuō)直接接到電表上開(kāi)幾個(gè)小時(shí)算消耗,畢竟實(shí)際不可行。請(qǐng)大家教我個(gè)方法。如果取 ...…

查看全部問(wèn)答∨

鍵盤(pán)焦點(diǎn)如何取得

我在windows mobile的主窗口中創(chuàng)建了一個(gè)子窗口,在這個(gè)子窗口上有一個(gè)列表控件,當(dāng)程序一開(kāi)始運(yùn)行時(shí),我點(diǎn)擊手機(jī)下方的方向鍵,都能正常響應(yīng),但當(dāng)我用鼠標(biāo)選中列表控件中的一行數(shù)據(jù)項(xiàng)時(shí),再去點(diǎn)擊方向鍵,它就不再響應(yīng)了。 請(qǐng)問(wèn)如何解決啊,希望 ...…

查看全部問(wèn)答∨
小廣播
設(shè)計(jì)資源 培訓(xùn) 開(kāi)發(fā)板 精華推薦

最新單片機(jī)文章

 
EEWorld訂閱號(hào)

 
EEWorld服務(wù)號(hào)

 
汽車(chē)開(kāi)發(fā)圈

 
機(jī)器人開(kāi)發(fā)圈

電子工程世界版權(quán)所有 京ICP證060456號(hào) 京ICP備10001474號(hào)-1 電信業(yè)務(wù)審批[2006]字第258號(hào)函 京公網(wǎng)安備 11010802033920號(hào) Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 平谷区| 灵山县| 横山县| 衡水市| 岑巩县| 南通市| 苏尼特左旗| 宝丰县| 申扎县| 西乌珠穆沁旗| 当涂县| 黑龙江省| 平罗县| 云龙县| 增城市| 板桥市| 潜山县| 股票| 余姚市| 凤山县| 朝阳区| 新密市| 三台县| 新竹市| 社会| 女性| 乌拉特中旗| 简阳市| 亚东县| 威信县| 威远县| 深泽县| 原平市| 临城县| 和龙市| 墨江| 崇礼县| 佳木斯市| 宜昌市| 福清市| 蚌埠市|