浅析linux下键盘设备工作和注册流程
懒得写了, 转几篇过来:
原帖地址:
http://blog.chinaunix.net/u1/38994/showart_1130025.html
浅析linux下键盘设备工作和注册流程
【浅析linux下鼠标驱动的实现】
input_init(
)
=
>
=
>
class_register(
&
input_class)
;
注册input类
input_proc_init(
)
;
创建proc下的目录和文件
register_chrdev(
INPUT_MAJOR,
"input"
,
&
input_fops)
;
注册驱动程序到cdev_map上,
以待驱动设备.
drivers\input\keyboard\pxa3xx_keypad.
c为我们的keyboard设备,
pxa3xx_keypad_probe=
>
request_irq(
IRQ_ENHROT,
&
enhanced_rotary_interrupt,
IRQF_DISABLED,
"Enhanced Rotary"
,
(
void
*
)
keypad)
;
注册快捷键中断
request_irq(
IRQ_KEYPAD,
pxa3xx_keypad_interrupt,
IRQF_DISABLED,
pdev-
>
name,
keypad)
;
注册中断
static
irqreturn_t pxa3xx_keypad_interrupt(
int
irq,
void
*
dev_id)
{
struct
pxa3xx_keypad *
keypad =
dev_id;
uint32_t
kpc =
keypad_readl(
KPC)
;
if
(
kpc &
KPC_MI)
pxa3xx_keypad_scan_matrix(
keypad)
;
if
(
kpc &
KPC_DI)
pxa3xx_keypad_scan_direct(
keypad)
;
return
IRQ_HANDLED;
}
在irq中如果读到了key,
那么会直接调用
input_report_key(
keypad-
>
input_dev,
lookup_matrix_keycode(
keypad,
row,
col)
,
new_state[
col]
&
(
1 <
<
row)
)
;
static
inline
unsigned
int
lookup_matrix_keycode(
struct
pxa3xx_keypad *
keypad,
int
row,
int
col)
{
return
keypad-
>
matrix_keycodes[
(
row <
<
3)
+
col]
;
}
input_report_key(
struct
相关文档:
1. HCI层协议概述:
HCI提供一套统一的方法来访问Bluetooth底层。如图所示:
从图上可以看出,Host Controller Interface(HCI) 就是用来沟通Host和Module。Host通常就是PC, Module则是以各种物理连接形式(USB,serial,pc-card等)连接到PC上的bluetooth Dongle。
在Host这一端:application,SDP,L2cap等协议 ......
1.点号进度显示code 1
#!/bin/sh
#输出"."进度条函数,兼容bsh、ksh、bash
#首先trap 1 2 3 15信号,重要
trap 'kill $BG_PID;echo;exit' 1 2 3 15
function dots
{
stty -echo >/dev/null 2>&1
  ......
一、安装服务器端
(1)、在有两个rmp文件的目录下运行如下命令:
[root@test1 local]# rpm -ivh MySQL-server-5.0.26-0.i386.rpm
显示如下信息:
warning: MySQL-server-5.0.26-0.i386.rpm: V3 DSA signature: NOKEY, key ID 5072e1f5
Preparing…… ##################################### ......
用vsFTPd来架设FTP服务器,vsFTPd服务器是目前最好的FTP服务器软件,优点是体积小,可定制强,效率高,高安全性。
1。查看是否安装了vsFTPd软件
[root@linuxsir001 root]# rpm -qa | grep vsftpd
如果没有任何显示,说明没有把vsFTPd安装上,如果出现的是下面的这样的提示,就证明已经安装上了。
[root@linuxsir001 ro ......
Linux中,cron被用来调度重复的任务,linux at命令被用来在指定时间内调度一次性的任务。
要使用linux at命令,你必须安装了at RPM软件包,并且 atd服务必须在运行。
可以使用一下命令启动atd服务:
[root@sso_4 sbin]# /sbin/service atd start
要判定该软件包是否被安装 ......