⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 usb_descriptors.c

📁 Contiki是一个开源
💻 C
📖 第 1 页 / 共 2 页
字号:
 , ENDPOINT_NB_6 , EP_ATTRIBUTES_6 , Usb_write_word_enum_struc(EP_SIZE_6) , EP_INTERVAL_6 }};/****************** NETWORK-ONLY DEVICE DESCRIPTORS **************************/FLASH S_usb_device_descriptor usb_dev_desc_network ={  sizeof(usb_dev_desc_network), DEVICE_DESCRIPTOR, Usb_write_word_enum_struc(USB_SPECIFICATION), NETWORK_DEVICE_CLASS, NETWORK_DEVICE_SUB_CLASS, NETWORK_DEVICE_PROTOCOL, EP_CONTROL_LENGTH, Usb_write_word_enum_struc(VENDOR_ID), Usb_write_word_enum_struc(NETWORK_PRODUCT_ID), Usb_write_word_enum_struc(RELEASE_NUMBER), MAN_INDEX, PROD_INDEX, SN_INDEX, NB_CONFIGURATION};// usb_user_configuration_descriptor FSFLASH S_usb_user_configuration_descriptor_network usb_conf_desc_network = { { sizeof(S_usb_configuration_descriptor) , CONFIGURATION_DESCRIPTOR , Usb_write_word_enum_struc(sizeof(S_usb_user_configuration_descriptor_network)) //, 0x0043 //TODO: Change to generic codewith sizeof , NETWORK_NB_INTERFACE , CONF_NB , CONF_INDEX , CONF_ATTRIBUTES , MAX_POWER },//9  /// RNDIS DEVICE { sizeof(S_usb_interface_descriptor) , INTERFACE_DESCRIPTOR , INTERFACE0_NB , ALTERNATE0 , NB_ENDPOINT0 , INTERFACE0_CLASS , INTERFACE0_SUB_CLASS , INTERFACE0_PROTOCOL , INTERFACE0_INDEX } //9,{// Header Functional Descriptor (marks beginning of the concatenated set of Functional Descriptors)0x05, // bFunctionLength, Descriptor size in bytes0x24, // bDescriptorType, CS_INTERFACE0x00, // bDescriptorSubtype, Header Functional Descriptor0x10,0x01, // bcdCDC, CDC specification release number in BCD format (1,1)// Call Management Functional Descriptor0x05, // bFunctionLength, Descriptor size in bytes0x24, // bDescriptorType, CS_INTERFACE0x01, // bDescriptorSubtype, Call Management Functional Descriptor0x00, // bmCapabilities0x01, // bDataInterface, Interface used for call management// Abstract Control Management Functional Descriptor0x04, // bDescriptorLength, Descriptor size in bytes0x24, // bDescriptorType, CS_INTERFACE0x02, // bDescriptorSubtype, Abstract Control Management Functional Descriptor0x00, // bmCapabilities// Union Functional Descriptor0x05, // bFunctionLength, Descriptor size in bytes0x24, // bDescriptorType, CS_INTERFACE0x06, // bDescriptorSubtype, Union Functional Descriptor0x00, // bMasterInterface, The controlling interface for the union (bInterfaceNumber of a Communication or Data Class interface in this configuration)0x01, // bSlaveInterface0, The controlled interace in the union (bInterfaceNumber of an interface in this configuration)},{ sizeof(S_usb_endpoint_descriptor) , ENDPOINT_DESCRIPTOR , ENDPOINT_NB_1 , EP_ATTRIBUTES_1 , Usb_write_word_enum_struc(EP_SIZE_1) , EP_INTERVAL_1 } //7 , { sizeof(S_usb_interface_descriptor) , INTERFACE_DESCRIPTOR , INTERFACE1_NB , ALTERNATE1 , NB_ENDPOINT1 , INTERFACE1_CLASS , INTERFACE1_SUB_CLASS , INTERFACE1_PROTOCOL , INTERFACE1_INDEX }, { sizeof(S_usb_endpoint_descriptor) , ENDPOINT_DESCRIPTOR , ENDPOINT_NB_2 , EP_ATTRIBUTES_2 , Usb_write_word_enum_struc(EP_SIZE_2) , EP_INTERVAL_2 },{ sizeof(S_usb_endpoint_descriptor) , ENDPOINT_DESCRIPTOR , ENDPOINT_NB_3 , EP_ATTRIBUTES_3 , Usb_write_word_enum_struc(EP_SIZE_3) , EP_INTERVAL_3 }};/****************** MASS-STORAGE DEVICE DESCRIPTORS **************************/FLASH S_usb_device_descriptor usb_dev_desc_mass ={  sizeof(usb_dev_desc_mass), DEVICE_DESCRIPTOR, Usb_write_word_enum_struc(USB_SPECIFICATION), MASS_DEVICE_CLASS, MASS_DEVICE_SUB_CLASS, MASS_DEVICE_PROTOCOL, EP_CONTROL_LENGTH, Usb_write_word_enum_struc(VENDOR_ID), Usb_write_word_enum_struc(MASS_PRODUCT_ID), Usb_write_word_enum_struc(RELEASE_NUMBER), MAN_INDEX, PROD_INDEX, SN_INDEX, NB_CONFIGURATION};// usb_user_configuration_descriptor FSFLASH S_usb_user_configuration_descriptor_mass usb_conf_desc_mass = { { sizeof(S_usb_configuration_descriptor) , CONFIGURATION_DESCRIPTOR , Usb_write_word_enum_struc(sizeof(S_usb_user_configuration_descriptor_mass)) , MASS_NB_INTERFACE , CONF_NB , CONF_INDEX , CONF_ATTRIBUTES , MAX_POWER },//9  /// Mass storage { sizeof(S_usb_interface_descriptor) , INTERFACE_DESCRIPTOR , MS_INTERFACE_NB , MS_ALTERNATE , MS_NB_ENDPOINT , MS_INTERFACE_CLASS , MS_INTERFACE_SUB_CLASS , MS_INTERFACE_PROTOCOL , MS_INTERFACE_INDEX } //9,{ sizeof(S_usb_endpoint_descriptor) , ENDPOINT_DESCRIPTOR , MS_ENDPOINT_NB_1 , MS_EP_ATTRIBUTES_1 , Usb_write_word_enum_struc(MS_EP_SIZE_1) , MS_EP_INTERVAL_1 } //7 , { sizeof(S_usb_endpoint_descriptor) , ENDPOINT_DESCRIPTOR , MS_ENDPOINT_NB_2 , MS_EP_ATTRIBUTES_2 , Usb_write_word_enum_struc(MS_EP_SIZE_2) , MS_EP_INTERVAL_2 }};/************* COMMON *****************/                                      // usb_user_manufacturer_string_descriptorFLASH S_usb_manufacturer_string_descriptor usb_user_manufacturer_string_descriptor = {  sizeof(usb_user_manufacturer_string_descriptor), STRING_DESCRIPTOR, USB_MANUFACTURER_NAME};                                      // usb_user_product_string_descriptorFLASH S_usb_product_string_descriptor usb_user_product_string_descriptor = {  sizeof(usb_user_product_string_descriptor), STRING_DESCRIPTOR, USB_PRODUCT_NAME};                                      // usb_user_serial_numberFLASH S_usb_serial_number usb_user_serial_number = {  sizeof(usb_user_serial_number), STRING_DESCRIPTOR, USB_SERIAL_NUMBER};                                      // usb_user_language_idFLASH S_usb_language_id usb_user_language_id = {  sizeof(usb_user_language_id), STRING_DESCRIPTOR, Usb_write_word_enum_struc(LANGUAGE_ID)};PGM_VOID_P Usb_get_dev_desc_pointer(void) {	if (usb_mode == rndis_only)		return &(usb_dev_desc_network.bLength);	if (usb_mode == rndis_debug)		return &(usb_dev_desc_composite.bLength);	return &(usb_dev_desc_mass.bLength);}U8 Usb_get_dev_desc_length(void){	if (usb_mode == rndis_only)		return sizeof(usb_dev_desc_network);	if (usb_mode == rndis_debug)		return sizeof(usb_dev_desc_composite);	return sizeof(usb_dev_desc_mass);}PGM_VOID_P  Usb_get_conf_desc_pointer(void) {	if (usb_mode == rndis_only)		return &(usb_conf_desc_network.cfg.bLength);	if (usb_mode == rndis_debug)		return &(usb_conf_desc_composite.cfg.bLength);	return &(usb_conf_desc_mass.cfg.bLength);}U8  Usb_get_conf_desc_length(void){	if (usb_mode == rndis_only)		return sizeof (usb_conf_desc_network);	if (usb_mode == rndis_debug)		return sizeof(usb_conf_desc_composite);	return sizeof(usb_conf_desc_mass);}/** @} */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -