2017-10-06 48 views
1

所有, 在我的代碼我想在ARM V8進入WFI。我正在Linux上運行應用程序。我打電話給wfi()並等待中斷。有沒有辦法檢查處理器內核是否真的進入了WFI模式?驗證ARM WFI

問候, 拉維

+0

讓我得到這個直。你想從在Linux下運行的用戶模式進程執行WFI指令嗎?我只需要問,「爲什麼?」你期望發生什麼? –

+0

把打印語句後,或與計數器循環,等... –

回答

0

如果你運行的特權代碼 - 內核空間代碼 - 你很可能與之前單一的彙編指令和wfi指令後觸發一個GPIO(最好用FGPIO)。

如果你沒有運行在內核空間,你想使用UIO做同樣的事情,但它會是一個相當麻煩。

+0

我試圖讓僅內核空間的信息。想獲得系統級別的信息,瞭解核心喚醒的頻率以及哪些中斷導致的。 – Ravikumar

+0

那麼,在睡眠之前先設置一個GPIO,然後在喚醒時將其設置爲高電平。使用示波器上的觸發器查看睡眠/喚醒時間。注意你的帶寬。 或者,如果你不能做到這一點,則:它進入睡眠狀態之前,捕捉RTC的值,然後當它醒來時,dump出來RTC的價值。我不知道這個設備,但是RTC通常會做毫秒,但是也許會有一秒鐘的時間和一個任意的秒計數器。 你必須檢查各個狀態標誌(有全球NVIC註冊了ARM),以檢查其中斷標記。如果這有幫助,我可以將其添加到答案中。 –