從Dying gasp功能看Linux的響應速度(zhuan)

轉自https://blog.csdn.net/qq_20405005/article/details/77967358函數

前一陣子在作dying gasp功能測試,過程當中剛好測試到了Linux的響應速度,特來分享一下。測試

這裏的dying gasp是用GPIO(input mode)實現的,在DC掉電的時候,此GPIO會當即被拉低, 而系統的3.3V電壓還能維持10ms左右時間,這樣在這個時間裏即可以作些通知功能告訴外面的設備。.net

GPIO信號偵測用interrupt方式實現,爲了量測方便,在 中斷服務程序(isr) 函數裏面,對一個LED (gpio output) 進行拉高,用示波器量測發現,GPIO 拉低/LED 拉高之間的間隔只有 10us,這個數據好像還不錯。這裏面要經歷:關中斷、保護CPU寄存器、進入中斷服務程序、執行LED操做。blog

通常對相似button功能的GPIO信號偵測,若是沒有特別時間要求,會在中斷服務程序裏面再調用一個schedule_work來實現,這須要任務切換的,通常一個任務切換都須要幾十個ms,因此在dying gasp的需求裏面是不能知足的。input

以後,我在中斷服務程序裏面,又加了一個發包功能,經過ethernet發出一個數據包,也能夠正常工做。io

相關文章
相關標籤/搜索