通过mmap映射区域回写写入会返回错误的值

时间:2016-10-01 19:09:46

标签: linux caching arm mmap virtual-address-space

我正在使用定制FPGA设计的Zynq电路板,我有一些块存储器,我想从ARM上运行的软件读取/写入它们。我使用mmap将块内存的地址空间映射到/dev/mem的用户空间。我将一大块数据(少于一个内核页面)逐个写入mmap的ed区域。当我在写入后立即回读写入的地址时,我会找回正确的数据。但是当我在写完整个块后回读数据时,我得到的是重复最后16个写入的地址。我使用O_SYNC打开/dev/mem并使用MAP_SHARED作为mmap

这里出了什么问题?这是某种缓存问题吗?

0 个答案:

没有答案