OpenEdv-开源电子网

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

求助原子哥关于F7的ITCM与DTCM

[复制链接]

27

主题

711

帖子

0

精华

版主

Rank: 7Rank: 7Rank: 7

积分
12459
金钱
12459
注册时间
2015-11-5
在线时间
2139 小时
发表于 2016-10-5 16:39:58 | 显示全部楼层 |阅读模式
10金钱
本帖最后由 FreeRTOS 于 2016-10-5 16:39 编辑

小灯向各位大佬求助! @正点原子 @zuozhongkai @八度空间
近段时间对F7的ITCM与DTCM有很多困惑,还请各位大佬耐心看下小灯的疑问

看了下原子哥的工程配置:
3.PNG
工程默认只使用以0x20020000开始的384kB SRAM,而IRAM2的128kB RAM空间并没有使用
虽说STM32F767的SRAM有512kB,但是包含了128kB的DTCM,那么问题就出在这里了。。。

ST官方资料对内嵌SRAM的说明好像也只在参考手册上有那么一点介绍:
4.png
按照个人的理解,ST把SRAM区域分成了好几个:
DTCM : 0x20000000~0x20020000
SRAM1: 0x20020000~0x2007C000
SRAM2: 0x2007C000~0x20080000
按照图中的标识,DTCM好像是可以被AHB总线矩阵访问,但下面找到的资料又说好像是专用的
1.PNG
2.PNG

百度关于DTCM和ITCM的资料不多,这是找到的一份比较好的介绍资料:
http://www.eeworld.com.cn/mcu/article_2016090229000.html

按照资料的说法,这两部分RAM都与我们平时用的SRAM大不相同,好像都是硬件专用的,并且原子的工程好像也没有用到
那么问题来了,DTCM与ITCM到底能不能当做普通的SRAM来使用?

最佳答案

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

DTCM的地址范围是0X2000 0000开始的128KB,可以用来做普通SRAM使用,支持所有AHB主总线访问,而ITCM则是映射在0X0000 0000的16KB空间,仅供CPU访问,一般不用来做通用SRAM使用。 实际上,512KB SRAM也没有包含这16KB SRAM。
拿来长岛冰茶换我半晚安睡
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165508
金钱
165508
注册时间
2010-12-1
在线时间
2115 小时
发表于 2016-10-5 16:39:59 | 显示全部楼层
DTCM的地址范围是0X2000 0000开始的128KB,可以用来做普通SRAM使用,支持所有AHB主总线访问,而ITCM则是映射在0X0000 0000的16KB空间,仅供CPU访问,一般不用来做通用SRAM使用。 实际上,512KB SRAM也没有包含这16KB SRAM。
回复

使用道具 举报

27

主题

711

帖子

0

精华

版主

Rank: 7Rank: 7Rank: 7

积分
12459
金钱
12459
注册时间
2015-11-5
在线时间
2139 小时
 楼主| 发表于 2016-10-6 14:16:01 | 显示全部楼层
不要沉啊,原子哥求救!!! @正点原子
拿来长岛冰茶换我半晚安睡
回复

使用道具 举报

4

主题

24

帖子

0

精华

高级会员

Rank: 4

积分
519
金钱
519
注册时间
2013-11-14
在线时间
49 小时
发表于 2018-7-14 22:56:50 | 显示全部楼层
本帖最后由 373339205 于 2018-7-14 23:25 编辑

看了比较多的资料,DTCM这部分可以被DMA访问通过AHBS来访问,也可以被CPU访问,但是不能被外设所访问,所以这部分可以用来给自己用,只要不要给外设用就行。但是ITCM不能被访问,你不能改写,但是你可以把关键部分的代码放到这里,CPU需要的时候自己会访问,这样子会快一点。而且TCM这部分的数据是不能被CATCH的。从st自己给出的结果来看,放到ITCM运行效率比FLASH打开catch的要高一点点,数据放DTCM里和catch执行的结果也差不多。 微信截图_20180714231948.png 微信截图_20180714232415.png
回复

使用道具 举报

27

主题

711

帖子

0

精华

版主

Rank: 7Rank: 7Rank: 7

积分
12459
金钱
12459
注册时间
2015-11-5
在线时间
2139 小时
 楼主| 发表于 2018-7-15 17:57:40 | 显示全部楼层
373339205 发表于 2018-7-14 22:56
看了比较多的资料,DTCM这部分可以被DMA访问通过AHBS来访问,也可以被CPU访问,但是不能被外设所访问,所以 ...

虽然没有完全看懂,不过还是觉得你讲解得比较深入,赞一个!
拿来长岛冰茶换我半晚安睡
回复

使用道具 举报

1

主题

6

帖子

0

精华

新手入门

积分
17
金钱
17
注册时间
2019-6-5
在线时间
3 小时
发表于 2019-8-30 11:46:31 | 显示全部楼层
FreeRTOS 发表于 2018-7-15 17:57
虽然没有完全看懂,不过还是觉得你讲解得比较深入,赞一个!

如果DTCM区域不能被外设访问,那这个区域就几乎不能用于DMA了!除非你用M2M,这种情况极少!!!用DMA的地方都涉及到外设!!!
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-16 13:54

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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