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

    文章

    10824

    浏览量

    211140
  • STM32
    +关注

    关注

    2266

    文章

    10871

    浏览量

    354791
  • 总线
    +关注

    关注

    10

    文章

    2866

    浏览量

    87984
  • 地址映射
    +关注

    关注

    0

    文章

    5

    浏览量

    2024
收藏 人收藏

    评论

    相关推荐

    Linux内核地址映射模型与Linux内核高端内存详解

    的数据可能不在内存中。 Linux内核地址映射模型 x86 CPU采用了段页式地址映射模型。进程代码中的
    发表于 05-08 10:33 3442次阅读
    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 571次阅读
     <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 1564次阅读