嵌入式设备:如何绕过文件系统缓存对闪存(emmc/movinand)进行原始读取和写入

嵌入式设备:如何绕过文件系统缓存对闪存(emmc/movinand)进行原始读取和写入

我有一个带有闪存的嵌入式设备,运行 Linux。我想对闪存部分进行原始读写,但我也想避免任何文件系统缓存。我怎样才能做到这一点?有什么指点吗?

答案1

如果闪存上有文件系统,并且您只想打开一个文件但绕过该文件的 IO 缓存,则使用 O_DIRECT 标志打开它。如果它上面没有文件系统,那么你直接打开块设备即可。

答案2

我认为您希望 O_DIRECT 标志打开()。请注意,它可能无法在闪存设备上的文件系统上按预期工作。另外,我假设您正在使用文件系统,而不是读取设备文件。

相关内容