AM335x(TQ335x)学习笔记――GPIO按键(二)

2015-01-27 06:15:53 · 作者: · 浏览: 23
4b82 386d 5aa3 0002 0000 0000 0000 0000 0000160 4b82 386d 4bf3 0004 0001 0001 0000 0000 0000170 4b82 386d 4bf3 0004 0000 0000 0000 0000 通过hexdump工具看到的数字是16进制的。由于linux的input_event事件定义如下:

?

?

struct input_event {
    struct timeva l time;
    __u16 type;
    __u16 code;
    __s32 value;
};
结合之前设置的linux,code分析可知,hexdump打印的各列数据含义如下:

?

第一列:行号

第2~5列:输入事件时间戳,即结构体中的time。

第6列:输入事件类型,即结构体中的type。

第7列:按键的键值,即结构体中的code。

第8列:按键的状态,即结构体中的value,1表示按下,0表示松开。

细心的朋友会发现,按下并松开一个按键后能看到四行数据,这是由于每个input_event后会接一个linux同步事件,从上述log可以看到,同步事件的type,code,value都为0。

到这里,就完成了TQ335x的按键驱动移植。虽然过程很简单,但已经体会到了DTS的好处。对于一些通用的功能,可以不修改内核源码、不重新编译内核,仅修改dts配置就能实现所需的功能,如这里的gpio按键功能。dts方式启动内核有着巨大的优势,必须弄清DTS的编写规则,以后会记录DTS相关的笔记的。

?