日期:2014-05-16  浏览次数:20603 次

s3c6410中断驱动的问题
最近要在6410的开发板上编写一个中断驱动,在网上搜到了一篇文章,它里面有个中断结构,为:

  struct button_irq_desc{  
  int irq;  
  int number;  
  char *name;  
  };  
其中irq表示中断号,name表示中断名,那么请问number表示什么啊?

文章地址为:http://blog.csdn.net/wenhui_/article/details/6843512

------解决方案--------------------
因为程序中已经定义了结构体:
static struct button_irq_desc button_irqs[] = {
{IRQ_EINT(0), 0, "KEY0"},
{IRQ_EINT(1), 1, "KEY1"},
{IRQ_EINT(2), 2, "KEY2"},
{IRQ_EINT(3), 3, "KEY3"},
{IRQ_EINT(4), 4, "KEY4"},
{IRQ_EINT(5), 5, "KEY5"},
{IRQ_EINT(19), 6, "KEY6"},
{IRQ_EINT(20), 7, "KEY7"},
 };
从中明确看见,一共使用了8个外部中断,8个按键key0~key7,
所以int nuber=0~7必定是按键号。
 56 tmp = readl(S3C64XX_GPNDAT); //
 57 down = !(tmp & (1<<number));
程序说明,按键接在 GPN口上,当有按键后,再判断一下按键当前的状态--抬起还是按下。