OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3307|回复: 3

H743 的内存地址是哪些??

[复制链接]

6

主题

56

帖子

0

精华

初级会员

Rank: 2

积分
129
金钱
129
注册时间
2019-1-29
在线时间
67 小时
发表于 2019-3-3 12:20:16 | 显示全部楼层 |阅读模式
5金钱
1 Mbyte of SRAM with a scattered architecture:  

       
  • 192 Kbytes of TCM RAM (including 64 Kbytes of ITCM RAM and 128 Kbytes of DTCM RAM for time-critical routines and data), 512 Kbytes, 288 Kbytes and 64 Kbytes of user SRAM, and 4 Kbytes of SRAM in backup domain to keep data in the lowest power modes

哪些是可以直接使用的?

KEIL的芯片说明是640K, 0x20000000有128K, 0x24000000有512K

0x30040000 是哪个内存? 这个好像可以用于DMA的.

其他的内存的地址在哪里?


最佳答案

查看完整内容[请看2#楼]

找到啦. 内部 SRAM STM32H7x3 器件具有:  多达 864 KB 的系统 SRAM  128 KB 的数据 TCM RAM  64 KB 的指令 TCM RAM  4 K 字节的备份 SRAM 嵌入式系统 SRAM 最多可分为五个块:  AXI SRAM(D1 域): – 映射到地址 0x2400 0000 的 AXI SRAM,可供除 BDMA 外的所有系统主设备通过 D1 域 AXI 总线矩阵访问  AHB SRAM(D2 域): – 映射到地址 0x3000 0000 的 AHB S ...
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

6

主题

56

帖子

0

精华

初级会员

Rank: 2

积分
129
金钱
129
注册时间
2019-1-29
在线时间
67 小时
 楼主| 发表于 2019-3-3 12:20:17 | 显示全部楼层
找到啦.

内部 SRAM
STM32H7x3 器件具有:
 多达 864 KB 的系统 SRAM
 128 KB 的数据 TCM RAM
 64 KB 的指令 TCM RAM
 4 K 字节的备份 SRAM
嵌入式系统 SRAM 最多可分为五个块:
 AXI SRAM(D1 域):
– 映射到地址 0x2400 0000 的 AXI SRAM,可供除 BDMA 外的所有系统主设备通过
D1 域 AXI 总线矩阵访问
 AHB SRAM(D2 域):
– 映射到地址 0x3000 0000 的 AHB SRAM1,可供除 BDMA 外的所有系统主设备通
过 D2 域 AHB 矩阵访问
– 映射到地址 0x3002 0000 的 AHB SRAM2,可供除 BDMA 外的所有系统主设备通
过 D2 域 AHB 矩阵访问
– 映射到地址 0x3004 0000 的 AHB SRAM3,可供除 BDMA 外的所有系统主设备通
过 D2 域 AHB 矩阵访问
 AHB SRAM(D3 域):
– 映射到地址 0x3800 0000 的 AHB SRAM4,可供大多数系统主设备通过 D3 域 AHB
矩阵访问
系统 AHB SRAM 可按字节、半字(16 位单元)或全字(32 位单元)访问,而系统 AXI
SRAM 可按字节、半字、全字或双字(64 位单位)访问。这些存储器可在最高系统时钟频
率下以 0 等待周期寻址。
当 AHB 主设备对 SRAM 中的一部分进行读/写访问的同时,以太网 MAC 或 USB OTG HS
外设可以访问 SRAM 的另一部分。例如,以太网 MAC 访问 SRAM2,同时 CPU 访问
SRAM1。
TCM SRAM 专用于 Cortex®-M7:
 TCM 接口上的 DTCM-RAM 映射到地址 0x2000 0000,可供 Cortex®-M7 访问,并且可
供 MDMA 通过 Cortex®-M7 CPU 的 AHBS 从总线访问。
 TCM 接口上的 ITCM-RAM 映射到地址 0x0000 0000,可供 Cortex®-M7 访问,并且可
供 MDMA 通过 Cortex®-M7 CPU 的 AHBS 从总线访问。
备份 RAM 映射到地址 0x3880 0000,可供大多数系统主设备通过 D3 域的 AHB 矩阵访问。

回复

使用道具 举报

6

主题

56

帖子

0

精华

初级会员

Rank: 2

积分
129
金钱
129
注册时间
2019-1-29
在线时间
67 小时
 楼主| 发表于 2019-3-3 12:25:26 | 显示全部楼层
刚刚找到了. 原来datasheet里就有.

All devices feature:
 512 Kbytes of AXI-SRAM mapped onto AXI bus on D1 domain.
 SRAM1 mapped on D2 domain: 128 Kbytes
 SRAM2 mapped on D2 domain: 128 Kbytes
 SRAM3 mapped on D2 domain: 32 Kbytes
 SRAM4 mapped on D3 domain: 64 Kbytes
 4 Kbytes of backup SRAM
The content of this area is protected against possible unwanted write accesses,
and is retained in Standby or VBAT mode.
 RAM mapped to TCM interface (ITCM and DTCM):
Both ITCM and DTCM RAMs are 0 wait state memories. either They can be accessed
either from the CPU or the MDMA (even in Sleep mode) through a specific AHB slave
of the CPU(AHBP):
– 64 Kbytes of ITCM-RAM (instruction RAM)
This RAM is connected to ITCM 64-bit interface designed for execution of critical
real-times routines by the CPU.
– 128 Kbytes of DTCM-RAM (2x 64-Kbyte DTCM-RAMs on 2x32-bit DTCM ports)
The DTCM-RAM could be used for critical real-time data, such as interrupt service
routines or stack/heap memory. Both DTCM-RAMs can be used in parallel (for
load/store operations) thanks to the Cortex®-M7 dual issue capability.
The MDMA can be used to load code or data in ITCM or DTCM RAMs.

datasheet里还有图有真相..


但这一章..

Memory mapping

Refer to the product line reference manual for details on the memory mapping as well as the
boundary addresses for all peripherals.

回复

使用道具 举报

6

主题

56

帖子

0

精华

初级会员

Rank: 2

积分
129
金钱
129
注册时间
2019-1-29
在线时间
67 小时
 楼主| 发表于 2019-3-10 11:08:31 | 显示全部楼层
补充一下在头文件找到的信息

#define D1_ITCMRAM_BASE           ((uint32_t)0x00000000) /*!< Base address of : 64KB RAM reserved for CPU execution/instruction accessible over ITCM  */
#define D1_ITCMICP_BASE           ((uint32_t)0x00100000) /*!< Base address of : (up to 128KB) embedded Test FLASH memory accessible over ITCM         */
#define D1_DTCMRAM_BASE           ((uint32_t)0x20000000) /*!< Base address of : 128KB system data RAM accessible over DTCM                            */
#define D1_AXIFLASH_BASE          ((uint32_t)0x08000000) /*!< Base address of : (up to 2 MB) embedded FLASH memory accessible over AXI                */
#define D1_AXIICP_BASE            ((uint32_t)0x1FF00000) /*!< Base address of : (up to 128KB) embedded Test FLASH memory accessible over AXI          */
#define D1_AXISRAM_BASE           ((uint32_t)0x24000000) /*!< Base address of : (up to 512KB) system data RAM accessible over over AXI                */

#define D2_AXISRAM_BASE           ((uint32_t)0x10000000) /*!< Base address of : (up to 288KB) system data RAM accessible over over AXI                */
#define D2_AHBSRAM_BASE           ((uint32_t)0x30000000) /*!< Base address of : (up to 288KB) system data RAM accessible over over AXI->AHB Bridge    */

#define D3_BKPSRAM_BASE           ((uint32_t)0x38800000) /*!< Base address of : Backup SRAM(4 KB) over AXI->AHB Bridge                                */                                                  
#define D3_SRAM_BASE              ((uint32_t)0x38000000) /*!< Base address of : Backup SRAM(64 KB) over AXI->AHB Bridge                               */

#define PERIPH_BASE               ((uint32_t)0x40000000) /*!< Base address of : AHB/ABP Peripherals                                                   */
#define QSPI_BASE                 ((uint32_t)0x90000000) /*!< Base address of : QSPI memories  accessible over AXI                                    */

#define FLASH_BANK1_BASE          ((uint32_t)0x08000000) /*!< Base address of : (up to 1 MB) Flash Bank1 accessible over AXI                          */
#define FLASH_BANK2_BASE          ((uint32_t)0x08100000) /*!< Base address of : (up to 1 MB) Flash Bank2 accessible over AXI                          */
#define FLASH_END                 ((uint32_t)0x081FFFFF) /*!< FLASH end address                                                                       */

#define FLASH_OTP_BANK1_BASE      ((uint32_t)0x1FF00000) /*!< Base address of : (up to 128KB) embedded FLASH Bank1 OTP Area                           */
#define FLASH_OTP_BANK1_END       ((uint32_t)0x1FF1FFFF) /*!< End address of : (up to 128KB) embedded FLASH Bank1 OTP Area                            */
#define FLASH_OTP_BANK2_BASE      ((uint32_t)0x1FF40000) /*!< Base address of : (up to 128KB) embedded FLASH Bank2 OTP Area                           */
#define FLASH_OTP_BANK2_END       ((uint32_t)0x1FF5FFFF) /*!< End address of : (up to 128KB) embedded FLASH Bank2 OTP Area                            */

/* Legacy define */
#define FLASH_BASE                FLASH_BANK1_BASE



使用SRAM,SRAM2,SRAM3之前要使用
        __HAL_RCC_D2SRAM1_CLK_ENABLE();
        __HAL_RCC_D2SRAM2_CLK_ENABLE();
        __HAL_RCC_D2SRAM3_CLK_ENABLE();

SRAM4目前还不知道如何用上.

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-10 06:20

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表