Linux掉電保護方案設計

2022-09-12 04:12:11 字數 2561 閱讀 4322

2. 軟體增強

裝置異常掉電,通常是嵌入式裝置不得不面對的難題。如果處理不當,異常掉電會造成檔案系統損壞、資料丟失,嚴重者還會造成外部器件的損壞。

乙個完備的掉電保護方案,從原理上講,可以從以下幾個方面進行加強:

硬體掉電保護電路主要提供了以下功能:

1、提供了24v掉電檢測和5v掉電檢測功能。sign_5728這個管腳正常為高電平,在電壓降低到一定程度後會變成低電平,產生乙個中斷給cpu;

2、提供了延時下電功能。電路中加入了幾個大容量電容,在外部電源掉電以後,電容可以支援一段時間(幾秒鐘)核心電路的供電;

針對硬體提供的寶貴的掉電通知和延時掉電機制,軟體需要緊密配合:

1、軟體在接收到掉電中斷以後,在轉為電容供電的幾秒鐘時間裡,需要做完系統的保護動作:檔案系統同步、系統powerdown或者reboot。

kernel\arch\arm\boot\dts\am57xx-evm-common.dtsi:

&dra7_pmx_core ;
/ ;

};

建立對應的platform driver:

static int powerdown_protect_remove(struct platform_device *pdev)

static const struct of_device_id powerdown_protect_match = ,

{}};

static struct platform_driver powerdown_protect_driver = ,

};

在驅動的初始化函式中,初始化掉電檢測的gpio,以及註冊中斷服務:

static int powerdown_protect_probe(struct platform_device *pdev)

else

ret = gpio_request(gpio_id, "powerdown_detect");

if (ret)

ret = gpio_direction_input(gpio_id);

if (ret)

ret = gpio_set_debounce(gpio_id, debounce_time);

if (ret)

setup_timer(&powerdown_timer, powerdown_timer_func, 0);

init_work(&powerdown_work, powerdown_work_func);

irq_num = gpio_to_irq(gpio_id);

if (irq_num < 0)

ret = request_irq(irq_num, powerdown_detect_irq, irqflags, irqdesc, pdev);

if (ret)

return 0;

fail:

gpio_free(gpio_id);

return ret;

}

在中斷服務中同步檔案系統,以及發起reboot操作:

static void powerdown_exec(void)

為了縮小檔案系統可能造成的破壞,可以把檔案系統分割槽,把系統分割槽設定為唯讀:

root@am335x-evm:~# mount

rootfs on / type rootfs (rw)

/dev/root on / type yaffs2 (ro,relatime)

/dev/mtdblock8 on /home/root type yaffs2 (rw,sync,relatime)

root@am335x-evm:~#

還可以在開機啟動的時候,增加乙個環節:如果檢測到有異常關機的情況,執行fsck檔案系統修復程式來修復檔案系統中可能存在的錯誤。

root@am57xx-evm:~# mount -o remount,ro /

[ 91.164253] ext4-fs (mmcblk0p2): re-mounted. opts: (null)

root@am57xx-evm:~#

root@am57xx-evm:~# fsck /

fsck from util-linux 2.27.1

e2fsck 1.43-wip (18-may-2015)

fsck.ext2: no such file or directory while trying to open /dev/root

possibly non-existent device?

root@am57xx-evm:~#

降低執行時功耗,可以減少系統耗電,可以延長電容的供電時間。

降低功耗的具體措施可以有:

涉及到的模組比較多也比較複雜需要小心處理;

技術方案設計

概要設計文件 技術方案 1.由原始需求逐步拆分,深入 後期迭代增加 2.資料流圖,整體流程 每一條資料流鏈路,便於查問題節點 3.不僅給技術開發看,面向產品和測試,對測試的輸出和產品的輸出 4.寫出支撐功能點,前端對接的資料結構 流程 需求評審 設計方案評審 資料鏈路,需求拆分 技術方案評審 實現方...

監控系統Metis方案設計

監控系統metis方案設計 一 概述 對於乙個業務系統而言,不同的角色關注的點會有一定差異。領導或負責人系統獲取系統的sla,系統間的相互作用,展示資源消耗情況 運維人員需要獲取基礎設施和服務的實時狀態資訊,各種軟硬體錯誤,效能變化及效能瓶頸 開發人員需要知道系統主要效能瓶頸,經常出現的錯誤,便於著...

優美的配色方案設計

怎麼做好 設計配色 一直是個難題 雖然 上有各種各樣的色庫,但配色仍然至關重要,不得已的話可以親自動手,況且樂趣滿滿。這個沒有一套標準 所以看自己怎麼喜歡怎麼來 你可以使用 illustrator keynot 和你想到的其他用著順手的工具。vi設計包含的遠不止選擇顏色和字型,如果要給公司尋找一套配...