我正在为嵌入式linux机器编写设备驱动程序,我有下一个问题:是否可以通过设备驱动程序在内核空间中分配缓冲区,而不是mmap()应用程序,因此,不会有任何缓存从驱动程序和程序读取/写入缓冲区时,即程序将立即看到驱动程序写入该缓冲区的内容,反之亦然。
据我所知 - 打开带有O_DIRECT标志的设备文件并非用于mmap(它用于read()和write()系统调用),我在一个电子邮件发送者中注意到标记MAP_UNCAHED可能很有用 - 但它不是为我的拱门定义。
我需要用于性能目的的非缓存缓冲区 - 来自硬件的数据被放置到缓冲区,然后程序使用它一次 - 缓冲区中的旧数据将不会被使用,因此,缓存在那里没用。