基於mini6410的linux按鍵驅動例項分析

2021-06-19 02:34:15 字數 2438 閱讀 8161

1、 button.c源**

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define device_name     "my_buttons"

struct button_irq_desc ;

static struct button_irq_desc button_irqs = ,,,

,,,,

,};static volatile char key_values = ;

static declare_wait_queue_head(button_waitq); //定義並初始化等待佇列button_waitq

static volatile int ev_press = 0;

/*中斷處理程式*/

static irqreturn_t buttons_interrupt(int irq, void *dev_id) //void *dev_id = (void *)&button_irqs[i]申請中斷時傳進來的引數

disable_irq(button_irqs[i].irq);

free_irq(button_irqs[i].irq, (void *)&button_irqs[i]);

}return -ebusy;

}ev_press = 1;

return 0;

}static int s3c64xx_buttons_close(struct inode *inode, struct file *file)

free_irq(button_irqs[i].irq, (void *)&button_irqs[i]);

}return 0;

}static int s3c64xx_buttons_read(struct file *filp, char __user *buff, size_t count, loff_t *offp)

ev_press = 0;

err = copy_to_user((void *)buff, (const void *)(&key_values), min(sizeof(key_values), count));

return err ? -efault : min(sizeof(key_values), count);

}static unsigned int s3c64xx_buttons_poll( struct file *file, struct poll_table_struct *wait)

/*定義混雜裝置操作*/

static struct file_operations dev_fops = ;

/*定義混雜裝置*/

static struct miscdevice misc = ;

/*定義模組載入函式*/

static int __init dev_init(void)

/*定義模組解除安裝函式*/

static void __exit dev_exit(void)

module_init(dev_init);

module_exit(dev_exit);

module_license("gpl");

module_author("yinjiabin");

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

int main(void)

;buttons_fd = open("/dev/my_buttons", 0);

if(buttons_fd < 0)

printf("open /dev/my_buttons\n please puton one key\n");

for(;;)

for(i = 0, count_of_changed_key = 0; i < sizeof buttons / sizeof buttons[0]; i++)

}if(count_of_changed_key)

}close(buttons_fd);

return 0;

}

mini6410移植(arm linux)全攻略

一 mini6410移植全攻略 1 uboot移植之搭建開發環境 二 mini6410移植全攻略 2 uboot移植之搭建專案框架 三 mini6410移植全攻略 3 uboot移植之支援nand flansh啟動 上 四 mini6410移植全攻略 4 uboot移植之支援nand flansh啟...

mini6410安卓按鍵驅動修改

2012年5月18日 星期五 今天demo盒子回來了,由於機構的原因,所以調節了一下按鍵的作用,現將除錯檔案說明如下 友善的按鍵驅動為menu中 device input keyborads gpio buttons 驅動程式為 drivers input keyboard gpio keys.c ...

mini6410 實現 看門狗移植

寫在移植前的 在mini6410中看門狗驅動檔案為linux2.6.38 drivers watchdog s3c2410 wdt.c 在mini6410中linux系統預設看門狗是不開機啟動,但是我們可以向 dev watchdog寫入資料來啟動或關閉看門狗。如 echo 0 dev watchd...