背景:Android系統和單片機系統通過usb HID方式連接通訊
目的:讓內核識別該設備,並且讓Android 應用可以打開該設備,使其和HID設備通訊
操作步驟:
1> 配置Android內核(linux3.1.10)的配置文件:
make menuconfig
“HID device --->
Special hid device --->
<*>muti touch device ”
完成後,check .config文件中的CONFIG_HID_MUTITOUCH=y
注: SourcInsight.exe(SI)工具好像不能正常讀取.config 文件,但是UtraEdit.exe(UE)是可以的。
2> 修改內核驅動:
"3.1.10/drivers/hid/"
hid-ids.h
+ #define USB_VENDOR_ID_XXX 0x0188
+ #define USB_DEVICE_ID_XXX 0x0189
hid_mutitouch.c
......
static const struct hid_device_id mt_devices[ ] =
{
...
+ { .driver_data = MT_CLS_DEFAULT,
+ HID_USB_DEVICE ( USB_VENDOR_ID_XXX,USB_DEVICE_ID_XXX )
+ },
...
}
hid_core.c:
.......
static const struct hid_device_id hid_have_special_driver =
{
...
+ {
+ HID_USB_DEVICE (USB_VENDOR_ID_XXX,USB_DEVICE_ID_XXX )
+ },
...
}
.......
3>修改Android系統文件:
“jb422/frameworks/base/data/keyboards”
common.mk
keyconfigs := \
...
+ Vendor_0188_Product_0189.idc
同時在該目錄下添加文件:
Vendor_0188_Product_0189.idc
idc文件書寫參考:
http://blog.csdn.net/myarrow/article/details/7710617
hid協議參考:
http://blog.csdn.net/dm_man/article/details/5285664