查看: 446|回复: 9
打印 上一主题 下一主题

【STM32F7 入门系列】结构体系初探(一)

[复制链接] qrcode

28

主题

37

帖子

106

积分

注册会员

Rank: 2

积分
106
楼主
跳转到指定楼层
发表于 2015-9-6 07:00 PM | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

STM32F7系列MCU结构体系初探(一)


        近来有了一点时间,准备研究学习一下STM32F7系列单片机。之前也用过ST公司F1、F4系列的其它产品,在国内来看ST的单片机比较流行的,但新品价格略感人。接下来我将在此记录学习过程与大家一起分享。QQ群交流可能方便快捷,但作为技术积累,希望大家多多在论坛发言。作为新产品,手上暂无开发板,只能通过官网E文资料学习。有理解错误的地方,大家帮忙指出。第一篇先对该MCU结构体系进行简单介绍,不做深入探究。后续对各个功能的具体实现有专门的教程贴。

        第二篇入口:【STM32F7 入门系列】结构体系初探(二)




官方资料入口:http://www.st.com/web/en/catalog/mmc/FM141/SC1169/SS1858





一、与Cortex-M7内核相关简述


--Cortex-M7 32-Bit

--最大支持频率为216MHz

--单浮点精度运算单元FPU

--支持DSP全指令集

--内存保护单元MPU

--兼容Cortex-M4指令集

--6/7级超标量流水线,可进行分支预测


        该内核含有一个L1-cache,分为数据缓存D-cache和指令缓存I-cache,各4K大小。允许哈佛结构从而提高了一定的性能。某些外设扩展的存储器也是可以通过L1-cache来进行数据的读取和指令的执行,如QSPI Flash。想起来官方的一段介绍:无论是从嵌入式闪存还是外部存储器来执行代码:216 MHz 处理器频率下性能达到 1082 CoreMark /462 DMIPS。

        在默认情况下,L1是关闭的。ARM CMSIS库提供两个函数来分别使能I/D cache:

        SCB_EnableICache() 

        SCB_EnableDCache() 


        有些就不多说了,展开内容太多。哈哈,估计有些人会吐槽主频、90nm工艺、单精度浮点什么的。其实作为学习来讲,I don\'t care。毕竟离正式应用还有一段时间,也许有到时有新产品。有兴趣的去看ARM的手册吧:“
ARMv7-M architecture reference manual”。


二、内核总线结构
         

        Cortex-M7总共有5个内核总线接口,如下图中的彩色线:

AXIM   -- Advanced eXtensible Interface Master
ITCM    --Instruction TCM (TCM = Tightly-Coupled Memory) 
DTCM  --Data TCM

AHBS   -- AHB Slave (AHB = Advanced High-performance Bus

AHBP   --AHB Peripheral


        我们逐个来看各个总线接口。

        AXIM:(屎黄色的那个短线)

        该总线为64-bit,它可以获取更多的指令或读取更多的数据。该总线连接core(L1-cache)与AXI to Multi-AHB桥。

        AHB桥共有4个接口:

                1*64-bit AHB 连接内部Flash

                3*32-bit AHB 连接bus matrix(总线矩阵)
        通过上图我们可以看出,AXIM通过AXI to AHB桥连接的总线矩阵,而总线矩阵连接着各种主控、被控总线与外围设备:内嵌的Flash、SRAM,FMC接口、QSPI接口等。需要注意的是,如果使用cache,那么除了TCM、AHPB总线外,其余的都应通过相应的缓存控制器来配置管理的。并且也并不是所有存储区块都是可缓存的。只有类型为Nomal、Non-Shared的存储区块才能被缓存。对于不可缓存的区块可以使用MPU来修改其属性,详见
MPU_RASR 寄存器部分。下图给出复位时各个存储区块的类型:



        TCM

        紧密耦合内存总线。TCM支持哈佛结构,分为ITCM和DTCM。其中ITCM为64-bit,DTCM又可分为两路32-bit:D0TCM、D1TCM。由第一幅图所示:DTCM总线连接片内64K的DTCM-RAM;ITCM连接片内16K的ITCM-RAM和片内Flash。

        TCM总线与core连接紧密,可用于时间关键的数据指令的处理。我们也可以发现ITCM是独立于其它总线的,即不会有总线竞争问题,它仅能被core访问。

        AHBS:

        对于该总线(32-bit)来讲,ARM Cortex-M7中同时连接DTCM、ITCM。但是从图中我们发现,ST的F7系列仅接入DTCM。所有想通过DMA方式读取ITCM、DTCM接口的数据都必须通过AHBS,所以对于STM32F7系列来讲,DTCM-RAM可以通过DMA访问,而ITCM-RAM则不行。AHBS可以在core睡眠时使用,所以也就意味着低功耗模式下可以使用相应的DMA功能。

        AHBP

        32-bit,专门用来连接core与外设的。该总线仅用作数据访问,不支持指令的获取。AHBP直接连接core与总线矩阵,主要连接AHB1、AHB2、APB1、APB2的片内外设。


三、STM32F7的总线矩阵


        从第一幅图我们可以看到,8层、32-bit的总线矩阵用于core、主控、被控总线相互连接。内核总线、主控总线和被控总线间的某些并发访问是允许的。甚至当几个高速外设工作时也能高效运行。总线矩阵可以以cpu同样的频率216Mhz运行。由内部仲裁管理冲突和主控总线并发问题,使用的是round-robin算法。

        通过总线矩阵进行相互连接的有:

        (下边这段中文是新添加的,因为有的论坛朋友反应原来的有乱码。原来的在下方依旧保留,还不行的话大家可以换浏览器试一下)

12个主控总线/设备(第一幅图有标注12 master bus,即从矩阵上方接入的总线):

- 3个32-bit的AHB总线:与AXI to AHB桥相连

- 1个64-bit的AHB总线:连接片内Flash与AXI to AHB桥(虽然从图上看上去,并没经过矩阵)

- AHBP 外设总线

- DMA1 到内存的总线

- DMA2 到内存的总线

- DMA2 到外设的总线

- Ethernet DMA bus 以太网DMA总线

- USB OTG HS DMA bus 高速USB OTG DMA总线

- LCD-TFT 控制器DMA总线

- Chrom-Art(DMA2D)图形加速器总线

8个被控总线/设备 (见第一幅图中连接矩阵右边的部分总线/外设)

- 片内Flash

- AHBS总线

- SRAM1

- SRAM2

- 连接AHB1的外设(包括AHP to AHB桥,连接APB1、APB2的外设)

- 连接AHB2的外设

- FMC

- Quad SPI

        (下边是原内容,如有乱码请切换浏览器试试。本人用chrome+safari显示是正常的)

12个主控总线/设备

–  Three 32-bit AHB buses that outcome from the AXI to AHB bridge

–  One 64-bit AHB bus connected to the embedded Flash memory that outcomes from the AXI to AHB bridge

–  Cortex®-M7 AHB peripherals bus

–  DMA1 memory bus

–  DMA2 memory bus

–  DMA2 peripheral bus

–  Ethernet DMA bus

–  USB OTG HS DMA bus

–  LCD-TFT controller DMA-bus

–  Chrom-Art AcceleratorTM (DMA2D) memory bus

8个被控总线/设备

–  The embedded Flash memory on AHB bus (for Flash read/write access, for thecode execution and data access)

–  Cortex®-M7 AHBS slave interface for DMAs data transfer on DTCM-RAM only

–  Main internal SRAM1 (240 Kbytes)

–  Auxiliary internal SRAM2 (16 Kbytes)

–  AHB1 peripherals including AHB to APB bridges, APB1 and APB2 peripherals

–  AHB2 peripherals

–  FMC memory interface

–  Quad SPI memory interface 


四、DMAs


        DMA相信大家都不陌生,DMA即 Direct Memory Access。可以在无需任何 CPU 操作的情况下进行内存间、内存与外设间的高速数据传输。

        相信许多参加过飞思卡尔智能车摄像头组的同学都用过,当场信号触发中断时开启DMA,设置、清理一些标志位,行中断时使能DMA读取图像数据到内存。由于在采集视频信息时,CPU很少参与,这样就大大解放了CPU。同时可利用这段时间可以处理其它数据。要是前几届freescale还没有Kinetis单片机时,都用16位的MC9S128不支持DMA,只能结合摄像头场、行信号通过for循环或顺序读IO代码去采集摄像头信号,此时CPU被“采集数据”这件事给独占了,效率太低。
        我们回过头来接着看STM32F7的DMA。它基于总线矩阵,结合了双AHB总线结构与独立FIFO,充分利用了系统带宽。并可以在低功耗模式下运行。每个DMA有8个数据流,每个数据流都有8个通道。

        从本帖第一个框图我们也可以清楚的看到,STM32F7除了2个通用DMA(GP DMA)还有其它专用DMA:以太网、USB OTG、LCD-TFT、Chrom-ART(DMA2D)。所有的DMA都支持对以下存储区域的访问:片内Flash、SRAM1、SRAM2、DTCM-RAM(通过AHBS)。同时所有的DMA通过FMC、QSPI总线对外部扩展存数设备提供接口。(ITCM-RAM不支持DMA:见本帖AHBS部分)
        由于本贴仅对STM32F7结构体系学习与介绍,针对强大的DMA这里不做详细说明,后续会有专门教程贴。



存储设备等学习记录将会在后续的帖子中分享。    





本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

2

主题

96

帖子

58

积分

注册会员

Rank: 2

积分
58
沙发
发表于 2015-9-7 12:02 AM | 只看该作者
感谢楼主分享,赞一个~
回复 支持 反对

使用道具 举报

66

主题

492

帖子

924

积分

高级会员

Rank: 4

积分
924
板凳
发表于 2015-9-7 01:06 AM | 只看该作者

谢谢支持,我会继续发帖与大家一起学习。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 反对

使用道具 举报

0

主题

88

帖子

24

积分

新手上路

Rank: 1

积分
24
地板
发表于 2015-9-8 09:23 AM | 只看该作者
楼主,那是俄语吗??
看中文都有点吃力,你还让我们看。。。。
回复 支持 反对

使用道具 举报

1

主题

82

帖子

29

积分

新手上路

Rank: 1

积分
29
5#
发表于 2015-9-8 09:49 AM | 只看该作者

看翻译

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 反对

使用道具 举报

0

主题

67

帖子

4

积分

新手上路

Rank: 1

积分
4
6#
发表于 2015-9-8 11:16 AM | 只看该作者
好厉害。。。。
回复 支持 反对

使用道具 举报

0

主题

91

帖子

4

积分

新手上路

Rank: 1

积分
4
7#
发表于 2015-9-8 11:39 AM | 只看该作者
换个浏览器就OK了
回复 支持 反对

使用道具 举报

10

主题

191

帖子

228

积分

中级会员

Rank: 3Rank: 3

积分
228
8#
发表于 2015-9-8 12:23 PM | 只看该作者

。。。我的浏览器显示的都是英文:safari和chrome,这段没有翻译,因为这些主从控上边有介绍。我不清楚怎么回事,一开始也是编辑好帖子,然后预览好后发帖。结果完全跟预览不一样,很多效果都变了。我又修改了几次。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 反对

使用道具 举报

0

主题

74

帖子

14

积分

新手上路

Rank: 1

积分
14
9#
发表于 2015-9-8 05:28 PM | 只看该作者
顶起了!!!给力!
回复 支持 反对

使用道具 举报

0

主题

113

帖子

46

积分

新手上路

Rank: 1

积分
46
10#
发表于 2016-1-30 02:28 PM | 只看该作者
顶起了!!!给力!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表