我正在写一个键盘的驱动程序,驱动的具体要求是这样的:
键盘采用扫描的方式,没有按键中断,要求能够在这个驱动不影响其他外接键盘的使用;要求键盘按键发送的数据和标准键盘的一样;
在写驱动的过程中碰到几个问题不知道该怎么解决,请大家指点一二:
1.我按照bsp里的例子(devi-sample)做了一个使用时钟中断的驱动,可是在/dev下没看到它注册的设备,不知道怎么验证驱动是否正确(是否在工作?是否发送的数据正确?是否能够和已经运行的devi-hirun不冲突?);
2.1的方法没法验证,我又自己写了个驱动,简单的等用户读取按键信息时返回一个keyboard_packet结构的数据,在key_scan里填充扫描码,对F1这样的键我填入{ESC O} P这样的字节是否正确,其他几个参数该怎么填才对?
结构如下:
struct keyboard_data{
unsigned long modifiers;
unsigned long flags;
unsigned long key_cap;
unsigned long key_sym;
unsigned long key_scan;
};
struct kbd_packet{
struct timespec time;
struct keyboard_data data;
};