开发者网络

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 108|回复: 1

嵌入式软件开发中有关 Cache 的那些事

[复制链接]

1

主题

3

帖子

3

积分

新手上路

Rank: 1

积分
3
发表于 2023-1-8 12:08:43 | 显示全部楼层 |阅读模式
在嵌入式软件开发中,有时候会要求把某一块内存设置为不可缓存 (non-cacheable) 状态,这是为什么呢? 今天的这篇文章带大家简单了解一下嵌入式软件开发中有关 Cache 的知识。
当 CPU 和某一个其它模块 (比如 DMA) 都可以对某一块内存进行操作时 (比如 DMA 的 Descriptor, 其本质就是一块可以被 CPU 和 DMA 操作的内存),就需要把这块内存设置为不可缓存 (non-cacheable) 状态。
这是因为只有 CPU 会使用 Cache, 而其它模块是不会使用 Cache 的。为了确保其它模块从这块内存中读取的信息,确实是 CPU 刚刚写入的信息,就需要让 CPU 不使用缓存,保证它确实即时地把信息写入内存。
除了让 CPU 不使用缓存之外,还有一种替代的办法,就是在每次 CPU 写入内存的时候使用 writeback 操作,这样也可以确保每次 CPU 都可以即时把信息写入内存。
回复

使用道具 举报

0

主题

3

帖子

6

积分

新手上路

Rank: 1

积分
6
发表于 前天 09:45 | 显示全部楼层
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|开发者网络

GMT+8, 2025-4-6 14:12 , Processed in 0.245391 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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