首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是否可以禁用特定地址范围上的缓存?

是否可以禁用特定地址范围上的缓存?
EN

Stack Overflow用户
提问于 2020-05-07 08:57:49
回答 1查看 350关注 0票数 0

xxxx-yyyy说,我配置了以太网模块,以便将接收到的数据存储在RAM中的特定地址范围内。启用缓存时,我无法接收数据,因为数据是从缓存中读取的,而不是实际的以太网缓冲区。通过禁用这里解释的缓存解决了这个问题,但是我想知道是否有一种方法只在这个特定的地址范围xxxx-yyyy中禁用缓存

目标处理器arm皮层r7

更新

我配置了MPU,包含缓冲区的区域的属性是:访问权限= FULL,Type=共享设备

mov r0, #10 mcr p15, 0, r0, c6, c2, 0 ldr r0, =(0xxxx) //REGION_BASE mcr p15, 0, r0, c6, c1, 0 // DRBAR mcr p15, 0, r0, c6, c1, 1 // IRBAR ldr r0, =(0x18 | 0x1) // REGION_SIZE mcr p15, 0, r0, c6, c1, 2 // DRSR mcr p15, 0, r0, c6, c1, 3 // IRSR ldr r0, =(0x1301) // Shareable Device mcr p15, 0, r0, c6, c1, 4 // DRACR mcr p15, 0, r0, c6, c1, 5 // IRACR

配置MPU之后,我启动缓存,如下所示:

MRC p15, 0, R1, c1, c0, 0 ; Read System Control Register configuration data ORR R1, R1, #0x1 <<12 ; instruction cache enable MCR p15, 0, r0, c7, c5, 0 ; Invalidate entire instruction cache MCR p15, 0, R1, c1, c0, 0 ; enabled instruction cache ISB

然后以太网数据就不再被接收了,我觉得在启用缓存后MPU配置被覆盖了。

EN

回答 1

Stack Overflow用户

发布于 2020-05-07 11:47:08

是的,有可能。

查看您的MPU用户指南,将区域设置为可访问的、不可访问的,再加上写回策略。

您还可以从缓存中使(丢弃)或清理(提交)区域失效,这可能比简单地变得不可持续更容易,也更有用。MPU只有16个左右可以指定的区域。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61653762

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档