91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

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

電子設(shè)計(jì) ? 來(lái)源:CSDN 博主 ? 作者:Sumjess ? 2021-02-15 10:22 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

pIYBAF_8CNWAIsD2AAD81K-Bsec767.png

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

二、存儲(chǔ)器映射

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

o4YBAF_8COiAGVacAAJupcyfxC4639.png

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

o4YBAF_8CPSAYeZ4AANGJyfaroI586.png

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

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

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

o4YBAF_8CQiABppyAALzpVs5HGI558.png

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

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

pIYBAF_8CRWANXA7AAGswKV4TTw737.png

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

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

o4YBAF_8CSaAfWNyAALLiK80tS8740.png

三、寄存器映射

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

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

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

(1)總線基地址

pIYBAF_8CT2AYdoJAAGWql943Bo135.png

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

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

o4YBAF_8CVKAPe8JAAJLt8dLXFY615.png

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

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

pIYBAF_8CWWAHrAXAALI06AZE2U832.png

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

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

o4YBAF_8CXKAG7trAAN9CGLGI9w755.png

(2)封裝寄存器列表

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

o4YBAF_8CY6AM5VeAARFgpdwbFA131.png

o4YBAF_8CZyAQAQjAAFMjszMBZE524.png

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

o4YBAF_8CayACObHAAH_50M1FCY525.png

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

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

(1)把變量的某位清零

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

pIYBAF_8Cb2AVuQfAAHcqzK-dtc757.png

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

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

pIYBAF_8CdGAOg7NAAP1OzS-pKw932.png

(3)對(duì)變量的某幾位進(jìn)行賦值

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

o4YBAF_8Cd6AJLfJAAC6m2puROw295.png

(4)對(duì)變量的某位取反

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

pIYBAF_8CjiAM9OMAABY_vLiBfk720.png


編輯:hfy

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

    關(guān)注

    39

    文章

    7744

    瀏覽量

    171889
  • STM32
    +關(guān)注

    關(guān)注

    2310

    文章

    11172

    瀏覽量

    373833
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    PY32F003至為芯支持32位ARM內(nèi)核的低成本MCU微控制

    普冉PY32F003是款用于智能穿戴、遙控、電子玩具、智能燈具等便攜式設(shè)備的MCU微控制?;?2位ARM Cortex-M0+內(nèi)核,
    的頭像 發(fā)表于 03-20 15:01 ?80次閱讀
    PY32<b class='flag-5'>F</b>003至為芯支持32位ARM<b class='flag-5'>內(nèi)核</b>的低成本MCU微控制<b class='flag-5'>器</b>

    STM32F042x4/STM32F042x6微控制深度解析:特性、應(yīng)用與設(shè)計(jì)要點(diǎn)

    STM32F042x4/STM32F042x6微控制深度解析:特性、應(yīng)用與設(shè)計(jì)要點(diǎn) 在嵌入式系統(tǒng)開(kāi)發(fā)領(lǐng)域,微控制的選擇至關(guān)重要,它直接影響著產(chǎn)品的性能、功能和成本。今天,我們就來(lái)深
    的頭像 發(fā)表于 03-19 17:15 ?401次閱讀

    探索CY15E064Q 64 - Kbit SPI汽車(chē)級(jí)F - RAM:高性能非易失性存儲(chǔ)器的新選擇

    探索CY15E064Q 64 - Kbit SPI汽車(chē)級(jí)F - RAM:高性能非易失性存儲(chǔ)器的新選擇 在電子設(shè)計(jì)領(lǐng)域,存儲(chǔ)器的選擇對(duì)于系統(tǒng)的性能、可靠性和壽命至關(guān)重要。特別是在些需要
    的頭像 發(fā)表于 03-13 16:25 ?111次閱讀

    【案例5.1】存儲(chǔ)器選型的考慮要點(diǎn)

    【案例5.1】存儲(chǔ)器選型的考慮要點(diǎn)某設(shè)計(jì),用戶接口數(shù)據(jù)傳輸速率為10Gbps,每8個(gè)字節(jié)的數(shù)據(jù)對(duì)應(yīng)次查表需求,數(shù)據(jù)表存儲(chǔ)在由DDR4SDRAM組成的存儲(chǔ)器中。工程師需綜合考慮各方面要
    的頭像 發(fā)表于 03-04 17:20 ?293次閱讀
    【案例5.1】<b class='flag-5'>存儲(chǔ)器</b>選型的考慮要點(diǎn)

    FM25640B 64 - Kbit 串行 F - RAM:高性能非易失性存儲(chǔ)器的理想之選

    FM25640B 64 - Kbit 串行 F - RAM:高性能非易失性存儲(chǔ)器的理想之選 在電子工程師的日常設(shè)計(jì)工作中,選擇合適的存儲(chǔ)器至關(guān)重要。今天,我們就來(lái)深入了解
    的頭像 發(fā)表于 01-15 17:20 ?495次閱讀

    FIFO存儲(chǔ)器的種類(lèi)、IP配置及應(yīng)用

    FIRST IN FIRST OUT (先入先出)。顧名思義,F(xiàn)IFO是個(gè)數(shù)據(jù)具有先進(jìn)先出的存儲(chǔ)器。
    的頭像 發(fā)表于 01-13 15:15 ?484次閱讀
    FIFO<b class='flag-5'>存儲(chǔ)器</b>的種類(lèi)、IP配置及應(yīng)用

    雙口SRAM靜態(tài)隨機(jī)存儲(chǔ)器存儲(chǔ)原理

    在各類(lèi)存儲(chǔ)設(shè)備中,SRAM(靜態(tài)隨機(jī)存儲(chǔ)器)因其高速、低功耗和高可靠性,被廣泛應(yīng)用于高性能計(jì)算、通信和嵌入式系統(tǒng)中。其中,雙口SRAM靜態(tài)隨機(jī)存儲(chǔ)器憑借其獨(dú)特的雙端口設(shè)計(jì),在高帶寬和多任務(wù)場(chǎng)景中表現(xiàn)尤為出色,成為提升系統(tǒng)效率的重
    的頭像 發(fā)表于 11-25 14:28 ?625次閱讀

    簡(jiǎn)單認(rèn)識(shí)高帶寬存儲(chǔ)器

    HBM(High Bandwidth Memory)即高帶寬存儲(chǔ)器,是種基于 3D 堆疊技術(shù)的高性能 DRAM(動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器)。其核心設(shè)計(jì)是通過(guò)硅通孔(TSV)和微凸塊(Microbump
    的頭像 發(fā)表于 07-18 14:30 ?4830次閱讀

    替換STM32f429I芯片

    用GD32F芯片直接STM32f429i替換芯片,要求不改電路板,軟件稍作修改?
    發(fā)表于 07-09 22:09

    STM32F429VGT6 ST(意法半導(dǎo)體) LQFP-100(14x14) 嵌入式 單片機(jī)以及規(guī)格參數(shù),應(yīng)用領(lǐng)域

    ### **STM32F429VGT6 規(guī)格參數(shù)** ? **1. 核心架構(gòu)** ? - **CPU**: ARM Cortex-M4 內(nèi)核,帶 FPU(浮點(diǎn)運(yùn)算單元) ? - **主頻**: 最高
    的頭像 發(fā)表于 05-20 15:57 ?854次閱讀

    MCU存儲(chǔ)器層次結(jié)構(gòu)解析

    ? ? ? ?MCU的存儲(chǔ)器層次結(jié)構(gòu)通過(guò)整合不同性能與功能的存儲(chǔ)單元,優(yōu)化系統(tǒng)效率并滿足多樣化場(chǎng)景需求。其核心架構(gòu)可分為以下層次: 、寄存層(最高速) 定位?:集成于CPU
    的頭像 發(fā)表于 05-09 10:21 ?834次閱讀

    STM32N6使用SDMMC1-eMMC作為外部存儲(chǔ)器,地址如何配置?

    STM32N6 使用SDMMC1-eMMC作為外部存儲(chǔ)器(保存FSBL和app),因?yàn)閑MMC不支持內(nèi)存映射,那么使用STM32CubeProgrammer下載bin文件時(shí)地址選擇哪里
    發(fā)表于 04-28 08:02

    STM32N6使用SDMMC1-eMMC作為外部存儲(chǔ)器,地址如何配置?

    STM32N6 使用SDMMC1-eMMC作為外部存儲(chǔ)器(保存FSBL和app),因?yàn)閑MMC不支持內(nèi)存映射,那么使用STM32CubeProgrammer下載bin文件時(shí)地址選擇哪里
    發(fā)表于 04-22 11:31

    瑞薩RA系列MCU FSP庫(kù)開(kāi)發(fā)實(shí)戰(zhàn)指南(09)存儲(chǔ)器映射

    3.3 存儲(chǔ)器映射 前文所述,寄存與RAM、FLASH樣都是芯片內(nèi)部的存儲(chǔ)設(shè)備。那么,當(dāng)
    的頭像 發(fā)表于 04-16 15:52 ?1648次閱讀
    瑞薩RA系列MCU FSP庫(kù)開(kāi)發(fā)實(shí)戰(zhàn)指南(09)<b class='flag-5'>存儲(chǔ)器</b><b class='flag-5'>映射</b>

    扒單片機(jī)與存儲(chǔ)器的那些事

    單片機(jī)與存儲(chǔ)器的關(guān)系像什么?單片機(jī)里的存儲(chǔ)都是樣的嗎?為什么有的單片機(jī)既有EEPROM又有Flash?
    的頭像 發(fā)表于 04-10 10:06 ?1737次閱讀
    扒<b class='flag-5'>一</b>扒單片機(jī)與<b class='flag-5'>存儲(chǔ)器</b>的那些事