GPIO 错误代码

常用 GPIO 错误代码

EAGAIN (又名 EWOULDBLOCK)

设备以非阻塞模式打开,并且由于没有可用数据,无法执行读取操作。

EBADF

文件描述符无效。

EBUSY

由于设备繁忙,无法处理 ioctl。通常在 ioctl 尝试执行需要使用已分配资源的操作时返回。必须先执行其他操作来解决问题,才能重试 ioctl。

EFAULT

从/向用户空间复制数据时发生故障,可能是由于无效的指针引用引起的。

EINVAL

一个或多个 ioctl 参数无效或超出允许范围。这是一个广泛使用的错误代码。

ENODEV

未找到设备或设备已被移除。

ENOMEM

没有足够的内存来处理所需的操作。

EPERM

权限被拒绝。通常在尝试执行与当前线路配置不兼容的操作时返回。

EIO

I/O 错误。通常在与硬件设备通信或请求硬件不支持的功能时出现问题时返回。这可能表示硬件损坏或不稳定。这是一种“出了问题,我放弃!”类型的错误。

ENXIO

通常在请求需要中断支持的功能时返回,但该线路不支持中断。

注意

  1. 此列表并不详尽;ioctl 可能会返回其他错误代码。由于错误可能会产生诸如驱动程序重置之类的副作用,因此应用程序应在出现意外错误时中止,否则应假定设备处于不良状态。

  2. 特定于请求的错误代码列在各个请求描述中。