Arm STM32上的数据、指令和闪存CCM RAM之间有什么区别

Arm STM32上的数据、指令和闪存CCM RAM之间有什么区别,arm,stm32,cortex-m,stm32f7,Arm,Stm32,Cortex M,Stm32f7,本STM32F7体系结构概述第14页显示了以下各项的内存地址: 我正在使用的F730上的FLASH-ITCM未知尺寸 DTCM-RAM 64KB ITCM-RAM 16KB 这两者有什么区别?许多示例显示数据进入DTCM。堆栈或关键函数之类的东西在哪里最合适 在ART加速器上使用flash ITCM接口有什么好处吗?DTCM和ITCM之间的区别在于它们连接到哪个总线,DTCM位于D总线上,因此用于数据,这是存储堆栈的理想位置,ITCM位于I总线上,因此用于获取指令代码,这是一个很好的地方来存储您

本STM32F7体系结构概述第14页显示了以下各项的内存地址:

我正在使用的F730上的FLASH-ITCM未知尺寸 DTCM-RAM 64KB ITCM-RAM 16KB 这两者有什么区别?许多示例显示数据进入DTCM。堆栈或关键函数之类的东西在哪里最合适


在ART加速器上使用flash ITCM接口有什么好处吗?

DTCM和ITCM之间的区别在于它们连接到哪个总线,DTCM位于D总线上,因此用于数据,这是存储堆栈的理想位置,ITCM位于I总线上,因此用于获取指令代码,这是一个很好的地方来存储您的关键例程


艺术加速器位于闪光灯和ITCM之间,因此它不是非此即彼。通过ITCM对代码使用flash是有利的,因为这样可以获得加速,而通过AHB总线则没有。所有闪存均可通过ITCM接口或AHB总线使用,具体取决于您使用的地址;0x0020 0000到0x0027 FFFF通过ITCM,0x0800 0000到0x0807 FFFF通过AHB,两组地址都指向同一闪存区域。

所以ART的正常模式使用AHB总线,闪存ITCM绕过AHB,但与ITCM-RAM共享总线,DTCM完全隔离。不完全一样,通过ITCM使用闪存使用ART加速器,通过AHB总线使用闪存,您不会获得加速度。