我可以使用 memcpy 连续访问缓存而不是为每个和 linux 内核__raw_writel缓存内存吗?



我有 100 字节的连续缓存来备份嵌入式设备热重启期间的一些数据。

对 100 个中的每 4 个使用 __raw_writel 将是半屏代码。我可以使用memcpy吗?

怎么会是半屏代码?你必须有一个非常小的屏幕。如果内存区域是连续的,则可以只使用循环。

u32 *to_write = ...;
volatile u32 __iomem *cache = ...;
for (int i = 0; i < 25; ++i) {
    __raw_writel(to_write[i], cache + i);
}
memcpy

是否适用于您的缓存取决于该架构的架构和 memcpy 的实现。

最新更新