打印
[STM32F7]

存放变量

[复制链接]
723|17
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zhuhuis|  楼主 | 2019-6-30 10:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
STM32F7里面,例如F722里面的256K RAM当中,有64K是用作DTCM。

貌似参考手册里面描述,DTCM是从地址0x20000000往后64K,而SRAM1是从地址0x20010000往后176K。

请问一下,DTCM这一片地址空间,我可以用来存放全局变量吗?

使用特权

评论回复
沙发
chenho| | 2019-6-30 11:00 | 只看该作者
DTCM的地址范围是0X2000 0000开始的128KB,可以用来做普通SRAM使用,支持所有AHB主总线访问,而ITCM则是映射在0X0000 0000的16KB空间,仅供CPU访问,一般不用来做通用SRAM使用。 实际上,512KB SRAM也没有包含这16KB SRAM。

使用特权

评论回复
板凳
zchong| | 2019-6-30 11:02 | 只看该作者
可以

使用特权

评论回复
地板
gongche| | 2019-6-30 11:03 | 只看该作者
不行的,而且一般你的变量是不会大到RAM放不下吧。

使用特权

评论回复
5
llljh| | 2019-6-30 11:05 | 只看该作者
可以。而且访问速度更快。

使用特权

评论回复
6
wenfen| | 2019-6-30 11:09 | 只看该作者
要注意是不是有DMA限制。

使用特权

评论回复
7
zhuhuis|  楼主 | 2019-6-30 11:13 | 只看该作者
RAM占用接近256K或者接近512K,那是完全有可能的。

使用特权

评论回复
8
zhuhuis|  楼主 | 2019-7-6 16:18 | 只看该作者
否则ST也不需要退出一款512K RAM的芯片了吧。

使用特权

评论回复
9
zhuhuis|  楼主 | 2019-7-6 16:21 | 只看该作者
那请问一下,CPU内核的缓冲机制,不会在预读Cache的时候将这DTCM里面的内容覆盖掉吗?

使用特权

评论回复
10
huwr| | 2019-7-6 16:24 | 只看该作者
不会。

使用特权

评论回复
11
zhuhuis|  楼主 | 2019-7-6 16:26 | 只看该作者
好的,谢谢!那如果我使用的变量已经占用了这个DTCM得地址区间,那DTCM用于缓冲其他区域的变量时,DTCM的性能会不会受影响呢?

使用特权

评论回复
12
happy_10| | 2019-7-6 16:29 | 只看该作者
DTCM不会“用于缓冲其他区域的变量”。

使用特权

评论回复
13
bqyj| | 2019-7-6 16:32 | 只看该作者

不了解这个。

使用特权

评论回复
14
zhuhuis|  楼主 | 2019-7-6 16:45 | 只看该作者
你意思是只有通过代码将变量放到这个特定的地址里面时,才能起到这个高速存储的作用吗?

使用特权

评论回复
15
tian111| | 2019-7-6 16:47 | 只看该作者
他就是RAM。和一般的RAM用法基本相同。

使用特权

评论回复
16
zhuhuis|  楼主 | 2019-7-6 16:50 | 只看该作者
是不是可以这样理解,那就是一片普通的RAM,只是这一片地址区域可以被CPU直接访问。

使用特权

评论回复
17
huanghuac| | 2019-7-6 16:53 | 只看该作者
一般对运算速度有要求的变量,可以将地址指定到这片区域来,对吧?

使用特权

评论回复
18
zhuhuis|  楼主 | 2019-7-6 16:57 | 只看该作者

结贴了,多谢大家讨论这么多哈,呵呵

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

728

主题

8464

帖子

6

粉丝