相关疑难解决方法(0)

如何在嵌入式Linux中检测GPIO线路上的中断?

pandaboard OMAP4中,GPIO_39每隔10ms产生一次中断.我在Linux驱动程序代码中为此注册了一个处理程序,但由于未检测到中断,因此未调用处理程序.

我确保在硬件级别(通过探测gpio引脚)确实正在生成中断.只是软件无法检测到它.

我在驱动程序代码中有以下内容.

#define GPIO_NO     39

  iowrite16(0x3, gpio_39_address + 2); /* Configured the pin 22 to be used as gpio. */

  ret = gpio_request(GPIO_NO, "Claiming GPIO");
  if(ret < 0)
  {
    printk(KERN_ALERT "%s: Claiming GPIO_%d failed\n", __func__, GPIO_NO);
    return -1;
  }
  else
  {
    printk(KERN_INFO "%s: Claiming GPIO_%d successful\n", __func__, GPIO_NO);
  }

  ret = gpio_direction_input(GPIO_NO);  
  if(ret < 0)
  {
    printk(KERN_INFO "%s: Setting GPIO direction to input failed\n", __func__);
    return -1;
  }
  else
  {
    printk(KERN_INFO "%s: Direction of …
Run Code Online (Sandbox Code Playgroud)

c linux interrupt gpio pandaboard

6
推荐指数
1
解决办法
1797
查看次数

标签 统计

c ×1

gpio ×1

interrupt ×1

linux ×1

pandaboard ×1