STM32上的数据,指令和闪存CCM RAM有什么区别

时间:2019-02-28 16:16:59

标签: arm stm32 cortex-m stm32f7

此STM32F7架构概述document的第14页显示了以下存储器的地址:

  • FLASH-ITCM(我正在使用的F730尺寸未知)
  • DTCM-RAM(64KB)
  • ITCM-RAM(16KB)

两者之间有什么区别?许多示例显示数据进入DTCM。堆栈或关键函数最适合哪里?

使用Flash ITCM界面而不是ART加速器有什么好处吗?

1 个答案:

答案 0 :(得分:1)

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

ART加速器位于Flash和ITCM之间,因此不是一个或两个。通过ITCM使用闪存进行编码是有利的,因为这样做确实可以加速,而通过AHB总线则不会。所有闪存都可以通过ITCM接口或AHB总线使用,具体取决于您使用的地址。 0x0020 00000x0027 FFFF是通过ITCM,0x0800 00000x0807 FFFF是通过AHB,两组地址都指向同一闪存区域。