GPIO 錯誤碼

常見 GPIO 錯誤碼

EAGAIN (即 EWOULDBLOCK)

裝置以非阻塞模式開啟,但由於沒有可用資料,無法執行讀取操作。

EBADF

檔案描述符無效。

EBUSY

ioctl 無法處理,因為裝置正忙。通常在 ioctl 嘗試執行需要已分配資源的操作時返回。在未首先執行其他操作來解決問題之前,不應重試 ioctl。

EFAULT

從/向用戶空間複製資料時發生故障,可能是由無效指標引用引起的。

EINVAL

一個或多個 ioctl 引數無效或超出允許範圍。這是一個廣泛使用的錯誤碼。

ENODEV

裝置未找到或已被移除。

ENOMEM

沒有足夠的記憶體來處理所需的操作。

EPERM

許可權被拒絕。通常在嘗試執行與當前線路配置不相容的操作時返回。

EIO

I/O 錯誤。通常在與硬體裝置通訊出現問題或請求硬體不支援的功能時返回。這可能表明硬體損壞或不穩定。這是一種“出了問題,我放棄了!”型別的錯誤。

ENXIO

通常在請求需要中斷支援的功能但線路不支援中斷時返回。

注意

  1. 此列表並非詳盡無遺;ioctl 可能會返回其他錯誤碼。由於錯誤可能產生副作用,例如驅動程式重置,因此應用程式應在遇到意外錯誤時中止,或者假定裝置處於不良狀態。

  2. 請求特定的錯誤碼在各個請求說明中列出。