STM32F103可以通过D-Code总线访问内部SRAM吗?

问题描述 投票:0回答:1

在[ARM Cortex-M3权威指南]第108页中,D代码总线用于从0x00000000到0x1FFFFFFF的内存区域中的数据访问。 但是SRAM起始地址是0x2000 0000(STM32F103),那么STM32F103可以通过D-Code Bus访问内部SRAM吗?

网上搜了一下,有人说D-code Bus可以访问SRAM,也有人说D-code Bus专门访问FLASH。

stm32 cortex-m
1个回答
0
投票

我确信您已经完成了此操作,但其他人可以搜索“stm32f103 总线矩阵”或查看 AN3427(第 1 版第 12 页)以了解总线布局。

核心总线共有三种:I-bus、D-bus、S-bus。它们都可以访问SRAM。 (S总线不接触Flash,但它是通往外设的唯一核心路径。)I总线连接Flash的路径称为ICode,而D总线访问Flash的路径称为DCode。 (预取是在 ICode 总线上执行的。)

同时参考手册(RM0008 Rev. 21)解释说SRAM一般是通过S-bus访问的。

如何解释 Cortex-M3 上的 SRAM 和 I-/D-总线之间的连接?这是一个令人头疼的问题……或者可能是一个拼写错误? (即使是例外情况也使用适当的总线分隔。)

(旁白:有一个关于 ST 的 Cortex-M3 内核的讨论,其中一位 Arm 架构师解释说 SRAM 是双端口的,只读 ICode 并读/写 DCode。我需要更多上下文来弄清楚什么应该是这个意思。)

(第二点:在 STM32F3 上,有 CCM SRAM,只能使用 I/D 总线。)

© www.soinside.com 2019 - 2024. All rights reserved.