cruelfox 发表于 2018-12-3 10:44:30

SRAM地址重映射是在哪一级实现的?

SRAM容量比较大的型号,常见的除了SRAM分为几块如 SRAM1, SRAM2, TCM RAM 等之外,还常见地址重映射的设计。
例如下面这个图是 STM32L4Rx 的地址空间,其中 SRAM2 在 0x20030000 和 0x10000000 两个地址都可以访问。

手册是这么叙述的:
Execution can be performed from SRAM2 with maximum performance without any remap thanks to access through ICode bus.
The SRAM2 is aliased at address 0x2004 0000, offering a continuous address space with the SRAM1 and SRAM3.


此外,选择了从片内SRAM启动时,SRAM1 会被重映射到 0x00000000 处:
Boot from the embedded SRAM1: the SRAM1 is aliased in the boot memory space (0x0000 0000), but it is still accessible from its original memory space (0x2000 0000).



我有个疑问是,像上面这重地址重映射,是在 Cortex-m4 内核中实现的,还是在总线上,如 AHB Bus matrix 里面实现的?或者还有其它方式?
如果影射是总线的功能,那么DMA能够从两个地址访问同一个SRAM,没问题?
页: [1]
查看完整版本: SRAM地址重映射是在哪一级实现的?