buttons.c
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
static int major = 0;
static struct class *cls;
/* gpecon 0x56000040 */
/* gpfcon 0x56000050 */
/* gpgcon 0x56000060 */
static volatile unsigned long *gpecon;
static volatile unsigned long *gpedat;
static volatile unsigned long *gpfcon;
static volatile unsigned long *gpfdat;
static volatile unsigned long *gpgcon;
static volatile unsigned long *gpgdat;
static irqreturn_t buttons_irq(int irq, void *dev_id)/*中斷處理函式*/
int buttons_open(struct inode *inode, struct file *file)
ssize_t buttons_read(struct file *inode, char __user *buf, size_t size, loff_t *offset)
static const struct file_operations buttons_fops = ;
char *id = "k10";
int buttons_init(void)
void buttons_exit(void)
module_init(buttons_init);
module_exit(buttons_exit);
module_license("gpl");
makefile參考上個程式,測試程式不用寫了,註冊的中斷服務程式有顯示!主要把握框架,怎麼寫中斷。
字元裝置驅動之Buttons 迴圈緩衝佇列
buttons.c include include include include include include include include include include include include include include static int major 0 static st...
Linux裝置驅動之《字元裝置驅動》
linux裝置中最大的特點就是裝置操作猶如檔案操作一般,在應用層看來,硬體裝置只是乙個裝置檔案。應用程式可以像操作檔案一樣對硬體裝置進行操作,如open close read write 等。下面是乙個字元裝置驅動程式的簡單實現test.c 模組分析 1.初始化裝置驅動的結構體 struct fil...
Linux裝置驅動之字元裝置驅動
一 linux裝置的分類 linux系統將裝置分成三種基本型別,每個模組通常實現為其中某一類 字元模組 塊模組或網路模組。這三種型別有 字元裝置 字元裝置是個能夠像位元組流 類似檔案 一樣被訪問的裝置,由字元裝置驅動程式來實現這種特性。字元裝置可以通過檔案系統節點來訪問,比如 dev tty1等。這...