我的方案如下:
我试图将结构声明如下,但没有invalidate / flush 缓存,读/写不起作用。
typedef volatile struct { u32前面; u32后方; u32 n_msg; u32偏移; } queue_ctl_t;
请有人告诉我访问此共享内存区域的正确方法。我只是想知道一些网络驱动程序(对于PCIE总线上的网卡)如何能够在不执行无效/刷新缓存的情况下一致地访问数据。 任何建议都表示赞赏,非常感谢!
答案 0 :(得分:1)
您应该使用ioremap_nocache()
映射相关内存区域,并使用ioread*()
和iowrite*()
函数读取/写入它们。