关于内存可缓存性的疑问 - TMS320C6748 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 3473|回复: 1
打印 上一主题 下一主题

[已解决] 关于内存可缓存性的疑问

[复制链接]

5

主题

8

帖子

135

积分

注册会员

Rank: 2

积分
135
跳转到指定楼层
楼主
发表于 2018-8-22 16:01:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在贵司提供的“缓存”视频教程及例程中,提到了有关配置内存可缓存性的问题,在StarterWare中其对应函数为“CacheEnableMAR(unsigned int baseAddr, unsigned int byteSize)”,但是没有对其进行展开说明。我对该操作的理解有些疑问。我对它的理解是这样的:
内存可缓存性实际上是在内存DDR2中划定一块区域(其起始位置为baseAddr、区域长度为byteSize),只有存储在该区域的变量才能被缓存控制器读取并存储到缓存(L1、L2)中;而在该区域以外的变量则不会被缓存控制器访问并读取,不会出现在L1、L2中,而是仅存在于DDR2里。
因此,在不考虑其他主外设对DDR2中数据造成修改的情况下,或者使用CacheInv排除了某些在DDR2中会被其他主外设修改的变量带来的缓存一致性问题的情况下,可将DDR2的全部空间都配置为可缓存(baseAddr为0xC0000000,byteSize为0x08000000),就像视频和例程代码中演示的那样。但是如果有更高级的要求和操作,也可以自行定义可以被缓存的DDR2空间范围。

请问我的理解正确吗?如果不正确(或不完全正确),那配置内存可缓存性的目的及其作用原理是怎样的?

谢谢!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

12

主题

169

帖子

731

积分

QQ游客

积分
731
沙发
发表于 2018-8-23 18:08:36 | 只看该作者
您好,在我们的视频教程中,有相关说明,是需要参考数据手册,灰色的是固定值,不能修改成缓存,而白色的,才是可以配置成缓存的
而且,也是需要,对照内存映射表,判断RAM或者DDR,对应的地址,请您参考。






本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|手机版|小黑屋|嵌入式开发者社区 ( 粤ICP备15055271号

GMT+8, 2024-4-20 18:21 , Processed in 0.039860 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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