硬汉嵌入式论坛

 找回密码
 立即注册
查看: 6390|回复: 17
收起左侧

[SRAM] 为了发挥最高性能,程序加载到内部SRAM运行的话,变量存储最好使用其他总线上的SRAM

[复制链接]

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106882
QQ
发表于 2020-7-30 08:02:51 | 显示全部楼层 |阅读模式

如果程序和数据都在一个RAM里面,比较占用性能带宽,分开两个空间可以性能最大化。

比如此贴里面的方式就可以:

基于STM32H7的内部SRAM程序调试工程模板(512KB的AXI SRAM存程序,DTCM做主RAM)
http://www.armbbs.cn/forum.php?mod=viewthread&tid=93112






回复

使用道具 举报

2

主题

55

回帖

61

积分

初级会员

积分
61
发表于 2020-7-30 08:43:54 | 显示全部楼层
512KB的AXI SRAM 全部用来放程序有点奢侈啊
20200730084323.png
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106882
QQ
 楼主| 发表于 2020-7-30 09:06:20 | 显示全部楼层
tomyqg 发表于 2020-7-30 08:43
512KB的AXI SRAM 全部用来放程序有点奢侈啊

GUI,网络协议栈这些加入就不行了,空间不足。

而你这种方式RAM分配,有两个坑
1、优先使用的TCM,即IRAM1,这个空间是不支持通用DMA1和DMA2的,而后面的AXI支持,会出现有时候正常,有时候不正常的假象。
2、都操作AXI SRAM的时候,性能发挥不出来。
回复

使用道具 举报

2

主题

55

回帖

61

积分

初级会员

积分
61
发表于 2020-7-30 09:09:43 | 显示全部楼层
还好,我只用了NET、QSPI、CANFD、定时器这些,没有用DAM1/2
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106882
QQ
 楼主| 发表于 2020-7-30 09:11:05 | 显示全部楼层
tomyqg 发表于 2020-7-30 09:09
还好,我只用了NET、QSPI、CANFD、定时器这些,没有用DAM1/2

还是建议一开始就把这个规范好,防止自己以后使用这个工程做模板,忽视了这些问题而造成踩坑。
回复

使用道具 举报

2

主题

55

回帖

61

积分

初级会员

积分
61
发表于 2020-7-30 09:12:51 | 显示全部楼层
没办法啊 空间不足啊
回复

使用道具 举报

2

主题

55

回帖

61

积分

初级会员

积分
61
发表于 2020-7-30 09:16:58 | 显示全部楼层
或者可以把DMA1/2用到的区域定位到AXI RAM区域?AXI RAM全部用来放代码的话,应用空间就受限很多了
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106882
QQ
 楼主| 发表于 2020-7-30 09:19:24 | 显示全部楼层
tomyqg 发表于 2020-7-30 09:12
没办法啊 空间不足啊

怎么会空间不足呢,你这还有400KB的空间没有用上呢。。

估计你都忘了。

STM32H743几块SRAM的分配和地址
http://www.armbbs.cn/forum.php?m ... 5939&fromuid=58
(出处: 硬汉嵌入式论坛)
回复

使用道具 举报

2

主题

55

回帖

61

积分

初级会员

积分
61
发表于 2020-7-30 09:24:09 | 显示全部楼层
本帖最后由 tomyqg 于 2020-7-30 09:30 编辑

好的 ,我尝试把RTX5 和 NET 协议栈用到的RAM能固定到这些区域,目前这两块用的比较多
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106882
QQ
 楼主| 发表于 2020-7-30 10:15:57 | 显示全部楼层
tomyqg 发表于 2020-7-30 09:24
好的 ,我尝试把RTX5 和 NET 协议栈用到的RAM能固定到这些区域,目前这两块用的比较多

RTX5的全局动态内存就用TCM比较给力。可以发挥内核最高性能。

回复

使用道具 举报

54

主题

145

回帖

307

积分

高级会员

积分
307
发表于 2020-11-18 16:31:07 | 显示全部楼层
eric2013 发表于 2020-7-30 09:19
怎么会空间不足呢,你这还有400KB的空间没有用上呢。。

估计你都忘了。

RAM设置里面on chip的IRAM只有两个,要是把DTCM,RAM1,RAM2都用上的话,怎么设置呢(不使用分散加载的方式)?
   
on chip选项和off chip选项有什么区别呢?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106882
QQ
 楼主| 发表于 2020-11-19 09:11:13 | 显示全部楼层
mewan 发表于 2020-11-18 16:31
RAM设置里面on chip的IRAM只有两个,要是把DTCM,RAM1,RAM2都用上的话,怎么设置呢(不使用分散加载的方式)?
...

DTCM,RAM1,RAM2等将on chip和off chip填满,然后需要那个文件存到那个RAM里面,右击此文件设置RAM区即可,简单省事,此种应用on chip和off chip无差别
回复

使用道具 举报

22

主题

93

回帖

159

积分

初级会员

积分
159
发表于 2021-2-22 10:54:27 | 显示全部楼层
512KB的AXI SRAM全部存程序,DTCM做RAM用,而DTCM不支持DMA1和DMA2,那么使用DMA1和DMA2时使用哪个RAM呢?
回复

使用道具 举报

22

主题

93

回帖

159

积分

初级会员

积分
159
发表于 2021-2-22 14:30:34 | 显示全部楼层
这里再请教一下,程序放在AXI SRAM中运行一定比在FLASH中快吗?感觉F1和F4在RAM和ROM中哪个快不一定吧。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106882
QQ
 楼主| 发表于 2021-2-23 08:04:28 | 显示全部楼层
shibinjie 发表于 2021-2-22 14:30
这里再请教一下,程序放在AXI SRAM中运行一定比在FLASH中快吗?感觉F1和F4在RAM和ROM中哪个快不一定吧。

放在ITCM里面是最快的。
回复

使用道具 举报

22

主题

93

回帖

159

积分

初级会员

积分
159
发表于 2021-2-23 08:42:21 | 显示全部楼层
eric2013 发表于 2021-2-23 08:04
放在ITCM里面是最快的。

ITCM太小了,放在AXI SRAM和FLASH速度哪个更快点
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106882
QQ
 楼主| 发表于 2021-2-23 09:01:21 | 显示全部楼层
shibinjie 发表于 2021-2-23 08:42
ITCM太小了,放在AXI SRAM和FLASH速度哪个更快点

放在AXI SRAM综合性能好一些,这个0延迟运行是64位带宽,240MHz,而Flash是64bit 70MHz(提升到480M,要加延迟)。

但开了ICache后,一般的程序看不出差别。



回复

使用道具 举报

22

主题

93

回帖

159

积分

初级会员

积分
159
发表于 2021-2-23 12:39:29 | 显示全部楼层
eric2013 发表于 2021-2-23 09:01
放在AXI SRAM综合性能好一些,这个0延迟运行是64位带宽,240MHz,而Flash是64bit 70MHz(提升到480M,要 ...

回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-9 05:03 , Processed in 0.480104 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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