STM32F7 架构概述的第 14 页 document显示内存地址:
- FLASH-ITCM(我正在使用的 F730 的尺寸未知)
- DTCM-RAM (64KB)
- ITCM-RAM (16KB)
这些有什么区别?许多示例显示数据进入 DTCM。像堆栈或关键函数这样的东西最适合在哪里?
与 ART 加速器相比,使用闪存 ITCM 接口(interface)有什么好处吗?
最佳答案
DTCM 和 ITCM 之间的区别在于它们连接到哪条总线,DTCM 位于 D 总线上,因此用于数据,这是存储堆栈的理想位置,ITCM 位于 I 总线上,因此用于数据获取指令(代码),这是存储关键例程的好地方。
ART加速器位于Flash和ITCM之间,所以它不是一个非此即彼的问题。通过 ITCM 使用闪存来编写代码是有利的,因为这样您就可以获得加速,而通过 AHB 总线则无法获得加速。所有闪存均可通过 ITCM 接口(interface)或 AHB 总线使用,具体取决于您使用的地址; 0x0020 0000
到 0x0027 FFFF
通过 ITCM,0x0800 0000
到 0x0807 FFFF
通过 AHB,两组地址都指向 Flash 的同一区域。
关于arm - STM32上的数据、指令和闪存CCM RAM有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54930005/