目录
【第九章 系统集成单元 System Integration Unit Lite2 (SIUL2)】
【架构框图】
【第三章 memory map】
一,TCM
1, Cortex-M7 cores, eDMA可以通过32位的AHBS总线访问ITCM和DTCM.
2, EMAC还可以直接访问DTCM.
3, On multi–core device, all enabled core and non–core masters can use TCMs of the disabled core. In order to allow use of ITCM and DTCM of the disabled core as system memories the following steps must be executed by enabled core:
Core和No-core都可以访问禁止core中的ITCM和DTCM,为了将ITCM和DTCM作为系统存储空间使用,需要按照步骤执行,参考3.4 TCM as system memory
1)使能M7的TCM控制时钟;
2)M7 core进入等待模式;
3)使能M7 CORE的时钟;
二,TCM实现
1, 为了防止ECC报错,在读操作前,TCM和系统RAM都要需要64bit写入初始化。
2, 系统RAM可以用DMA和CORE进行初始化;
3, ITCM的初始化只有CORE可以,core使用直接或后门访问的方式进行初始化;
4, The DTCM can be initialized also by 32-bit writes performed either using core's direct and back-door accesses as or eDMA.
DTCM的初始化可以用CORE或EDMA进行直接或后门访问,通过32位的写操作实现;
5, 每个M7都有32KB ITCM和64KB的DTCM.
6, In the lockstep operation, the checker core's TCM is added to the primary core.
在lockstep 操作中,checker core(辅助检验core)的TCM是会附加到主核使用的。
【第四章 gpio PIN 复用】
GPIO复用功能
Pad | 输出到外部接口 | DO | 数据从core输出到Pad |
OBE | 输出使能 | PUE | 上拉使能 |
PUS | 使能上下拉电阻选择 | IBE | 输入使能 |
IND | 数据从外部Pad输入到Core | SRC | Slew Rate Control |
PKE | PAD keeping 使能 | IFE | 输入滤波使能 |
DSE | 驱动能力增强使能 |
Pad Mux控制框图:
【第五章 CORE 和 系统】
Cortex-M7相对于之前的M4,M3有很大区别,尤其是指令流执行方面。M7拥有6级超标量流水线,对于它到底有多少级,我们不需要太关心。我们需要真正注意的是它具有指令乱序执行的特性,这个玩意不处理好的话会导致一些奇奇怪怪的问题。它是为了效率而设计,并且它会在一些时候提前执行一些代码。
除此之外,M7还具有L1 Cache,这个会引入数据一致性问题,也是个麻烦的东西。(CPU乱序执行,Cache搞假数据)
像STM32H750,它可以通过MPU将内存配置为Device或者Strongly-ordered类型,这样Cortex-M7访问这些内存时,会严格保证顺序,不会乱来。而对于一些内存,例如堆栈或者一些与硬件无关(一般只有CPU访问的内存都是)的内存,则可以配置为Normal,Cortex-M7将毫无顾忌的访问执行内存,内存访问的顺序将与代码的逻辑执行顺序不同,以提高效率。
【5.5 M7特性】
一,基本属性
The ability to perform speculative load from any Normal type memory space through its AXIM bus, if D-cache is enabled
1,如果D-cache被使能,可以通过AXIM(Advanced extensible interface master)总线,从任意存储区域,进行推测性加载。
2,几类存储接口:
-- 基于哈佛架构的指令和数据缓存,以及AXIM接口;
-- 专用的低延迟AHBP(AHB-lite peripheral)接口
-- 64位AXI AMBA4内存接口,具有16 KB I-Cache和16 KB D-Cache,可高效访问 外部资源,并且指令和数据缓存受ECC保护。
-- 32位AHBS(AHB-slave port),用于与DMA等从机接口
-- 64位和32位内存接口,用于连接称为ITCM和DTCM的本地紧耦合内存。
二,总线和接口
- AXIM使用XHB400模块,先连接到AHBP(AHB-Lite)总线接口, AHBP与AXBS 总线开关相连接,可实现对片上存储器和外设的高带宽访问。
- AHBP该总线连接到AXBS交叉开关,提供对片上外围设备的高带宽访问 。
- PPB(内部总线接口)该总线提供对这些模块的访问: Arm模块,如NVIC、ETM、ITM、DWT和ROM表 杂项控制模块(MCM)
三,推测性访问
Arm Cortex M7处理器可以发出推测性读访问,这些访问可以访问整个存储器中的任何地址范围。这种行为可以控制,但不能禁用。为了正确操作,必须考虑对系统的影响。
推测性访问不会导致任何处理器故障。因为处理器知道访问是否是推测性的,并忽略由于推测性访问而由系统发出的任何错误响应。然而,集成处理器的系统无法区分推测性访问和非推测性访问。
推测性访问所使用的地址不会根据设备的存储器映射进行访问,它们可能试图访问不存在的内存区域或具有副作用的硬件单元。具体参考ARM7 Generic User Guide中的Memory Model一章。