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

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

一文了解STM32F429內核與存儲器映射

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

一、STM32 芯片架構簡圖

pIYBAF_8CNWAIsD2AAD81K-Bsec767.png

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

二、存儲器映射

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

o4YBAF_8COiAGVacAAJupcyfxC4639.png

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

o4YBAF_8CPSAYeZ4AANGJyfaroI586.png

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

1、存儲器 Block0 內部區域功能劃分

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

o4YBAF_8CQiABppyAALzpVs5HGI558.png

2、儲存器 Block1 內部區域功能劃分

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

pIYBAF_8CRWANXA7AAGswKV4TTw737.png

3、儲存器 Block2 內部區域功能劃分

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

o4YBAF_8CSaAfWNyAALLiK80tS8740.png

三、寄存器映射

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

1、STM32 的外設地址映射

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

(1)總線基地址

pIYBAF_8CT2AYdoJAAGWql943Bo135.png

(2)外設基地址

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

o4YBAF_8CVKAPe8JAAJLt8dLXFY615.png

(3)外設寄存器

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

pIYBAF_8CWWAHrAXAALI06AZE2U832.png

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

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

o4YBAF_8CXKAG7trAAN9CGLGI9w755.png

(2)封裝寄存器列表

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

o4YBAF_8CY6AM5VeAARFgpdwbFA131.png

o4YBAF_8CZyAQAQjAAFMjszMBZE524.png

這樣的地址偏移與 STM32 GPIO 外設定義的寄存器地址偏移一一對應,只要給結構體設置好首地址,就能把結構體內成員的地址確定下來,然后就能以結構體的形式訪問寄存器了。

o4YBAF_8CayACObHAAH_50M1FCY525.png

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

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

(1)把變量的某位清零

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

pIYBAF_8Cb2AVuQfAAHcqzK-dtc757.png

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

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

pIYBAF_8CdGAOg7NAAP1OzS-pKw932.png

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

寄存器位經過上面的清零操作后,接下來就可以方便地對某幾位寫入所需要的數值了,且其它位不變,這時候寫入的數值一般就是需要設置寄存器的位參數。

o4YBAF_8Cd6AJLfJAAC6m2puROw295.png

(4)對變量的某位取反

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

pIYBAF_8CjiAM9OMAABY_vLiBfk720.png


編輯:hfy

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

    關注

    38

    文章

    7637

    瀏覽量

    166581
  • STM32
    +關注

    關注

    2290

    文章

    11018

    瀏覽量

    362817
收藏 人收藏

    評論

    相關推薦
    熱點推薦

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

    STM32N6 使用SDMMC1-eMMC作為外部存儲器(保存FSBL和app),因為eMMC不支持內存映射,那么使用STM32CubeProgrammer下載bin文件時地址選擇哪里
    發表于 04-28 08:02

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

    STM32N6 使用SDMMC1-eMMC作為外部存儲器(保存FSBL和app),因為eMMC不支持內存映射,那么使用STM32CubeProgrammer下載bin文件時地址選擇哪里
    發表于 04-22 11:31

    瑞薩RA系列MCU FSP庫開發實戰指南(09)存儲器映射

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

    STM32C031F4 FLASH存儲器讀寫例程各位高能不能提供個?

    STM32C031F4FLASH存儲器 讀寫例程 各位高能不能提供個謝謝大家
    發表于 03-13 07:37

    STM32F429以太網外設數據處理上限是多少?

    數據交互,因此配置了MAC內核的源MAC地址過濾功能,只接收對應節點的數據,以此降低處理的壓力。 問題:該方案運行段時間比較可靠,但最近交換機的數據量繼續增加,出現了429節點的網
    發表于 03-13 06:52

    求助,求分享STM32F429用IAR做的外部SPIFLASH下載算法例程

    你好,請問可不可以提供STM32F429用IAR做的外部SPIFLASH(例如W25Q128)下載算法例程,現在我的下載算法是能下載到外部FLASH但是不能跳到main函數,麻煩指教下,謝謝!
    發表于 03-11 07:40

    存儲器的分類及其區別

    初學者要了解SDRAM需要先了解存儲器分類。按照存儲器存儲功能劃分,可將其分為RAM 和 ROM 兩大類。
    的頭像 發表于 02-08 11:24 ?2635次閱讀
    <b class='flag-5'>存儲器</b>的分類及其區別

    高速緩沖存儲器是內存還是外存,高速緩沖存儲器是為了解決什么

    高速緩沖存儲器(Cache)是內存的種特殊形式,但它與通常所說的主存儲器(RAM)有所不同。在計算機存儲體系中,Cache位于CPU和主存儲器
    的頭像 發表于 01-29 11:48 ?1231次閱讀

    使用STM32F429來讀寫,讀出來確是不固定的個值,為什么?

    理解對不對不? 二、現在使用STM32F429來讀寫,短接MOSI和MISO讀寫值致。實際寫入ADS1256寄存status值0x06,但讀出來確是不固定的個值,通過提高SPI速
    發表于 12-30 08:11

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

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

    存儲器分為隨機存儲器和什么

    ,Read-Only Memory)。 、隨機存儲器(RAM) 隨機存儲器的定義和特點 隨機存儲器(RAM)是種可讀寫的
    的頭像 發表于 10-14 09:54 ?2634次閱讀

    存儲器中訪問速度最快的是什么

    在探討存儲器中訪問速度最快的是哪種時,我們首先需要了解計算機存儲系統的層次結構以及各類存儲器的特性和功能。計算機
    的頭像 發表于 10-12 17:01 ?3633次閱讀

    ram存儲器和rom存儲器的區別是什么

    定義: RAM(Random Access Memory):隨機存取存儲器,是種易失性存儲器,主要用于計算機和其他設備的臨時存儲。 ROM(Read-Only Memory):只讀
    的頭像 發表于 08-06 09:17 ?1281次閱讀

    STM32F429芯片的NRST 引腳低電平(外部復位)的允許時間長度是?多少ms呢?

    STM32F429芯片的NRST 引腳低電平(外部復位),從0V升高到1.78V,實現硬件復位,允許持續的時間是?官網資料沒查詢出來,網上也查詢不到呢
    發表于 08-02 10:08

    讀懂常見存儲器類型

    存儲器是計算機系統中用于存儲和讀取數據的硬件組件,根據存儲介質和工作原理的不同,存儲器可以分為多種類型。本文將從易失性存儲器和非易失性
    的頭像 發表于 07-15 15:53 ?7115次閱讀
    主站蜘蛛池模板: 在线免费看黄视频 | 免费看片aⅴ免费大片 | 人人揉揉香蕉大免费不卡 | 一级特级片 | 开心激情五月婷婷 | 四虎在线最新永久免费 | 欧美一级欧美三级在线 | 一级毛片视屏 | 高清精品女厕在线观看 | 日韩特黄特色大片免费视频 | 四虎国产精品永久在线 | 欧美黄色免费 | v视界影院最新地址 | 欧美成人性高清观看 | 五月花亚洲 | 97超频国产在线公开免费视频 | 激情综合站 | 亚洲一本高清 | 五月天婷婷激情 | 13日本xxxxxxxxx18 1515hh四虎免费观38com | аⅴ资源中文在线天堂 | 欧美色欧美亚洲高清在线观看 | 狠狠色丁香九九婷婷综合五月 | 福利视频一区二区牛牛 | 国产亚洲精品久久久极品美女 | cao草棚视频网址成人 | 狠狠五月深爱婷婷网免费 | 拍真实国产伦偷精品 | 欧美一区二区三区男人的天堂 | 五月婷婷久 | 色欲麻豆国产福利精品 | 美女被啪到哭网站在线观看 | 成人5252色 | 日韩一级片在线播放 | 免费观看在线永久免费xx视频 | 欧美一级精品高清在线观看 | 色婷婷亚洲综合五月 | 激情综合色综合久久综合 | 午夜不卡在线 | 一久久 | 又粗又长又色又爽视频 |