From c006f3dbce7820bbdc2c1736ba0cb4a4e629f0b6 Mon Sep 17 00:00:00 2001 From: hathach Date: Wed, 1 May 2019 19:29:56 +0700 Subject: adding optional ep out for hid refactor usbd_open_edpt_pair --- src/class/cdc/cdc_device.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) (limited to 'src/class/cdc') diff --git a/src/class/cdc/cdc_device.c b/src/class/cdc/cdc_device.c index c194aacd8..5e0f4e3f7 100644 --- a/src/class/cdc/cdc_device.c +++ b/src/class/cdc/cdc_device.c @@ -289,14 +289,12 @@ bool cdcd_open(uint8_t rhport, tusb_desc_interface_t const * itf_desc, uint16_t (TUSB_CLASS_CDC_DATA == ((tusb_desc_interface_t const *) p_desc)->bInterfaceClass) ) { // next to endpoint descriptor - (*p_length) += tu_desc_len(p_desc); p_desc = tu_desc_next(p_desc); - // Open endpoint pair with usbd helper - tusb_desc_endpoint_t const *p_desc_ep = (tusb_desc_endpoint_t const *) p_desc; - TU_ASSERT( usbd_open_edpt_pair(rhport, p_desc_ep, TUSB_XFER_BULK, &p_cdc->ep_out, &p_cdc->ep_in) ); + // Open endpoint pair + TU_ASSERT( usbd_open_edpt_pair(rhport, p_desc, 2, TUSB_XFER_BULK, &p_cdc->ep_out, &p_cdc->ep_in) ); - (*p_length) += 2*sizeof(tusb_desc_endpoint_t); + (*p_length) += sizeof(tusb_desc_interface_t) + 2*sizeof(tusb_desc_endpoint_t); } // Prepare for incoming data -- cgit v1.3.1 From 205077876380cc63f34c99c559c41ed3a2eaaa81 Mon Sep 17 00:00:00 2001 From: hathach Date: Wed, 1 May 2019 20:41:26 +0700 Subject: clean up --- src/class/cdc/cdc_device.c | 2 +- src/class/msc/msc_device.c | 12 ++++-------- src/portable/nordic/nrf5x/dcd_nrf5x.c | 4 ++-- 3 files changed, 7 insertions(+), 11 deletions(-) (limited to 'src/class/cdc') diff --git a/src/class/cdc/cdc_device.c b/src/class/cdc/cdc_device.c index 5e0f4e3f7..7a0380e6b 100644 --- a/src/class/cdc/cdc_device.c +++ b/src/class/cdc/cdc_device.c @@ -71,7 +71,7 @@ typedef struct //--------------------------------------------------------------------+ // INTERNAL OBJECT & FUNCTION DECLARATION //--------------------------------------------------------------------+ -CFG_TUSB_MEM_SECTION static cdcd_interface_t _cdcd_itf[CFG_TUD_CDC] = { { 0 } }; +CFG_TUSB_MEM_SECTION static cdcd_interface_t _cdcd_itf[CFG_TUD_CDC]; // TODO will be replaced by dcd_edpt_busy() bool pending_read_from_host; diff --git a/src/class/msc/msc_device.c b/src/class/msc/msc_device.c index 1d5a3fc26..f980e941e 100644 --- a/src/class/msc/msc_device.c +++ b/src/class/msc/msc_device.c @@ -42,13 +42,9 @@ enum MSC_STAGE_STATUS }; -typedef struct { - CFG_TUSB_MEM_ALIGN msc_cbw_t cbw; - -//#if defined (__ICCARM__) && (CFG_TUSB_MCU == OPT_MCU_LPC11UXX || CFG_TUSB_MCU == OPT_MCU_LPC13XX) -// uint8_t padding1[64-sizeof(msc_cbw_t)]; // IAR cannot align struct's member -//#endif - +typedef struct +{ + CFG_TUSB_MEM_ALIGN msc_cbw_t cbw; CFG_TUSB_MEM_ALIGN msc_csw_t csw; uint8_t itf_num; @@ -66,7 +62,7 @@ typedef struct { uint8_t add_sense_qualifier; }mscd_interface_t; -CFG_TUSB_MEM_SECTION CFG_TUSB_MEM_ALIGN static mscd_interface_t _mscd_itf = { 0 }; +CFG_TUSB_MEM_SECTION CFG_TUSB_MEM_ALIGN static mscd_interface_t _mscd_itf; CFG_TUSB_MEM_SECTION CFG_TUSB_MEM_ALIGN static uint8_t _mscd_buf[CFG_TUD_MSC_BUFSIZE]; //--------------------------------------------------------------------+ diff --git a/src/portable/nordic/nrf5x/dcd_nrf5x.c b/src/portable/nordic/nrf5x/dcd_nrf5x.c index 1f8e94420..3e5f69f79 100644 --- a/src/portable/nordic/nrf5x/dcd_nrf5x.c +++ b/src/portable/nordic/nrf5x/dcd_nrf5x.c @@ -489,7 +489,7 @@ void USBD_IRQHandler(void) { xfer->total_len = xfer->actual_len; - // BULK/INT OUT complete + // CBI OUT complete dcd_event_xfer_complete(0, epnum, xfer->actual_len, XFER_RESULT_SUCCESS, true); } } @@ -524,7 +524,7 @@ void USBD_IRQHandler(void) xact_in_prepare(epnum); } else { - // Bulk/Int IN complete + // CBI IN complete dcd_event_xfer_complete(0, epnum | TUSB_DIR_IN_MASK, xfer->actual_len, XFER_RESULT_SUCCESS, true); } } -- cgit v1.3.1 From a25ca701cda3e1989bab3add052e82b7a71e5820 Mon Sep 17 00:00:00 2001 From: hathach Date: Wed, 1 May 2019 23:26:52 +0700 Subject: text clean up --- src/class/cdc/cdc_device.h | 8 ++++++++ src/class/msc/msc_device.h | 14 ++++++++------ 2 files changed, 16 insertions(+), 6 deletions(-) (limited to 'src/class/cdc') diff --git a/src/class/cdc/cdc_device.h b/src/class/cdc/cdc_device.h index 6c59bac7a..18d6f842f 100644 --- a/src/class/cdc/cdc_device.h +++ b/src/class/cdc/cdc_device.h @@ -89,9 +89,17 @@ static inline bool tud_cdc_write_flush (void) //--------------------------------------------------------------------+ // APPLICATION CALLBACK API (WEAK is optional) //--------------------------------------------------------------------+ + +// Invoked when received new data ATTR_WEAK void tud_cdc_rx_cb(uint8_t itf); + +// Invoked when received `wanted_char` ATTR_WEAK void tud_cdc_rx_wanted_cb(uint8_t itf, char wanted_char); + +// Invoked when line state DTR & RTS are changed via SET_CONTROL_LINE_STATE ATTR_WEAK void tud_cdc_line_state_cb(uint8_t itf, bool dtr, bool rts); + +// Invoked when line coding is change via SET_LINE_CODING ATTR_WEAK void tud_cdc_line_coding_cb(uint8_t itf, cdc_line_coding_t const* p_line_coding); /** @} */ diff --git a/src/class/msc/msc_device.h b/src/class/msc/msc_device.h index 6e3aef8bb..b1e7e8da1 100644 --- a/src/class/msc/msc_device.h +++ b/src/class/msc/msc_device.h @@ -64,10 +64,11 @@ TU_VERIFY_STATIC(CFG_TUD_MSC_BUFSIZE < UINT16_MAX, "Size is not correct"); bool tud_msc_set_sense(uint8_t lun, uint8_t sense_key, uint8_t add_sense_code, uint8_t add_sense_qualifier); //--------------------------------------------------------------------+ -// APPLICATION CALLBACK (WEAK is optional) +// Application Callbacks (WEAK is optional) //--------------------------------------------------------------------+ + /** - * Callback invoked when received \ref SCSI_CMD_READ_10 command + * Invoked when received \ref SCSI_CMD_READ_10 command * \param[in] lun Logical unit number * \param[in] lba Logical Block Address to be read * \param[in] offset Byte offset from LBA @@ -86,7 +87,7 @@ bool tud_msc_set_sense(uint8_t lun, uint8_t sense_key, uint8_t add_sense_code, u int32_t tud_msc_read10_cb (uint8_t lun, uint32_t lba, uint32_t offset, void* buffer, uint32_t bufsize); /** - * Callback invoked when received \ref SCSI_CMD_WRITE_10 command + * Invoked when received \ref SCSI_CMD_WRITE_10 command * \param[in] lun Logical unit number * \param[in] lba Logical Block Address to be write * \param[in] offset Byte offset from LBA @@ -104,7 +105,8 @@ int32_t tud_msc_read10_cb (uint8_t lun, uint32_t lba, uint32_t offset, void* buf */ int32_t tud_msc_write10_cb (uint8_t lun, uint32_t lba, uint32_t offset, uint8_t* buffer, uint32_t bufsize); -// Invoked to determine the disk size +// Invoked when received SCSI_CMD_READ_CAPACITY_10 and SCSI_CMD_READ_FORMAT_CAPACITY to determine the disk size +// Application update block count and block size void tud_msc_capacity_cb(uint8_t lun, uint32_t* block_count, uint16_t* block_size); /** @@ -128,13 +130,13 @@ int32_t tud_msc_scsi_cb (uint8_t lun, uint8_t const scsi_cmd[16], void* buffer, /*------------- Optional callbacks -------------*/ -// Invoked to determine max LUN +// Invoked when received GET_MAX_LUN request ATTR_WEAK uint8_t tud_msc_maxlun_cb(void); // Invoked when Read10 command is complete ATTR_WEAK void tud_msc_read10_complete_cb(uint8_t lun); -// Invoke when Write10 command is complete +// Invoke when Write10 command is complete, can be used to flush flash caching ATTR_WEAK void tud_msc_write10_complete_cb(uint8_t lun); // Invoked when command in tud_msc_scsi_cb is complete -- cgit v1.3.1