gpt4 book ai didi

Linux:创建 mmap()able 虚拟文件(例如 SPI 内存)

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:00:24 28 4
gpt4 key购买 nike

我有一个可以访问外部 SPI 存储器的字符设备,我想 mmap() 外部存储器,这样我就可以从程序中访问它,就好像它是普通存储器一样。

如果我在 char 设备文件上使用通常的 mmap() 页面重映射实现,它只会让我看到一个设备内存区域,而不是它的虚拟 char 文件...

有什么技巧可以让我这样做吗?

TIA

最佳答案

如果字符设备驱动程序提供了一个mmap 实现,它就可以工作。可能有一个很好的理由:

内存访问指令在总线上创建内存事务。 SPI 内存无法以这种方式寻址(尽管 SPI Controller 可能使用内存映射 I/O,但这是针对其自己的寄存器级接口(interface),而不是内存内容)。我想,您可以构建一个带有内存总线接口(interface)的 SPI 内存 Controller ,但是您会失去 SPI 标准的设备独立性。

模拟内存区域是可能的(获取内存页面,将其标记为不可访问,并处理访问冲突(SIGBUS 和 SIGSEGV),但那会非常低效。有时你会发现虚拟机这样做,但性能很差。

关于Linux:创建 mmap()able 虚拟文件(例如 SPI 内存),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6628251/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com