armv8平台下sleep函式的實現

2021-09-02 07:16:47 字數 442 閱讀 6215

sleep函式是比較常用的api,那麼在arm平台下它是怎麼實現的呢?

要實現sleep函式必須要有三個方面的支援,中斷系統,timer和wfi指令。這是無需多言的,sleep需要有時間引數,能夠準確定位時間的就只有timer了,要讓timer工作中斷又是必不可少的。那麼wfi是什麼呢?其實wfi是arm的一條指令,全稱是wait for interrupt。這個指令的作用是一旦執行就進入睡眠低功耗模式,等待中斷的到來,一旦中斷到來就會,在處理完中斷後就會從中斷中醒來。

那麼sleep函式的邏輯就很明顯了。

1, 傳入時長引數

2 將時長引數加上現在的時刻得到醒來的時刻

3 判斷現在是否到達醒來的時間點,如果到達就退出

4 將時間點轉換為tick,並將此值設定比較定時暫存器

5 開啟中斷

6 進入wfi

7 中斷到來並處理完畢後轉入3

ARM V8框架結構下的開發平台

juno arm開發平台 adp 是一款 armv8 a 軟體開發平台,它包括 juno versatile express 開發板和乙個從 linaro 獲得的 armv8 a 參考軟體埠,juno 軟硬體平台提供給開發者和廠商一樣的資源 cortex a57 和 a53 多核 armv8 big...

armV8 下除錯232 485小結,

通過文件,因為我單獨安裝過dxx的驅動,不確定是kernal整合 還是我之前安裝的可行,上述步驟可以不用一步步做,我直接 1,dmesg grep ftdi 發現,最後那句,ttyusb0 已經attached,故 沒有按照上面編寫那個檔案 99 usbftdi.rules 而我後面 發現只有sud...

安裝nagios(centos5 5平台下)

1.先用下列命令安裝下列軟體包 建立賬戶資訊 a 建立乙個新的 nagios 使用者帳戶,並給它設定密碼 usr sbin useradd m nagios passwd nagios b 建立允許通過 web 介面提交乙個新的 nagcmd 外部命令組。同時新增 nagios 使用者和apache...