Embedded omap_udc.c g_hid.c使用angstrom linux在beagleboard上安装hid小工具
要将beagleboard xm用作HID外围设备,我计划执行以下操作:Embedded omap_udc.c g_hid.c使用angstrom linux在beagleboard上安装hid小工具,embedded,kernel-module,hid,beagleboard,Embedded,Kernel Module,Hid,Beagleboard,要将beagleboard xm用作HID外围设备,我计划执行以下操作: 了解如何使用angstrom构建东西 获取内核源代码2.6.32 编译omap_udc和g_hid 将这些模块插入内核 从gadget_hid.txt编译示例 使用hid\u gadget\u测试/dev/hidg0键盘发送键盘命令 这是做我想做的事的好方法吗 是09年的一个有点相关的问题 非常相似。我想我会在这里发布这篇文章,因为我一直在寻找答案,但没有结果,所以我不得不发挥创意 首先 到这里去拿内核 第二 内核/ar
非常相似。我想我会在这里发布这篇文章,因为我一直在寻找答案,但没有结果,所以我不得不发挥创意 首先 到这里去拿内核 第二 内核/arch/arm/mach-omap2/board-am335xevm.c 加: 按照前面的指南构建内核 在内核构建的makemenu配置部分 转到设备驱动程序->usb支持->usb小工具支持->usb小工具驱动程序->将HID小工具编译为模块(您可能需要查找它,但它在更多子菜单的本节中) 从内核文档中获取示例代码部分 还是这一页 用GCC编译 检查g_hid.ko司机 然后运行编译后的示例代码
enter code here
#include <linux/usb/g_hid.h>
/* hid descriptor for a keyboard */
static struct hidg_func_descriptor my_hid_data = {
.subclass = 0, /* No subclass */
.protocol = 1, /* Keyboard */
.report_length = 8,
.report_desc_length = 63,
.report_desc = {
0x05, 0x01, /* USAGE_PAGE (Generic Desktop) */
0x09, 0x06, /* USAGE (Keyboard) */
0xa1, 0x01, /* COLLECTION (Application) */
0x05, 0x07, /* USAGE_PAGE (Keyboard) */
0x19, 0xe0, /* USAGE_MINIMUM (Keyboard LeftControl) */
0x29, 0xe7, /* USAGE_MAXIMUM (Keyboard Right GUI) */
0x15, 0x00, /* LOGICAL_MINIMUM (0) */
0x25, 0x01, /* LOGICAL_MAXIMUM (1) */
0x75, 0x01, /* REPORT_SIZE (1) */
0x95, 0x08, /* REPORT_COUNT (8) */
0x81, 0x02, /* INPUT (Data,Var,Abs) */
0x95, 0x01, /* REPORT_COUNT (1) */
0x75, 0x08, /* REPORT_SIZE (8) */
0x81, 0x03, /* INPUT (Cnst,Var,Abs) */
0x95, 0x05, /* REPORT_COUNT (5) */
0x75, 0x01, /* REPORT_SIZE (1) */
0x05, 0x08, /* USAGE_PAGE (LEDs) */
0x19, 0x01, /* USAGE_MINIMUM (Num Lock) */
0x29, 0x05, /* USAGE_MAXIMUM (Kana) */
0x91, 0x02, /* OUTPUT (Data,Var,Abs) */
0x95, 0x01, /* REPORT_COUNT (1) */
0x75, 0x03, /* REPORT_SIZE (3) */
0x91, 0x03, /* OUTPUT (Cnst,Var,Abs) */
0x95, 0x06, /* REPORT_COUNT (6) */
0x75, 0x08, /* REPORT_SIZE (8) */
0x15, 0x00, /* LOGICAL_MINIMUM (0) */
0x25, 0x65, /* LOGICAL_MAXIMUM (101) */
0x05, 0x07, /* USAGE_PAGE (Keyboard) */
0x19, 0x00, /* USAGE_MINIMUM (Reserved) */
0x29, 0x65, /* USAGE_MAXIMUM (Keyboard Application) */
0x81, 0x00, /* INPUT (Data,Ary,Abs) */
0xc0 /* END_COLLECTION */
}
};
static struct platform_device my_hid = {
.name = "hidg",
.id = 0,
.num_resources = 0,
.resource = 0,
.dev = {
.platform_data = &my_hid_data,
},
};
static void __init am33xx_hidg_init(void)
{
int ret;
ret = platform_device_register(&my_hid);
if (ret)
printk("HID Gadget registration failed\n");
}
static void __init am335x_evm_init(void)
{
am33xx_cpuidle_init();
am33xx_mux_init(board_mux);
omap_serial_init();
am335x_rtc_init();
**am33xx_hidg_init();**
clkout2_enable();
}