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

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

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

STM32/CPU地址映射的概念

CHANBAEK ? 來(lái)源:一個(gè)早起的程序員 ? 作者:一個(gè)早起的程序員 ? 2023-07-24 11:14 ? 次閱讀

1總線的由來(lái)

很多人對(duì)總線和地址映射的概念都是一頭霧水,但是我們?nèi)绻罏楹涡枰偩€和地址映射,他們是在什么背景下被衍化出來(lái)的,自然而然對(duì)此概念就清清楚楚了。

我們知道CPU都是通過(guò)總線訪問(wèn)外設(shè),例如STM32使用AMBA規(guī)范的總線和外設(shè)進(jìn)行交互,那么在總線的概念沒(méi)有被提出來(lái)的時(shí)候,外設(shè)是怎樣被訪問(wèn)的呢?

其實(shí)在最早期還沒(méi)有總線概念的時(shí)候,CPU設(shè)計(jì)者會(huì)直接把CPU內(nèi)核和各種接口控制器設(shè)計(jì)到一起,如果要訪問(wèn)一個(gè)硬件,直接在內(nèi)核里面對(duì)各種接口控制器進(jìn)行操作,從而操作相應(yīng)的硬件。我們看下圖。

圖片

后來(lái)設(shè)計(jì)者發(fā)現(xiàn)如果每添加一個(gè)外設(shè)都要修改CPU內(nèi)核,這樣不具有很好的擴(kuò)展性,為了使得外設(shè)的改變(增加、刪除、修改)不影響CPU內(nèi)核架構(gòu),衍化出了總線的概念,CPU內(nèi)核可以通過(guò)總線訪問(wèn)各種各樣外設(shè),新的外設(shè)只需要掛接到總線上,就可被CPU內(nèi)核訪問(wèn)控制。有了總線,CPU可以用統(tǒng)一的訪問(wèn)方式訪問(wèn)任何外設(shè),實(shí)現(xiàn)了CPU內(nèi)核和外設(shè)分開(kāi)設(shè)計(jì)和維護(hù)。

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

圖片

2 STM32/CPU地址映射

外設(shè)怎么知道CPU內(nèi)核發(fā)出的操作是給自己的呢?

其實(shí)每一個(gè)外設(shè)都具有自己的地址空間,當(dāng)CPU內(nèi)核通過(guò)總線訪問(wèn)外設(shè)時(shí),對(duì)應(yīng)地址空間的外設(shè)就知道CPU內(nèi)核是在操作自己(外設(shè)被命中),然后外設(shè)去操作連接的硬件,如上圖ROM控制器操作Flash設(shè)備。

外設(shè)的地址控制怎么分配呢?

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

3 STM32的外設(shè)地址映射表

STM32地址總線接口為32位,則可以訪問(wèn)4Gbit的外設(shè)空間,下面為STM32F10X外設(shè)地址映射表。有很多還沒(méi)有被映射的地址空間,ST公司后期可能用來(lái)擴(kuò)展新外設(shè),而擴(kuò)展過(guò)程Cortex內(nèi)核是不需要進(jìn)行任何修改的。

圖片

聲明:本文內(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)投訴
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    10805

    瀏覽量

    210850
  • STM32
    +關(guān)注

    關(guān)注

    2264

    文章

    10854

    瀏覽量

    354304
  • 總線
    +關(guān)注

    關(guān)注

    10

    文章

    2859

    瀏覽量

    87913
  • 地址映射
    +關(guān)注

    關(guān)注

    0

    文章

    5

    瀏覽量

    2023
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Linux內(nèi)核地址映射模型與Linux內(nèi)核高端內(nèi)存詳解

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

    有關(guān)51里面地址映射stm32里面地址映射的問(wèn)題

    問(wèn)個(gè)問(wèn)題:在51里面用的地址映射是通過(guò)頭文件《reg51.h》實(shí)現(xiàn)的,而在reg51.h中是通過(guò)"sfr P0 = 0x80"這樣的語(yǔ)句實(shí)現(xiàn)的!而32里面問(wèn)什么在stm32f10x.h中全都是通過(guò)宏定義實(shí)現(xiàn)
    發(fā)表于 04-04 12:04

    STM32外設(shè)地址映射有哪些?都是什么?

    這個(gè)知識(shí)點(diǎn)應(yīng)該是 STM32入門(mén)必備的,請(qǐng)教大牛,STM32外設(shè)地址映射有哪些? 我一般看到片上外設(shè)區(qū)分為四條總線,根據(jù)外設(shè)速度的不同,不同總線掛載著不同的外設(shè),APB1掛載低速外設(shè),
    發(fā)表于 03-05 06:11

    STM32地址映射

    目錄1:前言2:地址(門(mén)牌號(hào))3:STM32地址映射4:位帶操作原理5:位操作代碼實(shí)現(xiàn)1:前言 以前學(xué)51的時(shí)候,沒(méi)有注重地址的這個(gè)
    發(fā)表于 08-13 06:05

    存儲(chǔ)器映射與寄存器映射的原理分別是什么

    【嵌入式系統(tǒng)】存儲(chǔ)器映射與寄存器映射原理一、存儲(chǔ)器映射圖1 存儲(chǔ)器映射存儲(chǔ)器在產(chǎn)家制作完成后是一片沒(méi)有任何信息的物理存儲(chǔ)器,而CPU要進(jìn)行訪
    發(fā)表于 12-20 08:17

    ARM啟動(dòng)代碼及地址映射

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

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

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

    STM32核心在Cortex的地址映射說(shuō)明

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

    【MCU】STM32地址映射和HAL庫(kù)開(kāi)發(fā)基礎(chǔ)

    回顧STM32的內(nèi)存映射機(jī)制
    發(fā)表于 10-28 18:06 ?11次下載
    【MCU】<b class='flag-5'>STM32</b>的<b class='flag-5'>地址</b><b class='flag-5'>映射</b>和HAL庫(kù)開(kāi)發(fā)基礎(chǔ)

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

    文章目錄一、STM32F103系列芯片的地址映射和寄存器映射原理1.寄存器2.地址映射和寄存器
    發(fā)表于 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內(nèi)核) 內(nèi)存映射

    這里寫(xiě)目錄標(biāo)題STM32(CM3內(nèi)核) 內(nèi)存映射一.CM3內(nèi)核簡(jiǎn)介二.CM3內(nèi)核地址映射三.搭建代碼,實(shí)現(xiàn)映射
    發(fā)表于 12-07 19:21 ?9次下載
    <b class='flag-5'>STM32</b>(CM3內(nèi)核) 內(nèi)存<b class='flag-5'>映射</b>

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

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

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

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

    stm32位帶操作及內(nèi)存地址

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

    Cache的原理和地址映射

    在cache存儲(chǔ)系統(tǒng)中,把cache和主存儲(chǔ)器都劃分成相同大小的塊。 主存地址由塊號(hào)B和塊內(nèi)地址W兩部分組成,cache地址由塊號(hào)b和塊內(nèi)地址w組成。 當(dāng)
    的頭像 發(fā)表于 10-31 11:21 ?1519次閱讀