当前位置: 技术问答>linux和unix
linux新手请教静态加载gpio驱动的问题
来源: 互联网 发布时间:2016-05-11
本文导语: 如题。我想实现这样的功能:当gpio3输入高电平时,产生中断,使得gpio4对应的led亮(这一点只要把gpio4设置为输出状态并且将其置1就可实现)。现在的问题是,不管我给gpio3提供什么样的输入信号,高电平,低电平,...
如题。我想实现这样的功能:当gpio3输入高电平时,产生中断,使得gpio4对应的led亮(这一点只要把gpio4设置为输出状态并且将其置1就可实现)。现在的问题是,不管我给gpio3提供什么样的输入信号,高电平,低电平,都让gpio4对应的led亮了,而且一直保持亮的状态,不再灭了。我第一次写驱动,写的很简单,健壮性不好。高手帮忙看看,如解决了还可送分!
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include "../../arch/mips/spi/sp16.h"
#define DEVICE_NAME "gpio"
//#define GPIO_MAJOR 250
static int GPIO_MAJOR=0;
extern int spi_external_irqs[SPI_NR_EXT_IRQS] __initdata __weak;
MODULE_AUTHOR("xl");
MODULE_LICENSE("Dual BSD/GPL");
static irqreturn_t gpio_interrupt(int irq, void *dummy, struct pt_regs *fp)
{
//if(demo_inc
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include "../../arch/mips/spi/sp16.h"
#define DEVICE_NAME "gpio"
//#define GPIO_MAJOR 250
static int GPIO_MAJOR=0;
extern int spi_external_irqs[SPI_NR_EXT_IRQS] __initdata __weak;
MODULE_AUTHOR("xl");
MODULE_LICENSE("Dual BSD/GPL");
static irqreturn_t gpio_interrupt(int irq, void *dummy, struct pt_regs *fp)
{
//if(demo_inc