mirror of
https://github.com/hathach/tinyusb.git
synced 2025-04-23 17:42:22 +00:00
move interface descriptor template to usbd.h, update exmaple
This commit is contained in:
parent
6796026476
commit
ff8fe28c98
@ -21,7 +21,6 @@
|
|||||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
* THE SOFTWARE.
|
* THE SOFTWARE.
|
||||||
*
|
*
|
||||||
* This file is part of the TinyUSB stack.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
@ -79,6 +78,38 @@ int main(void)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------+
|
||||||
|
// Device callbacks
|
||||||
|
//--------------------------------------------------------------------+
|
||||||
|
|
||||||
|
// Invoked when device is mounted
|
||||||
|
void tud_mount_cb(void)
|
||||||
|
{
|
||||||
|
blink_interval_ms = BLINK_MOUNTED;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Invoked when device is unmounted
|
||||||
|
void tud_umount_cb(void)
|
||||||
|
{
|
||||||
|
blink_interval_ms = BLINK_NOT_MOUNTED;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Invoked when usb bus is suspended
|
||||||
|
// remote_wakeup_en : if host allow us to perform remote wakeup
|
||||||
|
// Within 7ms, device must draw an average of current less than 2.5 mA from bus
|
||||||
|
void tud_suspend_cb(bool remote_wakeup_en)
|
||||||
|
{
|
||||||
|
(void) remote_wakeup_en;
|
||||||
|
blink_interval_ms = BLINK_SUSPENDED;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Invoked when usb bus is resumed
|
||||||
|
void tud_resume_cb(void)
|
||||||
|
{
|
||||||
|
blink_interval_ms = BLINK_MOUNTED;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
//--------------------------------------------------------------------+
|
//--------------------------------------------------------------------+
|
||||||
// USB CDC
|
// USB CDC
|
||||||
//--------------------------------------------------------------------+
|
//--------------------------------------------------------------------+
|
||||||
@ -217,37 +248,6 @@ void tud_hid_set_report_cb(uint8_t report_id, hid_report_type_t report_type, uin
|
|||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//--------------------------------------------------------------------+
|
|
||||||
// Device callbacks
|
|
||||||
//--------------------------------------------------------------------+
|
|
||||||
|
|
||||||
// Invoked when device is mounted
|
|
||||||
void tud_mount_cb(void)
|
|
||||||
{
|
|
||||||
blink_interval_ms = BLINK_MOUNTED;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Invoked when device is unmounted
|
|
||||||
void tud_umount_cb(void)
|
|
||||||
{
|
|
||||||
blink_interval_ms = BLINK_NOT_MOUNTED;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Invoked when usb bus is suspended
|
|
||||||
// remote_wakeup_en : if host allow us to perform remote wakeup
|
|
||||||
// Within 7ms, device must draw an average of current less than 2.5 mA from bus
|
|
||||||
void tud_suspend_cb(bool remote_wakeup_en)
|
|
||||||
{
|
|
||||||
(void) remote_wakeup_en;
|
|
||||||
blink_interval_ms = BLINK_SUSPENDED;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Invoked when usb bus is resumed
|
|
||||||
void tud_resume_cb(void)
|
|
||||||
{
|
|
||||||
blink_interval_ms = BLINK_MOUNTED;
|
|
||||||
}
|
|
||||||
|
|
||||||
//--------------------------------------------------------------------+
|
//--------------------------------------------------------------------+
|
||||||
// BLINKING TASK
|
// BLINKING TASK
|
||||||
//--------------------------------------------------------------------+
|
//--------------------------------------------------------------------+
|
||||||
|
@ -21,7 +21,6 @@
|
|||||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
* THE SOFTWARE.
|
* THE SOFTWARE.
|
||||||
*
|
*
|
||||||
* This file is part of the TinyUSB stack.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "bsp/board.h"
|
#include "bsp/board.h"
|
||||||
|
@ -21,7 +21,6 @@
|
|||||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
* THE SOFTWARE.
|
* THE SOFTWARE.
|
||||||
*
|
*
|
||||||
* This file is part of the TinyUSB stack.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef _TUSB_CONFIG_H_
|
#ifndef _TUSB_CONFIG_H_
|
||||||
@ -113,7 +112,7 @@
|
|||||||
* This will occupies 256 bytes of ROM. It will also enable the use of extra APIs
|
* This will occupies 256 bytes of ROM. It will also enable the use of extra APIs
|
||||||
* - tud_hid_keyboard_send_char()
|
* - tud_hid_keyboard_send_char()
|
||||||
*/
|
*/
|
||||||
#define CFG_TUD_HID_ASCII_TO_KEYCODE_LOOKUP 1
|
#define CFG_TUD_HID_ASCII_TO_KEYCODE_LOOKUP 0
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
|
@ -21,7 +21,6 @@
|
|||||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
* THE SOFTWARE.
|
* THE SOFTWARE.
|
||||||
*
|
*
|
||||||
* This file is part of the TinyUSB stack.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "tusb.h"
|
#include "tusb.h"
|
||||||
@ -68,6 +67,7 @@ tusb_desc_device_t const desc_device =
|
|||||||
};
|
};
|
||||||
|
|
||||||
//------------- HID Report Descriptor -------------//
|
//------------- HID Report Descriptor -------------//
|
||||||
|
#if CFG_TUD_HID
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
REPORT_ID_KEYBOARD = 1,
|
REPORT_ID_KEYBOARD = 1,
|
||||||
@ -79,6 +79,7 @@ uint8_t const desc_hid_report[] =
|
|||||||
HID_REPORT_DESC_KEYBOARD( HID_REPORT_ID(REPORT_ID_KEYBOARD), ),
|
HID_REPORT_DESC_KEYBOARD( HID_REPORT_ID(REPORT_ID_KEYBOARD), ),
|
||||||
HID_REPORT_DESC_MOUSE ( HID_REPORT_ID(REPORT_ID_MOUSE), )
|
HID_REPORT_DESC_MOUSE ( HID_REPORT_ID(REPORT_ID_MOUSE), )
|
||||||
};
|
};
|
||||||
|
#endif
|
||||||
|
|
||||||
//------------- Configuration Descriptor -------------//
|
//------------- Configuration Descriptor -------------//
|
||||||
enum
|
enum
|
||||||
@ -101,7 +102,7 @@ enum
|
|||||||
|
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
CONFIG_DESC_LEN = sizeof(tusb_desc_configuration_t) + CFG_TUD_CDC*TUD_CDC_DESC_LEN + CFG_TUD_MSC*TUD_MSC_DESC_LEN + CFG_TUD_HID*TUD_HID_DESC_LEN
|
CONFIG_TOTAL_LEN = TUD_CONFIG_DESC_LEN + CFG_TUD_CDC*TUD_CDC_DESC_LEN + CFG_TUD_MSC*TUD_MSC_DESC_LEN + CFG_TUD_HID*TUD_HID_DESC_LEN
|
||||||
};
|
};
|
||||||
|
|
||||||
#if CFG_TUSB_MCU == OPT_MCU_LPC175X_6X || CFG_TUSB_MCU == OPT_MCU_LPC177X_8X || CFG_TUSB_MCU == OPT_MCU_LPC40XX
|
#if CFG_TUSB_MCU == OPT_MCU_LPC175X_6X || CFG_TUSB_MCU == OPT_MCU_LPC177X_8X || CFG_TUSB_MCU == OPT_MCU_LPC40XX
|
||||||
@ -117,7 +118,7 @@ enum
|
|||||||
uint8_t const desc_configuration[] =
|
uint8_t const desc_configuration[] =
|
||||||
{
|
{
|
||||||
// Config: self-powered with remote wakeup support, max power up to 100 mA
|
// Config: self-powered with remote wakeup support, max power up to 100 mA
|
||||||
TUD_CONFIG_DESCRIPTOR(ITF_NUM_TOTAL, 0, CONFIG_DESC_LEN, TUSB_DESC_CONFIG_ATT_REMOTE_WAKEUP, 100),
|
TUD_CONFIG_DESCRIPTOR(ITF_NUM_TOTAL, 0, CONFIG_TOTAL_LEN, TUSB_DESC_CONFIG_ATT_REMOTE_WAKEUP, 100),
|
||||||
|
|
||||||
#if CFG_TUD_CDC
|
#if CFG_TUD_CDC
|
||||||
TUD_CDC_DESCRIPTOR(ITF_NUM_CDC, 4, 0x81, 8, 0x02, 0x82, 64),
|
TUD_CDC_DESCRIPTOR(ITF_NUM_CDC, 4, 0x81, 8, 0x02, 0x82, 64),
|
||||||
@ -167,5 +168,7 @@ tud_desc_set_t tud_desc_set =
|
|||||||
.string_arr = (uint8_t const **) string_desc_arr,
|
.string_arr = (uint8_t const **) string_desc_arr,
|
||||||
.string_count = sizeof(string_desc_arr)/sizeof(string_desc_arr[0]),
|
.string_count = sizeof(string_desc_arr)/sizeof(string_desc_arr[0]),
|
||||||
|
|
||||||
|
#if CFG_TUD_HID
|
||||||
.hid_report = desc_hid_report,
|
.hid_report = desc_hid_report,
|
||||||
|
#endif
|
||||||
};
|
};
|
||||||
|
@ -21,7 +21,6 @@
|
|||||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
* THE SOFTWARE.
|
* THE SOFTWARE.
|
||||||
*
|
*
|
||||||
* This file is part of the TinyUSB stack.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
@ -74,12 +73,12 @@ int main(void)
|
|||||||
// Create task
|
// Create task
|
||||||
#if CFG_TUD_CDC
|
#if CFG_TUD_CDC
|
||||||
extern void cdc_task(void* params);
|
extern void cdc_task(void* params);
|
||||||
xTaskCreate( cdc_task, "cdc", 256, NULL, configMAX_PRIORITIES-2, NULL);
|
xTaskCreate( cdc_task, "cdc", 128, NULL, configMAX_PRIORITIES-2, NULL);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if CFG_TUD_HID
|
#if CFG_TUD_HID
|
||||||
extern void hid_task(void* params);
|
extern void hid_task(void* params);
|
||||||
xTaskCreate( hid_task, "hid", 256, NULL, configMAX_PRIORITIES-2, NULL);
|
xTaskCreate( hid_task, "hid", 128, NULL, configMAX_PRIORITIES-2, NULL);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
vTaskStartScheduler();
|
vTaskStartScheduler();
|
||||||
@ -102,6 +101,37 @@ void usb_device_task(void* param)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------+
|
||||||
|
// Device callbacks
|
||||||
|
//--------------------------------------------------------------------+
|
||||||
|
|
||||||
|
// Invoked when device is mounted
|
||||||
|
void tud_mount_cb(void)
|
||||||
|
{
|
||||||
|
xTimerChangePeriod(blink_tm, pdMS_TO_TICKS(BLINK_MOUNTED), 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Invoked when device is unmounted
|
||||||
|
void tud_umount_cb(void)
|
||||||
|
{
|
||||||
|
xTimerChangePeriod(blink_tm, pdMS_TO_TICKS(BLINK_NOT_MOUNTED), 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Invoked when usb bus is suspended
|
||||||
|
// remote_wakeup_en : if host allow us to perform remote wakeup
|
||||||
|
// Within 7ms, device must draw an average of current less than 2.5 mA from bus
|
||||||
|
void tud_suspend_cb(bool remote_wakeup_en)
|
||||||
|
{
|
||||||
|
(void) remote_wakeup_en;
|
||||||
|
xTimerChangePeriod(blink_tm, pdMS_TO_TICKS(BLINK_SUSPENDED), 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Invoked when usb bus is resumed
|
||||||
|
void tud_resume_cb(void)
|
||||||
|
{
|
||||||
|
xTimerChangePeriod(blink_tm, pdMS_TO_TICKS(BLINK_MOUNTED), 0);
|
||||||
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------+
|
//--------------------------------------------------------------------+
|
||||||
// USB CDC
|
// USB CDC
|
||||||
//--------------------------------------------------------------------+
|
//--------------------------------------------------------------------+
|
||||||
@ -249,37 +279,6 @@ void tud_hid_set_report_cb(uint8_t report_id, hid_report_type_t report_type, uin
|
|||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//--------------------------------------------------------------------+
|
|
||||||
// Device callbacks
|
|
||||||
//--------------------------------------------------------------------+
|
|
||||||
|
|
||||||
// Invoked when device is mounted
|
|
||||||
void tud_mount_cb(void)
|
|
||||||
{
|
|
||||||
xTimerChangePeriod(blink_tm, pdMS_TO_TICKS(BLINK_MOUNTED), 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Invoked when device is unmounted
|
|
||||||
void tud_umount_cb(void)
|
|
||||||
{
|
|
||||||
xTimerChangePeriod(blink_tm, pdMS_TO_TICKS(BLINK_NOT_MOUNTED), 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Invoked when usb bus is suspended
|
|
||||||
// remote_wakeup_en : if host allow us to perform remote wakeup
|
|
||||||
// Within 7ms, device must draw an average of current less than 2.5 mA from bus
|
|
||||||
void tud_suspend_cb(bool remote_wakeup_en)
|
|
||||||
{
|
|
||||||
(void) remote_wakeup_en;
|
|
||||||
xTimerChangePeriod(blink_tm, pdMS_TO_TICKS(BLINK_SUSPENDED), 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Invoked when usb bus is resumed
|
|
||||||
void tud_resume_cb(void)
|
|
||||||
{
|
|
||||||
xTimerChangePeriod(blink_tm, pdMS_TO_TICKS(BLINK_MOUNTED), 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
//--------------------------------------------------------------------+
|
//--------------------------------------------------------------------+
|
||||||
// BLINKING TASK
|
// BLINKING TASK
|
||||||
//--------------------------------------------------------------------+
|
//--------------------------------------------------------------------+
|
||||||
|
@ -21,7 +21,6 @@
|
|||||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
* THE SOFTWARE.
|
* THE SOFTWARE.
|
||||||
*
|
*
|
||||||
* This file is part of the TinyUSB stack.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "bsp/board.h"
|
#include "bsp/board.h"
|
||||||
|
@ -21,7 +21,6 @@
|
|||||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
* THE SOFTWARE.
|
* THE SOFTWARE.
|
||||||
*
|
*
|
||||||
* This file is part of the TinyUSB stack.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef _TUSB_CONFIG_H_
|
#ifndef _TUSB_CONFIG_H_
|
||||||
@ -113,7 +112,7 @@
|
|||||||
* This will occupies 256 bytes of ROM. It will also enable the use of extra APIs
|
* This will occupies 256 bytes of ROM. It will also enable the use of extra APIs
|
||||||
* - tud_hid_keyboard_send_char()
|
* - tud_hid_keyboard_send_char()
|
||||||
*/
|
*/
|
||||||
#define CFG_TUD_HID_ASCII_TO_KEYCODE_LOOKUP 1
|
#define CFG_TUD_HID_ASCII_TO_KEYCODE_LOOKUP 0
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
|
@ -21,7 +21,6 @@
|
|||||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
* THE SOFTWARE.
|
* THE SOFTWARE.
|
||||||
*
|
*
|
||||||
* This file is part of the TinyUSB stack.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "tusb.h"
|
#include "tusb.h"
|
||||||
@ -68,6 +67,7 @@ tusb_desc_device_t const desc_device =
|
|||||||
};
|
};
|
||||||
|
|
||||||
//------------- HID Report Descriptor -------------//
|
//------------- HID Report Descriptor -------------//
|
||||||
|
#if CFG_TUD_HID
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
REPORT_ID_KEYBOARD = 1,
|
REPORT_ID_KEYBOARD = 1,
|
||||||
@ -79,6 +79,7 @@ uint8_t const desc_hid_report[] =
|
|||||||
HID_REPORT_DESC_KEYBOARD( HID_REPORT_ID(REPORT_ID_KEYBOARD), ),
|
HID_REPORT_DESC_KEYBOARD( HID_REPORT_ID(REPORT_ID_KEYBOARD), ),
|
||||||
HID_REPORT_DESC_MOUSE ( HID_REPORT_ID(REPORT_ID_MOUSE), )
|
HID_REPORT_DESC_MOUSE ( HID_REPORT_ID(REPORT_ID_MOUSE), )
|
||||||
};
|
};
|
||||||
|
#endif
|
||||||
|
|
||||||
//------------- Configuration Descriptor -------------//
|
//------------- Configuration Descriptor -------------//
|
||||||
enum
|
enum
|
||||||
@ -101,7 +102,7 @@ enum
|
|||||||
|
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
CONFIG_DESC_LEN = sizeof(tusb_desc_configuration_t) + CFG_TUD_CDC*TUD_CDC_DESC_LEN + CFG_TUD_MSC*TUD_MSC_DESC_LEN + CFG_TUD_HID*TUD_HID_DESC_LEN
|
CONFIG_TOTAL_LEN = TUD_CONFIG_DESC_LEN + CFG_TUD_CDC*TUD_CDC_DESC_LEN + CFG_TUD_MSC*TUD_MSC_DESC_LEN + CFG_TUD_HID*TUD_HID_DESC_LEN
|
||||||
};
|
};
|
||||||
|
|
||||||
#if CFG_TUSB_MCU == OPT_MCU_LPC175X_6X || CFG_TUSB_MCU == OPT_MCU_LPC177X_8X || CFG_TUSB_MCU == OPT_MCU_LPC40XX
|
#if CFG_TUSB_MCU == OPT_MCU_LPC175X_6X || CFG_TUSB_MCU == OPT_MCU_LPC177X_8X || CFG_TUSB_MCU == OPT_MCU_LPC40XX
|
||||||
@ -117,7 +118,7 @@ enum
|
|||||||
uint8_t const desc_configuration[] =
|
uint8_t const desc_configuration[] =
|
||||||
{
|
{
|
||||||
// Config: self-powered with remote wakeup support, max power up to 100 mA
|
// Config: self-powered with remote wakeup support, max power up to 100 mA
|
||||||
TUD_CONFIG_DESCRIPTOR(ITF_NUM_TOTAL, 0, CONFIG_DESC_LEN, TUSB_DESC_CONFIG_ATT_REMOTE_WAKEUP, 100),
|
TUD_CONFIG_DESCRIPTOR(ITF_NUM_TOTAL, 0, CONFIG_TOTAL_LEN, TUSB_DESC_CONFIG_ATT_REMOTE_WAKEUP, 100),
|
||||||
|
|
||||||
#if CFG_TUD_CDC
|
#if CFG_TUD_CDC
|
||||||
TUD_CDC_DESCRIPTOR(ITF_NUM_CDC, 4, 0x81, 8, 0x02, 0x82, 64),
|
TUD_CDC_DESCRIPTOR(ITF_NUM_CDC, 4, 0x81, 8, 0x02, 0x82, 64),
|
||||||
@ -167,5 +168,7 @@ tud_desc_set_t tud_desc_set =
|
|||||||
.string_arr = (uint8_t const **) string_desc_arr,
|
.string_arr = (uint8_t const **) string_desc_arr,
|
||||||
.string_count = sizeof(string_desc_arr)/sizeof(string_desc_arr[0]),
|
.string_count = sizeof(string_desc_arr)/sizeof(string_desc_arr[0]),
|
||||||
|
|
||||||
|
#if CFG_TUD_HID
|
||||||
.hid_report = desc_hid_report,
|
.hid_report = desc_hid_report,
|
||||||
|
#endif
|
||||||
};
|
};
|
||||||
|
@ -94,38 +94,6 @@ ATTR_WEAK void tud_cdc_rx_wanted_cb(uint8_t itf, char wanted_char);
|
|||||||
ATTR_WEAK void tud_cdc_line_state_cb(uint8_t itf, bool dtr, bool rts);
|
ATTR_WEAK void tud_cdc_line_state_cb(uint8_t itf, bool dtr, bool rts);
|
||||||
ATTR_WEAK void tud_cdc_line_coding_cb(uint8_t itf, cdc_line_coding_t const* p_line_coding);
|
ATTR_WEAK void tud_cdc_line_coding_cb(uint8_t itf, cdc_line_coding_t const* p_line_coding);
|
||||||
|
|
||||||
//--------------------------------------------------------------------+
|
|
||||||
// Interface Descriptor Template
|
|
||||||
//--------------------------------------------------------------------+
|
|
||||||
|
|
||||||
// Length of template descriptor: 66 bytes
|
|
||||||
#define TUD_CDC_DESC_LEN (8+9+5+5+4+5+7+9+7+7)
|
|
||||||
|
|
||||||
// CDC Descriptor Template
|
|
||||||
// interface number, string index, EP notification address and size, EP data address (out,in) and size.
|
|
||||||
#define TUD_CDC_DESCRIPTOR(_itfnum, _stridx, _ep_notif, _ep_notif_size, _epout, _epin, _epsize) \
|
|
||||||
/* Interface Associate */\
|
|
||||||
8, TUSB_DESC_INTERFACE_ASSOCIATION, _itfnum, 2, TUSB_CLASS_CDC, CDC_COMM_SUBCLASS_ABSTRACT_CONTROL_MODEL, CDC_COMM_PROTOCOL_ATCOMMAND, 0,\
|
|
||||||
/* CDC Control Interface */\
|
|
||||||
9, TUSB_DESC_INTERFACE, _itfnum, 0, 1, TUSB_CLASS_CDC, CDC_COMM_SUBCLASS_ABSTRACT_CONTROL_MODEL, CDC_COMM_PROTOCOL_ATCOMMAND, _stridx,\
|
|
||||||
/* CDC Header */\
|
|
||||||
5, TUSB_DESC_CLASS_SPECIFIC, CDC_FUNC_DESC_HEADER, U16_TO_U8S_LE(0x0120),\
|
|
||||||
/* CDC Call */\
|
|
||||||
5, TUSB_DESC_CLASS_SPECIFIC, CDC_FUNC_DESC_CALL_MANAGEMENT, 0, (_itfnum) + 1,\
|
|
||||||
/* CDC ACM: support line request */\
|
|
||||||
4, TUSB_DESC_CLASS_SPECIFIC, CDC_FUNC_DESC_ABSTRACT_CONTROL_MANAGEMENT, 2,\
|
|
||||||
/* CDC Union */\
|
|
||||||
5, TUSB_DESC_CLASS_SPECIFIC, CDC_FUNC_DESC_UNION, _itfnum, (_itfnum) + 1,\
|
|
||||||
/* Endpoint Notification */\
|
|
||||||
7, TUSB_DESC_ENDPOINT, _ep_notif, TUSB_XFER_INTERRUPT, U16_TO_U8S_LE(_ep_notif_size), 16,\
|
|
||||||
/* CDC Data Interface */\
|
|
||||||
9, TUSB_DESC_INTERFACE, (_itfnum)+1, 0, 2, TUSB_CLASS_CDC_DATA, 0, 0, 0,\
|
|
||||||
/* Endpoint Out */\
|
|
||||||
7, TUSB_DESC_ENDPOINT, _epout, TUSB_XFER_BULK, U16_TO_U8S_LE(_epsize), 0,\
|
|
||||||
/* Endpoint In */\
|
|
||||||
7, TUSB_DESC_ENDPOINT, _epin, TUSB_XFER_BULK, U16_TO_U8S_LE(_epsize), 0
|
|
||||||
|
|
||||||
|
|
||||||
/** @} */
|
/** @} */
|
||||||
/** @} */
|
/** @} */
|
||||||
|
|
||||||
|
@ -111,20 +111,6 @@ static inline bool tud_hid_mouse_button_release(uint8_t report_id)
|
|||||||
return tud_hid_mouse_report(report_id, 0, 0, 0, 0, 0);
|
return tud_hid_mouse_report(report_id, 0, 0, 0, 0, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------+
|
|
||||||
// Interface Descriptor Template
|
|
||||||
//--------------------------------------------------------------------+
|
|
||||||
|
|
||||||
#define TUD_HID_DESC_LEN (9 + 9 + 7)
|
|
||||||
|
|
||||||
#define TUD_HID_DESCRIPTOR(_itfnum, _stridx, _boot_protocol, _report_desc_len, _epin, _epsize, _ep_interval) \
|
|
||||||
/* Interface */\
|
|
||||||
9, TUSB_DESC_INTERFACE, _itfnum, 0, 1, TUSB_CLASS_HID, (_boot_protocol) ? HID_SUBCLASS_BOOT : 0, _boot_protocol, _stridx,\
|
|
||||||
/* HID descriptor */\
|
|
||||||
9, HID_DESC_TYPE_HID, U16_TO_U8S_LE(0x0111), 0, 1, HID_DESC_TYPE_REPORT, U16_TO_U8S_LE(_report_desc_len),\
|
|
||||||
/* Endpoint descriptor */\
|
|
||||||
7, TUSB_DESC_ENDPOINT, _epin, TUSB_XFER_INTERRUPT, U16_TO_U8S_LE(_epsize), _ep_interval
|
|
||||||
|
|
||||||
/* --------------------------------------------------------------------+
|
/* --------------------------------------------------------------------+
|
||||||
* HID Report Descriptor Template
|
* HID Report Descriptor Template
|
||||||
*
|
*
|
||||||
|
@ -146,23 +146,6 @@ ATTR_WEAK void tud_msc_scsi_complete_cb(uint8_t lun, uint8_t const scsi_cmd[16])
|
|||||||
// Hook to make a mass storage device read-only. TODO remove
|
// Hook to make a mass storage device read-only. TODO remove
|
||||||
ATTR_WEAK bool tud_msc_is_writable_cb(uint8_t lun);
|
ATTR_WEAK bool tud_msc_is_writable_cb(uint8_t lun);
|
||||||
|
|
||||||
//--------------------------------------------------------------------+
|
|
||||||
// Interface Descriptor Template
|
|
||||||
//--------------------------------------------------------------------+
|
|
||||||
|
|
||||||
// Length of template descriptor: 23 bytes
|
|
||||||
#define TUD_MSC_DESC_LEN (9 + 7 + 7)
|
|
||||||
|
|
||||||
// Interface Number, EP Out & EP In address
|
|
||||||
#define TUD_MSC_DESCRIPTOR(_itfnum, _stridx, _epout, _epin, _epsize) \
|
|
||||||
/* Interface */\
|
|
||||||
9, TUSB_DESC_INTERFACE, _itfnum, 0, 2, TUSB_CLASS_MSC, MSC_SUBCLASS_SCSI, MSC_PROTOCOL_BOT, _stridx,\
|
|
||||||
/* Endpoint Out */\
|
|
||||||
7, TUSB_DESC_ENDPOINT, _epout, TUSB_XFER_BULK, U16_TO_U8S_LE(_epsize), 0,\
|
|
||||||
/* Endpoint In */\
|
|
||||||
7, TUSB_DESC_ENDPOINT, _epin, TUSB_XFER_BULK, U16_TO_U8S_LE(_epsize), 0
|
|
||||||
|
|
||||||
|
|
||||||
/** @} */
|
/** @} */
|
||||||
/** @} */
|
/** @} */
|
||||||
|
|
||||||
|
@ -95,9 +95,69 @@ ATTR_WEAK void tud_resume_cb(void);
|
|||||||
// Interface Descriptor Template
|
// Interface Descriptor Template
|
||||||
//--------------------------------------------------------------------+
|
//--------------------------------------------------------------------+
|
||||||
|
|
||||||
|
#define TUD_CONFIG_DESC_LEN (9)
|
||||||
|
|
||||||
|
// Inteface count, string index, total length, attribute, power in mA
|
||||||
#define TUD_CONFIG_DESCRIPTOR(_itfcount, _stridx, _total_len, _attribute, _power_ma) \
|
#define TUD_CONFIG_DESCRIPTOR(_itfcount, _stridx, _total_len, _attribute, _power_ma) \
|
||||||
9, TUSB_DESC_CONFIGURATION, U16_TO_U8S_LE(_total_len), _itfcount, 1, _stridx, TU_BIT(7) | _attribute, (_power_ma)/2
|
9, TUSB_DESC_CONFIGURATION, U16_TO_U8S_LE(_total_len), _itfcount, 1, _stridx, TU_BIT(7) | _attribute, (_power_ma)/2
|
||||||
|
|
||||||
|
//------------- CDC -------------//
|
||||||
|
|
||||||
|
// Length of template descriptor: 66 bytes
|
||||||
|
#define TUD_CDC_DESC_LEN (8+9+5+5+4+5+7+9+7+7)
|
||||||
|
|
||||||
|
// CDC Descriptor Template
|
||||||
|
// interface number, string index, EP notification address and size, EP data address (out,in) and size.
|
||||||
|
#define TUD_CDC_DESCRIPTOR(_itfnum, _stridx, _ep_notif, _ep_notif_size, _epout, _epin, _epsize) \
|
||||||
|
/* Interface Associate */\
|
||||||
|
8, TUSB_DESC_INTERFACE_ASSOCIATION, _itfnum, 2, TUSB_CLASS_CDC, CDC_COMM_SUBCLASS_ABSTRACT_CONTROL_MODEL, CDC_COMM_PROTOCOL_ATCOMMAND, 0,\
|
||||||
|
/* CDC Control Interface */\
|
||||||
|
9, TUSB_DESC_INTERFACE, _itfnum, 0, 1, TUSB_CLASS_CDC, CDC_COMM_SUBCLASS_ABSTRACT_CONTROL_MODEL, CDC_COMM_PROTOCOL_ATCOMMAND, _stridx,\
|
||||||
|
/* CDC Header */\
|
||||||
|
5, TUSB_DESC_CLASS_SPECIFIC, CDC_FUNC_DESC_HEADER, U16_TO_U8S_LE(0x0120),\
|
||||||
|
/* CDC Call */\
|
||||||
|
5, TUSB_DESC_CLASS_SPECIFIC, CDC_FUNC_DESC_CALL_MANAGEMENT, 0, (_itfnum) + 1,\
|
||||||
|
/* CDC ACM: support line request */\
|
||||||
|
4, TUSB_DESC_CLASS_SPECIFIC, CDC_FUNC_DESC_ABSTRACT_CONTROL_MANAGEMENT, 2,\
|
||||||
|
/* CDC Union */\
|
||||||
|
5, TUSB_DESC_CLASS_SPECIFIC, CDC_FUNC_DESC_UNION, _itfnum, (_itfnum) + 1,\
|
||||||
|
/* Endpoint Notification */\
|
||||||
|
7, TUSB_DESC_ENDPOINT, _ep_notif, TUSB_XFER_INTERRUPT, U16_TO_U8S_LE(_ep_notif_size), 16,\
|
||||||
|
/* CDC Data Interface */\
|
||||||
|
9, TUSB_DESC_INTERFACE, (_itfnum)+1, 0, 2, TUSB_CLASS_CDC_DATA, 0, 0, 0,\
|
||||||
|
/* Endpoint Out */\
|
||||||
|
7, TUSB_DESC_ENDPOINT, _epout, TUSB_XFER_BULK, U16_TO_U8S_LE(_epsize), 0,\
|
||||||
|
/* Endpoint In */\
|
||||||
|
7, TUSB_DESC_ENDPOINT, _epin, TUSB_XFER_BULK, U16_TO_U8S_LE(_epsize), 0
|
||||||
|
|
||||||
|
//------------- MSC -------------//
|
||||||
|
|
||||||
|
// Length of template descriptor: 23 bytes
|
||||||
|
#define TUD_MSC_DESC_LEN (9 + 7 + 7)
|
||||||
|
|
||||||
|
// Interface number, string index, EP Out & EP In address, EP size
|
||||||
|
#define TUD_MSC_DESCRIPTOR(_itfnum, _stridx, _epout, _epin, _epsize) \
|
||||||
|
/* Interface */\
|
||||||
|
9, TUSB_DESC_INTERFACE, _itfnum, 0, 2, TUSB_CLASS_MSC, MSC_SUBCLASS_SCSI, MSC_PROTOCOL_BOT, _stridx,\
|
||||||
|
/* Endpoint Out */\
|
||||||
|
7, TUSB_DESC_ENDPOINT, _epout, TUSB_XFER_BULK, U16_TO_U8S_LE(_epsize), 0,\
|
||||||
|
/* Endpoint In */\
|
||||||
|
7, TUSB_DESC_ENDPOINT, _epin, TUSB_XFER_BULK, U16_TO_U8S_LE(_epsize), 0
|
||||||
|
|
||||||
|
//------------- HID -------------//
|
||||||
|
|
||||||
|
// Length of template descriptor: 25 bytes
|
||||||
|
#define TUD_HID_DESC_LEN (9 + 9 + 7)
|
||||||
|
|
||||||
|
// Interface number, string index, protocol, report descriptor len, EP In address, size & polling interval
|
||||||
|
#define TUD_HID_DESCRIPTOR(_itfnum, _stridx, _boot_protocol, _report_desc_len, _epin, _epsize, _ep_interval) \
|
||||||
|
/* Interface */\
|
||||||
|
9, TUSB_DESC_INTERFACE, _itfnum, 0, 1, TUSB_CLASS_HID, (_boot_protocol) ? HID_SUBCLASS_BOOT : 0, _boot_protocol, _stridx,\
|
||||||
|
/* HID descriptor */\
|
||||||
|
9, HID_DESC_TYPE_HID, U16_TO_U8S_LE(0x0111), 0, 1, HID_DESC_TYPE_REPORT, U16_TO_U8S_LE(_report_desc_len),\
|
||||||
|
/* Endpoint descriptor */\
|
||||||
|
7, TUSB_DESC_ENDPOINT, _epin, TUSB_XFER_INTERRUPT, U16_TO_U8S_LE(_epsize), _ep_interval
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
x
Reference in New Issue
Block a user