衡阳派盒市场营销有限公司

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

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

3天內不再提示

STM32/CPU地址映射的概念

CHANBAEK ? 來源:一個早起的程序員 ? 作者:一個早起的程序員 ? 2023-07-24 11:14 ? 次閱讀

1總線的由來

很多人對總線和地址映射的概念都是一頭霧水,但是我們如果知道為何需要總線和地址映射,他們是在什么背景下被衍化出來的,自然而然對此概念就清清楚楚了。

我們知道CPU都是通過總線訪問外設,例如STM32使用AMBA規范的總線和外設進行交互,那么在總線的概念沒有被提出來的時候,外設是怎樣被訪問的呢?

其實在最早期還沒有總線概念的時候,CPU設計者會直接把CPU內核和各種接口控制器設計到一起,如果要訪問一個硬件,直接在內核里面對各種接口控制器進行操作,從而操作相應的硬件。我們看下圖。

圖片

后來設計者發現如果每添加一個外設都要修改CPU內核,這樣不具有很好的擴展性,為了使得外設的改變(增加、刪除、修改)不影響CPU內核架構,衍化出了總線的概念,CPU內核可以通過總線訪問各種各樣外設,新的外設只需要掛接到總線上,就可被CPU內核訪問控制。有了總線,CPU可以用統一的訪問方式訪問任何外設,實現了CPU內核和外設分開設計和維護。

如下圖所示,下圖和CPU內核交互的只有地址總線接口、數據總線接口、控制總線接口,這三個接口一個提供地址、一個提供數據,一個提供控制信息(讀、寫、其他控制信息),所有的外設連接到總線矩陣上。

圖片

2 STM32/CPU地址映射

外設怎么知道CPU內核發出的操作是給自己的呢?

其實每一個外設都具有自己的地址空間,當CPU內核通過總線訪問外設時,對應地址空間的外設就知道CPU內核是在操作自己(外設被命中),然后外設去操作連接的硬件,如上圖ROM控制器操作Flash設備。

外設的地址控制怎么分配呢?

答案就是地址映射,地址映射這個過程是在設計芯片的時候就要進行考慮的,地址總線接口如果是32位,則內核可訪問的外設空間最大就是4Gbit,芯片設計者為每一個外設會映射一段地址空間,比如GPIOA映射到0x0000000-0x0000FFFF,則CPU在訪問0x0000000-0x0000FFFF地址空間時會被GPIOA外設捕獲到,至于外設想做什么由外設的硬件設計者來決定。地址總線接口如果是64位,則內核可訪問外設的地址空間為2^64bit。

3 STM32的外設地址映射表

STM32地址總線接口為32位,則可以訪問4Gbit的外設空間,下面為STM32F10X外設地址映射表。有很多還沒有被映射的地址空間,ST公司后期可能用來擴展新外設,而擴展過程Cortex內核是不需要進行任何修改的。

圖片

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

    關注

    68

    文章

    10905

    瀏覽量

    213033
  • STM32
    +關注

    關注

    2272

    文章

    10924

    瀏覽量

    357607
  • 總線
    +關注

    關注

    10

    文章

    2903

    瀏覽量

    88403
  • 地址映射
    +關注

    關注

    0

    文章

    6

    瀏覽量

    2073
收藏 人收藏

    評論

    相關推薦

    Linux內核地址映射模型與Linux內核高端內存詳解

    的數據可能不在內存中。 Linux內核地址映射模型 x86 CPU采用了段頁式地址映射模型。進程代碼中的
    發表于 05-08 10:33 ?3482次閱讀
    Linux內核<b class='flag-5'>地址</b><b class='flag-5'>映射</b>模型與Linux內核高端內存詳解

    有關51里面地址映射stm32里面地址映射的問題

    問個問題:在51里面用的地址映射是通過頭文件《reg51.h》實現的,而在reg51.h中是通過"sfr P0 = 0x80"這樣的語句實現的!而32里面問什么在stm32f10x.h中全都是通過宏定義實現
    發表于 04-04 12:04

    STM32外設地址映射有哪些?都是什么?

    這個知識點應該是 STM32入門必備的,請教大牛,STM32外設地址映射有哪些? 我一般看到片上外設區分為四條總線,根據外設速度的不同,不同總線掛載著不同的外設,APB1掛載低速外設,
    發表于 03-05 06:11

    STM32地址映射

    目錄1:前言2:地址(門牌號)3:STM32地址映射4:位帶操作原理5:位操作代碼實現1:前言 以前學51的時候,沒有注重地址的這個
    發表于 08-13 06:05

    存儲器映射與寄存器映射的原理分別是什么

    【嵌入式系統】存儲器映射與寄存器映射原理一、存儲器映射圖1 存儲器映射存儲器在產家制作完成后是一片沒有任何信息的物理存儲器,而CPU要進行訪
    發表于 12-20 08:17

    ARM啟動代碼及地址映射

    ARM啟動代碼及地址映射
    發表于 02-11 11:00 ?104次下載
    ARM啟動代碼及<b class='flag-5'>地址</b><b class='flag-5'>映射</b>

    什么是cpu的io端口?地址空間如何共享?

    (一)地址概念1)物理地址CPU地址總線傳來的地址,由硬件電路控制其具體含義。物理
    的頭像 發表于 11-15 15:13 ?1.5w次閱讀
    什么是<b class='flag-5'>cpu</b>的io端口?<b class='flag-5'>地址</b>空間如何共享?

    STM32核心在Cortex的地址映射說明

    一、Cortex-M3支持最大4GB的存儲空間,其地址映射關系如下圖 二、存儲器映射實例:256KB Flash 48KB SRAM IROM1為片上程序存儲器,即片上集成的Flash存儲器,對該處
    發表于 11-29 20:11 ?634次閱讀
     <b class='flag-5'>STM32</b>核心在Cortex的<b class='flag-5'>地址</b><b class='flag-5'>映射</b>說明

    【MCU】STM32地址映射和HAL庫開發基礎

    回顧STM32的內存映射機制
    發表于 10-28 18:06 ?11次下載
    【MCU】<b class='flag-5'>STM32</b>的<b class='flag-5'>地址</b><b class='flag-5'>映射</b>和HAL庫開發基礎

    STM32F103系列芯片的地址映射和寄存器映射原理,GPIO端口的初始化

    文章目錄一、STM32F103系列芯片的地址映射和寄存器映射原理1.寄存器2.地址映射和寄存器
    發表于 12-05 14:21 ?10次下載
    <b class='flag-5'>STM32</b>F103系列芯片的<b class='flag-5'>地址</b><b class='flag-5'>映射</b>和寄存器<b class='flag-5'>映射</b>原理,GPIO端口的初始化

    STM32(CM3內核) 內存映射

    這里寫目錄標題STM32(CM3內核) 內存映射一.CM3內核簡介二.CM3內核地址映射三.搭建代碼,實現映射
    發表于 12-07 19:21 ?9次下載
    <b class='flag-5'>STM32</b>(CM3內核) 內存<b class='flag-5'>映射</b>

    STM32-寄存器地址名稱映射分析

    0-255.利用它可以訪問51單片機內部所有的特殊功能寄存器。前一句“sfr p0=0x80”就是將P0映射地址0x80。后一句“p0=0x00”就是往p0地址(0x80)代表的寄存器寫值。2
    發表于 12-08 17:36 ?1次下載
    <b class='flag-5'>STM32</b>-寄存器<b class='flag-5'>地址</b>名稱<b class='flag-5'>映射</b>分析

    2020.4.14 第四次 寄存器地址名稱映射

    寄存器地址名稱映射寫在前面:對于MCU,一切低層配置都是配置寄存器51中的映射方法:sfr P0=0x08;//P0映射地址0x08 P0
    發表于 12-08 17:51 ?9次下載
    2020.4.14  第四次 寄存器<b class='flag-5'>地址</b>名稱<b class='flag-5'>映射</b>

    stm32位帶操作及內存地址

    位待操作是如何實現的代碼代碼解讀基地址映射偏移地址映射例程STM32地址
    發表于 01-12 18:21 ?1次下載
    <b class='flag-5'>stm32</b>位帶操作及內存<b class='flag-5'>地址</b>

    Cache的原理和地址映射

    在cache存儲系統中,把cache和主存儲器都劃分成相同大小的塊。 主存地址由塊號B和塊內地址W兩部分組成,cache地址由塊號b和塊內地址w組成。 當
    的頭像 發表于 10-31 11:21 ?1779次閱讀
    KK百家乐官网的玩法技巧和规则 | 周至县| 百家乐赌机玩法| 百家乐官网赌坊| 大发888如何下载| 百家乐现金网平台排行| 个人百家乐官网策略| 和乐娱乐| 大发888论坛爱好| 百家乐怎样出千| 百家乐官网单注打| 澳门赌百家乐官网打法| KK娱乐| 真人百家乐官网开户优惠| 平博娱乐| 大发888娱乐城下栽| 百家乐的最佳玩| 百家乐官网筹码托盘| 星级百家乐官网技巧| 承德县| 体育博彩| 大发888注册 大发888官网| 百家乐一邱大师打法| 百家乐是哪个国家| 亚洲百家乐官网的玩法技巧和规则| 东乡县| 998棋牌游戏| 大发888娱乐场| 威尼斯人娱乐场骗人| 百家乐真人娱乐场开户注册| 百家乐网上真钱麻将| 百家乐赢钱皇冠网| 杨公风水24山分金水法| 木棉百家乐官网的玩法技巧和规则 | 博雅德州扑克下载| 大发888娱乐城动态| 金杯百家乐的玩法技巧和规则 | 百家乐视频双扣| 吕百家乐官网赢钱律| 做生意风水知识| 百家乐取胜秘笈|