键盘驱动的思路梳理

本文档详细梳理了友善之臂mini2440和安凯8801平台的键盘驱动实现,包括驱动入口定义、接口函数、键盘布局及矩阵键盘驱动的启用方法。通过对现有代码的分析,为矩阵键盘驱动的移植提供了清晰的思路。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

友善之臂mini2440:

1、

mini2440/Src/Drivers/Keybd/Pddlist下的pddlist.cpp定义了指向的键盘驱动入口:

        PFN_KEYBD_PDD_ENTRY g_rgpfnPddEntries[] = {
        PS2_NOP_Entry,
        Matrix_Entry,
        NULL
        };

2、

mini2440/Src/Drivers/Keybd/Kbdcommon下kbd.cpp实现了上述驱动入口中引用的Matrix_Entry接口函数,建议仔细阅读该源文件。

同时,kbd.cpp中还调用了当前路径下s3c2440kbd.hpp中定义的一些被调用函数,这些函数完成了键盘驱动中的功能函数,于s3c2440kbd.cpp中实现。

3、

mini2440/Src/Drivers/Keybd目录下有几个目录,其中ppdlist和Kbdcommon不做赘述,其他5个目录对应不同键盘布局的实现,这里只实现了Matrix_0409,具体布局对应的扫描-虚拟键盘码的映射实现,请阅读源代码。

 

安凯8801:

1、

AK780X/SRC/DRIVERS/KEYBD下有4个目录,究竟哪个目录是有效的键盘驱动目录呢?可以根据该目录下的dirs文件确认,查看内容为:

DIRS= /
 kbdak3810us /
# kbdak3810jpn1 /
# kbdak3810jpn2 /
# kbdak3810kor /
可知kbdak3810us有效,该目录下的桩文件内容是#include "bsp_ps2keybd.c",指向了PS2键盘驱动。

2、

AK780X/SRC/BSP_CONFIG/8801_EPC_V2下实现了bsp_ps2keybd.c,实现了ps2鼠标和键盘的相关函数(貌似只是引脚连接信息的初始化函数),注:其对应的.h文件bsp_ps2keybd.h位于AK780X/SRC/INC/BSPINC下。

然而对这些函数进行调用的驱动程序位于AK780X/SRC/AK_PRIVATE/DRIVERS/KEYBD,这样,我们就可以参考上面mini2440的思路继续梳理。

3、

AK780X/SRC/AK_PRIVATE/DRIVERS/KEYBD/PDDLIST下的PddList.cpp定义了指向的键盘驱动入口:

PFN_KEYBD_PDD_ENTRY g_rgpfnPddEntries[] = {
    PS2_NOP_Entry,
   // Matrix_Entry,
    PS2_Anyka_Entry,
    NULL
};

4、

AK780X/SRC/AK_PRIVATE/DRIVERS/KEYBD/KBDCOMMON下的ps2entry.cpp实现了上述驱动入口中引用的PS2_Anyka_Entry接口函数。

同时还调用了分析步骤2中所说的bsp_ps2keybd.h中定义的引脚连接初始函数以及AK780X/SRC/AK_PRIVATE/DRIVERS/KEYBD/INC下几个.h和.hpp文件中定义的ps2驱动功能函数。这些函数都在ps2entry.cpp的所在目录AK780X/SRC/AK_PRIVATE/DRIVERS/KEYBD/KBDCOMMON下的几个cpp文件中实现了。

5、

AK780X/SRC/AK_PRIVATE/DRIVERS/KEYBD下还有几个目录,用于实现矩阵键盘驱动的。已被dirs文件屏蔽,可以考虑通过相关修改启动矩阵键盘的驱动。

 

=====================================================

继续分析,如何将安凯8801改为矩阵驱动键盘:

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值