未验证 提交 65fc7421 编写于 作者: B Bernard Xiong 提交者: GitHub

Merge pull request #1871 from uestczyh222/master

[Components][USB]增加健壮性
/*
* File : hid.c
* COPYRIGHT (C) 2008 - 2016, RT-Thread Development Team
* COPYRIGHT (C) 2008 - 2018, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
* Change Logs:
* Date Author Notes
* 2017-03-13 Urey the first version
......@@ -294,9 +296,8 @@ const static struct uhid_comm_descriptor _hid_comm_desc =
USB_HID_PROTOCOL_MOUSE, /* nInterfaceProtocol : 0=none, 1=keyboard, 2=mouse */
#endif
0x00,
#endif
},
#endif
/* Interface Descriptor */
{
USB_DESC_LENGTH_INTERFACE,
......
/*
* File : usbdevice.c
* This file is part of RT-Thread RTOS
* COPYRIGHT (C) 2012, RT-Thread Development Team
* File : hid.c
* COPYRIGHT (C) 2008 - 2018, RT-Thread Development Team
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
* SPDX-License-Identifier: Apache-2.0
*
* Change Logs:
* Date Author Notes
......@@ -96,6 +83,13 @@ INIT_BOARD_EXPORT(rt_usbd_class_list_init);
rt_err_t rt_usbd_class_register(udclass_t udclass)
{
#ifndef RT_USB_DEVICE_COMPOSITE
if(!rt_list_isempty(&class_list))
{
rt_kprintf("[D/USBD] If you want to use usb composite device please define RT_USB_DEVICE_COMPOSITE\n");
return RT_ERROR;
}
#endif
rt_list_insert_before(&class_list,&udclass->list);
return RT_EOK;
}
......@@ -109,6 +103,11 @@ rt_err_t rt_usb_device_init(void)
rt_list_t *i;
udclass_t udclass;
if(rt_list_isempty(&class_list))
{
rt_kprintf("[D/USBD] No class register on usb device\n");
return RT_ERROR;
}
/* create and startup usb device thread */
rt_usbd_core_init();
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册