在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

一文了解STM32F429內(nèi)核與存儲器映射

電子設(shè)計 ? 來源:CSDN 博主 ? 作者:Sumjess ? 2021-02-15 10:22 ? 次閱讀

一、STM32 芯片架構(gòu)簡圖

pIYBAF_8CNWAIsD2AAD81K-Bsec767.png

STM32 有三種啟動方式,從 FLASH 啟動(包含系統(tǒng)存儲器),從內(nèi)部 SRAM 啟動,從外部 RAM 啟動。

二、存儲器映射

存儲器本身不具有地址信息,它的地址是由芯片廠商或用戶分配,給存儲器分配地址的過程就稱為存儲器映射,具體見下圖。 如果給存儲器再分配一個地址就叫存儲器重映射。

o4YBAF_8COiAGVacAAJupcyfxC4639.png

在這 4GB 的地址空間中, ARM 已經(jīng)粗線條的平均分成了 8 個塊,每塊 512MB,每個塊也都規(guī)定了用途,具體分類見下表。每個塊的大小都有 512MB,顯然這是非常大的,芯片廠商在每個塊的范圍內(nèi)設(shè)計各具特色的外設(shè)時并不一定都用得完,都是只用了其中的一部分而已。

o4YBAF_8CPSAYeZ4AANGJyfaroI586.png

在這 8 個 Block 里面,有 3 個塊非常重要,也是我們最關(guān)心的三個塊。 Boock0 用來設(shè)計成內(nèi)部 FLASH, Block1 用來設(shè)計成內(nèi)部 RAM, Block2 用來設(shè)計成片上的外設(shè),下面我們簡單的介紹下這三個 Block 里面的具體區(qū)域的功能劃分。

1、存儲器 Block0 內(nèi)部區(qū)域功能劃分

Block0 主要用于設(shè)計片內(nèi)的 FLASH, F429 系列片內(nèi)部 FLASH 最大是 2MB,STM32F429IGT6 的 FLASH 是 1MB。

o4YBAF_8CQiABppyAALzpVs5HGI558.png

2、儲存器 Block1 內(nèi)部區(qū)域功能劃分

Block1 用于設(shè)計片內(nèi)的 SRAM。 F429 內(nèi)部 SRAM 的大小為 256KB,其中 64KB 的CCM RAM 位于 Block0,剩下的 192KB 位于 Block1,分 SRAM1 112KB, SRAM2 16KB,SRAM3 64KB, Block 內(nèi)部區(qū)域的功能劃分具體見下表。

pIYBAF_8CRWANXA7AAGswKV4TTw737.png

3、儲存器 Block2 內(nèi)部區(qū)域功能劃分

Block2 用于設(shè)計片內(nèi)的外設(shè),根據(jù)外設(shè)的總線速度不同, Block 被分成了 APB 和 AHB兩部分,其中 APB 又被分為 APB1 和 APB2, AHB 分為 AHB1 和 AHB2,具體見下表。還有一個 AHB3 包含了 Block3/4/5/6,這四個 Block 用于擴展外部存儲器,如 SDRAM,NORFLASH 和 NANDFLASH 等。

o4YBAF_8CSaAfWNyAALLiK80tS8740.png

三、寄存器映射

根據(jù)每個單元功能的不同,以功能為名給這個內(nèi)存單元取一個別名,這個別名就是我們經(jīng)常說的寄存器,這個給已經(jīng)分配好地址的有特定功能的內(nèi)存單元取別名的過程就叫寄存器映射。

1、STM32 的外設(shè)地址映射

片上外設(shè)區(qū)分為四條總線,根據(jù)外設(shè)速度的不同,不同總線掛載著不同的外設(shè), APB掛載低速外設(shè), AHB 掛載高速外設(shè)。相應(yīng)總線的最低地址我們稱為該總線的基地址,總線基地址也是掛載在該總線上的首個外設(shè)的地址。其中 APB1 總線的地址最低,片上外設(shè)從這里開始,也叫外設(shè)基地址。

(1)總線基地址

pIYBAF_8CT2AYdoJAAGWql943Bo135.png

(2)外設(shè)基地址

總線上掛載著各種外設(shè),這些外設(shè)也有自己的地址范圍,特定外設(shè)的首個地址稱為“ XX 外設(shè)基地址”,也叫 XX 外設(shè)的邊界地址。

o4YBAF_8CVKAPe8JAAJLt8dLXFY615.png

(3)外設(shè)寄存器

GPIO 有很多個寄存器,每一個都有特定的功能。每個寄存器為 32bit,占四個字節(jié),在該外設(shè)的基地址上按照順序排列,寄存器的位置都以相對該外設(shè)基地址的偏移地址來描述。

pIYBAF_8CWWAHrAXAALI06AZE2U832.png

2、C 語言對寄存器的封裝
(1)封裝總線和外設(shè)基地址

為了方便理解和記憶,我們把總線基地址和外設(shè)基地址都以相應(yīng)的宏定義起來,總線或者外設(shè)都以他們的名字作為宏名。

o4YBAF_8CXKAG7trAAN9CGLGI9w755.png

(2)封裝寄存器列表

GPIOA-GPIOH 都各有一組功能相同的寄存器,如 GPIOA_MODER/GPIOB_MODER/GPIOC_MODER 等等,它們只是地址不一樣,但卻要為每個寄存器都定義它的地址。為了更方便地訪問寄存器,我們引入 C 語言中的結(jié)構(gòu)體語法對寄存器進行封裝。

o4YBAF_8CY6AM5VeAARFgpdwbFA131.png

o4YBAF_8CZyAQAQjAAFMjszMBZE524.png

這樣的地址偏移與 STM32 GPIO 外設(shè)定義的寄存器地址偏移一一對應(yīng),只要給結(jié)構(gòu)體設(shè)置好首地址,就能把結(jié)構(gòu)體內(nèi)成員的地址確定下來,然后就能以結(jié)構(gòu)體的形式訪問寄存器了。

o4YBAF_8CayACObHAAH_50M1FCY525.png

3、修改寄存器的位操作方法

用 C 語言對寄存器賦值時,我們常常要求只修改該寄存器的某幾位的值,且其它的寄存器位不變,這個時候我們就需要用到 C 語言的位操作方法了。

(1)把變量的某位清零

此處我們以變量 a 代表寄存器,并假設(shè)寄存器中本來已有數(shù)值,此時我們需要把變量a 的某一位清零,且其它位不變。

pIYBAF_8Cb2AVuQfAAHcqzK-dtc757.png

(2)把變量的某幾個連續(xù)位清零

由于寄存器中有時會有連續(xù)幾個寄存器位用于控制某個功能,現(xiàn)假設(shè)我們需要把寄存器的某幾個連續(xù)位清零,且其它位不變。

pIYBAF_8CdGAOg7NAAP1OzS-pKw932.png

(3)對變量的某幾位進行賦值

寄存器位經(jīng)過上面的清零操作后,接下來就可以方便地對某幾位寫入所需要的數(shù)值了,且其它位不變,這時候?qū)懭氲臄?shù)值一般就是需要設(shè)置寄存器的位參數(shù)

o4YBAF_8Cd6AJLfJAAC6m2puROw295.png

(4)對變量的某位取反

某些情況下,我們需要對寄存器的某個位進行取反操作,即 1 變 0 , 0 變 1,這可以直接用如下操作,其它位不變。

pIYBAF_8CjiAM9OMAABY_vLiBfk720.png


編輯:hfy

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 存儲器
    +關(guān)注

    關(guān)注

    38

    文章

    7523

    瀏覽量

    164130
  • STM32
    +關(guān)注

    關(guān)注

    2270

    文章

    10920

    瀏覽量

    356912
收藏 人收藏

    評論

    相關(guān)推薦

    TLV320AIC3106-Q1通過什么接口與STM32F429進行硬件連接?

    如題,TLV320AIC3106-Q1通過什么接口與STM32F429進行硬件連接
    發(fā)表于 11-04 06:03

    STM32F429使用內(nèi)部TFT控制進行LCD顯示,是否可以存在鎖住屏幕的操作?

    STM32F429使用內(nèi)部TFT控制進行LCD顯示,是否可以存在鎖住屏幕 的操作。即不讀SDRAM,LCD顯示的內(nèi)容可以不變。 有這種控制嗎?
    發(fā)表于 05-17 08:08

    stm32f429如何把變量定義到sdram中去?

    最近搞stm32f429,請教如何把變量定義到sdram中去?能夠同時使用內(nèi)部的sram和外部的sdram嗎?
    發(fā)表于 05-15 07:54

    STM32F429 AD采集出的數(shù)據(jù)波動很大是哪里的問題?

    STM32F429 AD采集穩(wěn)壓源335V,得出來的數(shù)據(jù)偏差幅度很大,能從339-349V變化,怎么可能?還有,這款單片機AD不支持校準。現(xiàn)在懷疑它波動大的原因是 AD的問題,有沒有同樣的看法?
    發(fā)表于 05-14 07:42

    STM32F429的LCD驅(qū)動驅(qū)動7寸屏,使用存在刷屏慢的現(xiàn)象怎么解決?

    最近有個項目,對于人機交互采用7寸液晶屏,想選款帶LCD驅(qū)動的CPU,不知道大家是否用STM32F429的LCD驅(qū)動驅(qū)動過7寸屏,在
    發(fā)表于 05-07 07:21

    STM32F429開發(fā)板只能插電腦USB供電接口LCD才能顯示,為什么?

    手中STM32F429 Disvovery開發(fā)板,在插入電腦USB接口的情況下,LCD正常顯示圖片內(nèi)容。將USB供電線插到充電寶、充電器上就無法正常顯示圖片。請問這是什么問題?
    發(fā)表于 04-29 07:04

    stm32f429 FMC地址總線的疑問求解

    stm32f429單片機,使用FMC操作并行總線。其中地址總線上主設(shè)備為f429,從設(shè)備為個fpga和兩個存儲器,地址總線經(jīng)5.1K電阻上拉。 經(jīng)示波器測試,觀察到下面的異常現(xiàn)象:
    發(fā)表于 04-11 07:58

    STM32F429做的PIL仿真速度非常慢的原因?

    各位大神好, 本人用MATLAB/SIMULINK搭建了小型直流電力系統(tǒng)。系統(tǒng)包含三個直流轉(zhuǎn)換。相關(guān)三個控制被載入STM32F429中,從而與SIMULINK構(gòu)成PIL仿真。仿真運行
    發(fā)表于 04-11 07:28

    STM32F429支持的U盤容量最大是多少呢?

    各位大佬,請假個問題,STM32F429支持的U盤容量,最大是多少呢?
    發(fā)表于 04-03 08:03

    STM32F103DMA模塊存儲器存儲器可以實現(xiàn)循環(huán)嗎?

    STM32F103 參考手冊中循環(huán)模式部分描述:DMA模塊存儲器存儲器不能與循環(huán)模式同時使用。但是經(jīng)過實際測試,是可以實現(xiàn)循環(huán)的,請問怎么理解這句話呢?
    發(fā)表于 04-02 06:23

    stm32f429 can1通訊使用hal發(fā)送數(shù)據(jù)不穩(wěn)定怎么解決?

    stm32f429 can1通訊,使用hal庫配置工程,發(fā)送數(shù)據(jù)不穩(wěn)定,發(fā)送幾十個包才有倆正常發(fā)送,但是使用標準庫就可以正常發(fā)送數(shù)據(jù),也很穩(wěn)定,研究兩天了也沒有解決,這是什么問題呢。
    發(fā)表于 04-02 06:04

    STM32F429的工程標準庫移植到HAL庫后中斷向量表異常的原因?

    STM32F429的工程標準庫移植到HAL庫后中斷向量表異常
    發(fā)表于 03-20 06:02

    關(guān)于STM32F429IIT6高性能Arm?Cortex?-M4 32位RISC內(nèi)核微控制

    數(shù)據(jù)處理指令和數(shù)據(jù)類型。它還實現(xiàn)了整套DSP指令和增強應(yīng)用程序安全性的存儲器保護單元(MPU)。 STM32F429IIT6包含高速嵌入式存儲器(最高2兆字節(jié)的閃存,最高256千字節(jié)
    發(fā)表于 03-12 09:39

    STM32F429進入待機、休眠、STOP模式下,VDDA和vdd能關(guān)斷嗎?

    STM32F429進入待機、休眠、STOP模式下,VDDA和vdd能關(guān)斷嗎?找不到文檔說明呢,謝謝
    發(fā)表于 03-11 06:01

    STM32F429是有雙BANK的,BFB2如何設(shè)置從哪個BANK啟動?

    看手冊STM32F429是有雙BANK的,通過設(shè)置BFB2來設(shè)置從哪個BANK啟動,F(xiàn)B_MODE設(shè)置BANK映射。但是我不知道具體在哪個時候設(shè)置。如,我當前的固件運行在BANK1區(qū),然后進行升級
    發(fā)表于 03-07 07:17
    主站蜘蛛池模板: 国产成人精品午夜二三区 | 日日夜夜爽 | 中日韩精品视频在线观看 | 欧美色婷婷 | 久久手机看片你懂的日韩1024 | 奇米影视7777久久精品 | 手机看片1024日韩 | 精品三级国产精品经典三 | 中国成熟xxx视频 | 乱妇伦小说 | 5g影院天天爽 | 宅男lu66国产在线播放 | 亚洲精品卡1卡二卡3卡四卡 | 俺去操| 亚洲欧美啪啪 | 国产在线视频你懂的 | 搞黄视频网站 | 欧美成人性动漫在线观看 | 欧美在线你懂的 | 美女一区二区三区 | 182tv免费视视频线路一二三 | 中文字幕乱码人成乱码在线视频 | 亚洲第一在线播放 | 午夜高清免费在线观看 | 最近2018中文字幕免费看在线 | 日本一区二区三区不卡在线看 | 一级a爰片久久毛片 | 视频免费在线 | 色综合久久久久久久久五月 | 你懂的免费在线观看 | 久久久久国产精品 | h国产| 毛片大全在线 | 成人在线黄色 | 91福利国产在线观看网站 | 久久夜色精品国产尤物 | 亚洲 欧洲 日产 韩国在线 | 香蕉视频黄色片 | 啪啪网站视频 | 狠狠干精品| 日本黄色免费一级片 |