gpt4 book ai didi

embedded - 什么情况下/sys/kernel/debug/gpio会为空?

转载 作者:行者123 更新时间:2023-12-02 19:45:23 25 4
gpt4 key购买 nike

摘要

我的目标是控制 Intel 主板(带 C1037U 处理器的 NM70 芯片组)上 Peppermint 4 Linux(内核版本 3.8.0)中的 GPIO 引脚。

我正在调试使用 sysfs 接口(interface)时遇到的问题,并试图了解/sys/kernel/debug/gpio 为空的情况?

尝试导出引脚 0 至 255 时

echo XX >/sys/class/gpio/export

对于从 0 到 255 的 XX,我收到以下错误消息

echo:写入错误:没有这样的设备

什么情况下/sys/kernel/debug/gpio 会为空?

 背景

  • 主板:采用 NM70 芯片组的 Intel
  • 处理器:C1037U 处理器
  • 操作系统:Peppermint 4 Linux
  • 内核版本:3.8.0
  • GPIO 接口(interface):sysfs

我正在尝试使用 sysfs 接口(interface),该接口(interface)允许通过文件系统从用户空间访问 GPIO 引脚。

我已成功遵循 https://help.ubuntu.com/community/Kernel/Compile 的“替代构建方法:老式 Debian 方式”部分重新编译内核以便在用户空间中公开 GPIO 访问并打开 GPIO 的 Debug模式:

编译新内核后,我第一次在/sys/class/gpio 中看到 GPIO 文件夹。那么,理论上,应该是能够通过写入文件系统来打开/关闭 GPIO 端口的情况。此方法概述于 http://falsinsoft.blogspot.co.uk/2012/11/access-gpio-from-linux-user-space.html .

尝试导出引脚 0 至 255 时

echo XX >/sys/class/gpio/export

对于从 0 到 255 的 XX,我收到以下错误消息

echo:写入错误:没有这样的设备

当尝试导出 0 到 255 范围之外的引脚时

echo XX >/sys/class/gpio/export

我收到以下错误消息

echo:写入错误:参数无效

教程表明这可能是因为 GPIO 端口是为另一个程序保留的,如果是这样,调试文件 (/sys/kernel/debug/gpio) 将能够显示它们的保留位置。

但是,/sys/kernel/debug/gpio 是空的。

我可以在 BIOS 中查看和控制 GPIO 引脚(将引脚更改为输入或输出高/低)。

相关问题

writing to /sys/class/gpio/export failing

Enable pullup GPIO

最佳答案

如果没有注册GPIO设备

/sys/kernel/debug/gpio将为空(警告:当我说GPIO设备时,我并不是指该设备硬件,而是它的内核表示)。

因此,这些 GPIO 设备在运行时由内核注册并关联到特定的GPIO 设备驱动程序

反过来,GPIO 设备驱动程序被选择并与给定设备关联,因为它是声明与所述 GPIO 设备兼容的驱动程序。

例如,内核将匹配 PCI 供应商和产品 ID,并探测声称支持该 PCI 供应商/产品的 GPIO 驱动程序。当 GPIO 驱动程序被探测时,它通常会注册 GPIO 设备实例。

最后,注册的 GPIO 设备提供/sys/kernel/debug/gpio 中显示的 GPIO。

以上是Linux中所谓的“设备驱动程序模型”的一部分。虽然有点过时,但您可以阅读[1]。

现在,让我们看看您需要为 NM70 芯片组选择什么 GPIO 驱动程序。维基百科称该芯片组代号为“Panther Point-M”[2]。运气好的话,lpc_ich 驱动程序可以支持它。您必须使用 CONFIG_LPC_ICH=y 构建内核。

或者,如果您的 GPIO 由 PCI 设备提供,您可以使用 lspci 获取 ID,然后在内核源代码中 grep 查找这些 ID。

[1] http://www.oreilly.com/openbook/linuxdrive3/book/ch14.pdf

[2] https://en.wikipedia.org/wiki/List_of_Intel_chipsets

关于embedded - 什么情况下/sys/kernel/debug/gpio会为空?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24087761/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com