MTK Android Driver :key

本文详细介绍了按键配置的方法,包括按键定义表、去抖动时间、不同模式下的按键映射等,并展示了如何通过Driver Customization Tool进行定制化配置。

5.keypad

5.1按键配置(根据原理图):DCT(Driver Customization Tool):

..\mediatek\custom\prj\kernel\dct\dct\codegen.dws

..\mediatek\source\dct\DrvGen.exe

客制化:按键定义表、de-bounce time 、Power key Eint Gpio、DownLoadKey、|Mode Key、Factory Key、Recovery Key

 

5.2factory mode工厂模式按键定义

..\mediatek\custom\k6\factory\inc\cust_keys.h

 

//工厂按键测试映射表,自动生成,在.dws中配置按键映射表

\alps\mediatek\custom\prj\kernel\dct\dct\cust_kpd.h

#defineKEYS_PWRKEY_MAP            { KEY_POWER,"Power" }

#defineDEFINE_KEYS_KEYMAP(x)             \

struct key x[] = {                       \

         KEYS_PWRKEY_MAP,             \

         { KEY_HOME,       "Home" },        \

         { KEY_MENU,       "Menu" },         \

         { KEY_HOMEPAGE,   "HomePage" },          \

}

 

//工厂模式按键定义

#define CUST_KEY_UP                KEY_UP

#defineCUST_KEY_VOLUP                KEY_PAGEUP       // KEY_VOLUMEUP

#defineCUST_KEY_DOWN                 KEY_DOWN

#defineCUST_KEY_VOLDOWN KEY_VOLUMEDOWN     // KEY_VOLUMEDOWN

#defineCUST_KEY_LEFT                   KEY_MENU

#defineCUST_KEY_CENTER              KEY_HOMEPAGE

#defineCUST_KEY_RIGHT                 KEY_BACK

 

#defineCUST_KEY_CONFIRM  KEY_VOLUMEUP // KEY_HOME

#defineCUST_KEY_BACK                 KEY_POWER

 

5.3recovery mode恢复模式按键定义

\mediatek\custom\prj\recovery\inc\cust_keys.h

#defineRECOVERY_KEY_DOWN     KEY_VOLUMEDOWN

#defineRECOVERY_KEY_UP       KEY_VOLUMEDOWN

#defineRECOVERY_KEY_ENTER    KEY_VOLUMEUP

#define RECOVERY_KEY_MENU     KEY_POWER

 

5.4 home键配置(直接引出的,不需要在.dws中定义按键映射)

\alps\mediatek\custom\prj\kernel\kpd\kpd\mtk_kpd.h

#defineKPD_PMIC_RSTKEY_MAP KEY_HOME

 

home键添加唤醒功能

\alps\mediatek\config\prj\mtk-kpd.kl

key 102   HOME           WAKE

10-15 17:34:15.146961 12071 12140 F libc : Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x68 in tid 12140 (binder:12071_2), pid 12071 (ervice-mtk-lazy) 10-15 17:34:15.423116 14358 14358 F DEBUG : Process name is /vendor/bin/hw/android.hardware.neuralnetworks-shim-service-mtk-lazy, uid is 1000, not key_process 10-15 17:34:15.423151 14358 14358 F DEBUG : keyProcess: 0 10-15 17:34:15.423163 14358 14358 F DEBUG : *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** 10-15 17:34:15.423171 14358 14358 F DEBUG : Build fingerprint: 'realme/RMX3997IN/RE5C9AL1:15/AP3A.240617.008/U.R4T2.1fd951b_27-109ac3:user/release-keys' 10-15 17:34:15.423180 14358 14358 F DEBUG : Revision: '0' 10-15 17:34:15.423186 14358 14358 F DEBUG : ABI: 'arm64' 10-15 17:34:15.423193 14358 14358 F DEBUG : Timestamp: 2025-10-15 17:34:15.193400625+0530 10-15 17:34:15.423200 14358 14358 F DEBUG : Process uptime: 21s 10-15 17:34:15.423214 14358 14358 F DEBUG : Cmdline: /vendor/bin/hw/android.hardware.neuralnetworks-shim-service-mtk-lazy 10-15 17:34:15.423221 14358 14358 F DEBUG : pid: 12071, tid: 12140, name: binder:12071_2 >>> /vendor/bin/hw/android.hardware.neuralnetworks-shim-service-mtk-lazy <<< 10-15 17:34:15.423229 14358 14358 F DEBUG : uid: 1000 10-15 17:34:15.423239 14358 14358 F DEBUG : tagged_addr_ctrl: 0000000000000001 (PR_TAGGED_ADDR_ENABLE) 10-15 17:34:15.423248 14358 14358 F DEBUG : signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0000000000000068 10-15 17:34:15.423255 14358 14358 F DEBUG : Cause: null pointer dereference 10-15 17:34:15.423270 14358 14358 F DEBUG : x0 b4000076c58261c0 x1 0000000000000073 x2 0000000000000000 x3 00000076c564ba48 10-15 17:34:15.423280 14358 14358 F DEBUG : x4 0000000000002f6c x5 b4000076c580d018 x6 0000000001810000 x7 0000000001810000 10-15 17:34:15.423288 14358 14358 F DEBUG : x8 0000000000000000 x9 23c756b40dc05832 x10 00000076c5800020 x11 00000076c5800000 10-15 17:34:15.423303 14358 14358 F DEBUG : x12 000000000000000d x13 0000000000000000 x14 000000000000000d x15 0000000000000008 10-15 17:34:15.423311 14358 14358 F DEBUG : x16 00000076c538c2d0 x17 0000007750a8fe40 x18 00000076b68d4000 x19 0000000000000000 10-15 17:34:15.423319 14358 14358 F DEBUG : x20 0000000000000073 x21 0000000000002f6c x22 b4000076c58261c0 x23 b4000076c580d020 10-15 17:34:15.423328 14358 14358 F DEBUG : x24 00000076c538d000 x25 b4000076c580d010 x26 00000076c564bf80 x27 0000000000000002 10-15 17:34:15.423336 14358 14358 F DEBUG : x28 0000000000000008 x29 00000076c564ba60 10-15 17:34:15.423344 14358 14358 F DEBUG : lr 00000076c538a1d0 sp 00000076c564ba00 pc 00000076c538a344 pst 0000000060001000 10-15 17:34:15.423353 14358 14358 F DEBUG : 5 total frames 10-15 17:34:15.423359 14358 14358 F DEBUG : backtrace: 10-15 17:34:15.423374 14358 14358 F DEBUG : #00 pc 0000000000002344 /vendor/lib64/libmtkperf_client_vendor.so (perf_lock_acq+692) (BuildId: 4e4b169388280b150e18f817246aa3de) 10-15 17:34:15.423388 14358 14358 F DEBUG : #01 pc 000000000017e8ac /vendor/lib64/mt6835/libneuralnetworks_sl_driver_mtk_prebuilt.so (android::nn::mtk_sl_driver::PerformanceWorker::process()+1308) (BuildId: 7eb03e26cf345f75cfb3899f9e120edf) 10-15 17:34:15.423414 14358 14358 F DEBUG : #02 pc 000000000018070c /vendor/lib64/mt6835/libneuralnetworks_sl_driver_mtk_prebuilt.so (void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, void (android::nn::mtk_sl_driver::PerformanceWorker::*)(), android::nn::mtk_sl_driver::PerformanceWorker*>>(void*)+60) (BuildId: 7eb03e26cf345f75cfb3899f9e120edf) 10-15 17:34:15.423432 14358 14358 F DEBUG : #03 pc 00000000000a6524 /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+196) (BuildId: 5144907d23fac121cc594696acde97e0) 10-15 17:34:15.423440 14358 14358 F DEBUG : #04 pc 00000000000978a0 /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64) (BuildId: 5144907d23fac121cc594696acde97e0)
最新发布
10-21
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值