2013-12-11 82 views
0

我有嵌入式數據記錄器,其中數據來自外部傳感器,臨時存儲在文件(tmpfs)中,並備份到閃存上的另一個文件中。我怎樣才能實現一個布朗輸出處理程序,通過它我可以保存數據丟失?在Linux中佈局實現?

+3

我不明白。你想避免突然斷電(硬件無需反應時間關閉)嗎?那麼當然你需要每次都寫一個永久存儲,並確保你清空所有的緩衝區。或者你想要別的東西嗎? – Alfe

+0

謝謝阿爾菲:) 永久存儲是基於閃存,所以每次寫入它是有問題的。有一個外部PMIC通過I2C與主SOC連接,當電源斷電時,電容器組在斷電前提供幾毫秒的時間,從而產生中斷。我想用這個中斷來將基於ram的文件中的數據備份到永久存儲器中。 – user3090306

+0

然後,也許你問超級用戶,而不是stackoverflow。這似乎更像是一個管理問題,而不是一個編程問題,因爲您主要想知道如何對您的硬件提供的電源丟失信號做出反應。 – Alfe

回答

1

系統中具有掉電處理程序只是有Linux內核設備驅動程序實現的問題。對於這樣的任務,最好的辦法是參考LDD這本書。

但是如果你問我,更重要的問題是它是否真的能幫你保存數據?因爲掉電就是這樣:一個棕色的:)我不敢打賭你會有足夠的時間來保存所有的數據(取決於數據大小,RAM /閃存R/W速度,內核的內部優先級處理,也許還有一些其他的時機,等等)。

通常,使用日誌文件系統可以解決此類問題,這可以防止系統發生數據損壞(但不能防止數據丟失)。有關此類系統的更多信息:Journaling File System