關於keypad LED的帖子

2021-09-30 03:32:31 字數 1629 閱讀 6801

這是別人的乙個例子,我在我的板子上試過是可以用的,其實只是用它的乙個簡單驅動的架構而已

c/c++ code#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define lednkey_major    251

#define keypad_name    "x-hyper250 keypad"

#define keypad_version  "version 0.1"

#define ext_key_cs  ext_port2

#define ext_led_cs  ext_port3

#define led_show    10

void led_off_on()

ext_led_cs = 0xff;

}int lednkey_open(struct inode *inode, struct file *filp)

int lednkey_release(struct inode *inode, struct file *filp)

ssize_t lednkey_read(struct file *filp, char *putbuf, size_t length, loff_t *f_pos)

copy_to_user( putbuf, &bottontmp, length);

return length;

}ssize_t lednkey_write(struct file *filp, const char *getbuf, size_t length, loff_t *f_pos)

int lednkey_ioctl(struct inode *inode, struct file *filp, unsigned int cmd,unsigned long arg)

}return 0;

}struct file_operations lednkey_fops = ;

static int __init xhyper250_keypad_init(void)

static void __exit xhyper250_keypad_exit(void)

module_init(xhyper250_keypad_init);

module_exit(xhyper250_keypad_exit);

將該驅動編譯到核心中 [*] 時自動呼叫 xhyper250_keypad_init 函式註冊裝置,或者 insmod ***.o 時呼叫

在應用層面呼叫 open("/dev/***", ***) 是自動呼叫註冊的 lednkey_fops 指向的 open 函式,也就是 lednkey_open 函式了

一般驅動編寫習慣:

***_init 註冊裝置,申請記憶體(如果需要)、dma(如果需要),做必要的初始化工作

***_open 函式一般開啟中斷以及註冊中斷函式

***_release 函式被應用層面的 close(xx) 呼叫

***_ioctl 函式是改變裝置設定呼叫的函式(應用層面 ioctl 呼叫)

無聊的帖子

1.人只能被自己安慰,別人說什麼也是無用功,只有自己覺得是正確的,才是正確的 2.趨利避害的能力比其他動物更弱,雖然人有說話和感情這種高階感官,但是貌似卻比其他動物更遲鈍 3.真心傷心的時候大概會想躲起來吧 4.無論男女都是視覺動物 5.時常覺得自己活著是件痛苦的事情,無欲無求,最想做的事情就是找個...

來自EYGLE的帖子。

這幾天沒怎麼上網,於是偶爾接到一些朋友的求助 問及一些技術問題,不過這都是小事情,這幾天關注的是這樣幾件事。1.安徽阜陽的兒童感染腸道病毒ev71事件 昨天周筠老師發簡訊告訴我要警惕小兒腸道疾病 可能沒有baby的朋友不太會關注這類新聞 今天看報紙才知道這一事件。轉引一點新華網的官方報道 4月27日...

乙個關於clear 吸收快取區的帖子引發的思考

cin.ignore a,b 表示 一直從cin中讀取,一直讀取到a個資料或者遇到字元b的時候結束。c cin.clear 到底是什麼意思呢 int i for i 0 i temp if cin 擴充套件資料 c 中的cin函式語法 c 中的cin函式和c語言的scanf函式同理,均為從鍵盤中接收...