我是一名硬件设计师,努力为嵌入式系统提供安全关闭电源。我知道 Linux 通常会大量使用文件系统并在读取文件时更新元数据 - 即每次文件访问都会产生相应的写入。我相信有可能推迟这次写入。我想知道如果这是一个不确定的延迟会发生什么(即它永远不会发生)。一些背景:
出于操作原因,最好不要在系统关闭期间使用备用电池供电——这意味着我正在考虑 1 到 5 秒的断电保持。这似乎不足以让 O/S 从我们的 S/W 工程师的测试中关闭。到目前为止,我们都是 Linux 的“新手”,一直在使用传统的嵌入式 RTOS。
我们将从闪存驱动器启动并在机器的 RAM 中运行,因此如果我们的闪存写入为零,那么它通常不会因电源故障而损坏。
我们将系统 NV 数据存储在 FLASH 中,该闪存由一个小型微型控制器控制,保证在 10 毫秒内成功写入,所以这很好 - 但是我很难理解 Linux 必须写回它启动的驱动器的内容,如果有的话 - 和如果我们阻止它这样做会有什么后果?
不幸的是,我们目前正在使用 uSDHC 卡运行,所以我不能简单地在硬件中对其进行写保护来找出答案。