网站大量收购独家精品文档,联系QQ:2885784924

STM32寄存器版的基础知识—内存映射.pdf

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
STM32寄存器版的基础知识—内存映射 STM32寄存器版的基础知识—内存映射映射 STM32F429芯⽚系统结构 STM32F429 采⽤的是 Cortex-M4 内核,内核即 CPU,由 ARM公司设计。ARM 公司并不⽣产芯⽚,⽽是出售其芯⽚技术授权。芯⽚ ⽣产⼚商(SOC)如 ST、TI、Freescale,负责在内核之外设计部件并⽣产整个芯⽚,这些内核之外的部件被称为核外外设或⽚上外设。如 GPIO、USART(串⼝)、I2C、SPI等都叫做⽚上外设。 从上图我们可以清除的看到芯⽚和外设之间通过各种总线连接,其中主控总线有 8条,被控总线有 7 条。主控总线通过⼀个总线矩阵来连 接被控总线, 总线矩阵⽤于主控总线之间的访问仲裁管理,仲裁采⽤循环调度算法。⽐如数据从Cotex-M4 到⾼速外设USB,数据交给在 总线矩阵后,总线矩阵就会判给USB,然后通过USB所在的 AHB1 传输给USB。 三⼤总线 ICode:指令总线 DCode:数据总线 System:系统总线 1、ICode 着重传输指令,DCode 和 System 着重传输数据,⾄于更详细的区分,不⽤关⼼。 2、实际上 ICode、DCode 和 System 内部都包含三个部分,即地址总线、控制总线、数据总线。 ⾼速总线 直接挂接在“总线矩阵上”的有哪些呢? 1、ICode、DCode、System 2、FLASH连接总线 3、SRAM 连接总线 4、⾼速外设连接总线 AHB1/AHB2/AHB3 5、连接“桥”的总线 这些“⾼速总线”直接与“总线矩阵”连接在⼀起,其实这些⾼速总线实际上就是“总线矩阵”的延伸,或者说就是总线矩阵的⼀部分。 ⾼速外设和低速外设 我们这⾥说“⽚内外设”时,暂都不包含 ROM(FLASH)和 SRAM。 1、⾼速外设 由于⾼速外设实在是太多了,⼀个总线不够,所以分了三个,分别是 AHB1/AHB2/AHB3,所有“⾼速外设”寄存器组分批挂接在 AHB1/AHB2/AHB3 上。 2、低速外设 “低速外设”的速度⽐较低,不能直接挂在“总线矩阵”上,所以先经过“桥”后再引出“低速总线”,挂在低速总线上。由于“低速外 设”⽐较多,所以就分了两个低速总线,分别是 APB1/APB2,所有的“低速外 设”分批挂接在 APB1/APB2 上。 内存映射 这张图太重要了,看懂这张图,你的STM32已经可以掌握40%了,下⾯就来着重讲解这⼀张图。这张图来⾃STM32F407参考⼿册第61 页,由于原版是英⽂的,搞了⼀个翻译过来的版本。 1、STM32存储空间 芯⽚能访问的存储空间有多⼤,是由谁定的?这个是由芯⽚内 CPU 的地址总线的数量决来定的,STM32 芯⽚内部的地址总线为32 根, 1、1 根地址线:可以传输的地址为 0 和 1 的,那么理论上就可以访问 2 个字节 2、2 跟地址线:可以传输地址为 00、01、10、11,理论上可以访问 4 个字节 3、3 个地址线:可以传输的地址为 000、001、010、011、100、101、110、111,理论上可以访 问 8 个字节。 4、32 根地址线:可以产⽣0000000000000000、…11111111 2^32个地址,范围刚好为 4G,所以我们就说STM32的32 根地址线,理论上可以访问4G字节的存储器空间。 在上图的最右边可以看到STM32地址是从0x0000 0000到0xFFFF FFFF,这就是4GB的存储空间。但是STM32真的有4GB的存储空间 吗? **你在想啥呢?**答案当然不是,我们的PC电脑也才4GB的内存。⼀个⼩⼩的单⽚机怎么可能有4GB的存储空间!这个4GB的是STM32理 论分配的地址空间。也就是说实际上并不是有折磨⼤的存储单元。上图中第⼆排可以看到有很多预留的地址,这些地址并没有给他分配存储 单元。 所有的存储器都是与地址线连着的,但是实际上如果你只接了⼀个 1M 的存储器,⽽且是从0地址开始映射的,那么32 根地址线所产⽣的 0~1M 的地址信号其实才是有意义的,因为这些地址信号才有对应真实的存储器,⽽所产⽣的1M 以上地址信号其实并⽆意义,因为并不对 应真实的存储器。 举个例⼦,政府给你化了10栋楼房的⾯积⽤来盖房⼦,但是实际上你没有那么多钱,只盖了3栋楼,其他的7栋房⼦预留的⾯积只能放在那 ⾥,凭什么不允许呢?这样说你应该明⽩了吧。 STM32中的32是32根地址线的意思吗? 答:不是,STM

文档评论(0)

小布 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档