完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
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地址重映射通常是在硬件级别实现的,具体来说,是在微控制器或处理器的内存管理单元(Memory Management Unit, MMU)中实现的。MMU负责将虚拟地址映射到物理地址,地址重映射就是通过修改MMU中的映射表来实现的。
在STM32L4Rx系列微控制器中,SRAM2可以在两个不同的地址访问:0x20030000和0x10000000。这种设计允许在不进行地址重映射的情况下,通过ICode总线以最大性能执行SRAM2中的代码。同时,SRAM2在地址0x20040000处有一个别名,与SRAM1和SRAM3形成一个连续的地址空间。 当选择从片内SRAM启动时,SRAM1会被重映射到0x0000...的地址空间。这种重映射通常是通过配置微控制器的内存重映射寄存器来实现的。在STM32系列微控制器中,这个寄存器通常是MMCU(Memory Mapping Configuration Unit)寄存器。 总结一下,SRAM地址重映射是在硬件级别,特别是内存管理单元中实现的。在STM32L4Rx系列微控制器中,可以通过配置MMCU寄存器来实现SRAM1的地址重映射。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1801 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1629 浏览 1 评论
1096 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
735 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1684 浏览 2 评论
1944浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
745浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
579浏览 3评论
601浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
565浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-27 10:22 , Processed in 0.878204 second(s), Total 80, Slave 63 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号