summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Lawrence <[email protected]>2020-03-16 13:20:17 -0500
committerPeter Lawrence <[email protected]>2020-03-16 13:20:17 -0500
commitdf05440d92f0d05532476df5f544d00751f03bce (patch)
tree67cb05f23a288613d2eb814ad592004d792088fd
parentfb56c02a6f7cc03b2f9fd970a5b1bc772ccf4795 (diff)
NUC505 : added comment on DMA choice
-rw-r--r--src/portable/nuvoton/nuc505/dcd_nuc505.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/portable/nuvoton/nuc505/dcd_nuc505.c b/src/portable/nuvoton/nuc505/dcd_nuc505.c
index 031bfc5e4..e05e73eff 100644
--- a/src/portable/nuvoton/nuc505/dcd_nuc505.c
+++ b/src/portable/nuvoton/nuc505/dcd_nuc505.c
@@ -33,6 +33,12 @@
nomenclature of EPA through EPL.
*/
+/*
+ Note on OPT_MCU_NUC505_USB_DMA: the author suggests against using this option.
+ The DMA functionality of the USBD peripheral does not appear to succeed with
+ transfer lengths that are longer (> 64 bytes) and are not a multiple of 4.
+*/
+
#include "tusb_option.h"
#if TUSB_OPT_DEVICE_ENABLED && (CFG_TUSB_MCU == OPT_MCU_NUC505)
@@ -211,7 +217,7 @@ static void bus_reset(void)
current_dma_xfer = NULL;
}
-#if 0
+#ifdef OPT_MCU_NUC505_USB_DMA
/* this must only be called by the ISR; it does its best to share the single DMA engine across all user EPs (IN and OUT) */
static void service_dma(void)
{
@@ -467,7 +473,7 @@ void USBD_IRQHandler(void)
if (bus_state & USBD_BUSINTSTS_DMADONEIF_Msk)
{
-#if 0
+#ifdef OPT_MCU_NUC505_USB_DMA
if (current_dma_xfer)
{
current_dma_xfer->dma_requested = false;
@@ -601,7 +607,7 @@ void USBD_IRQHandler(void)
if (out_ep)
{
-#if 0
+#ifdef OPT_MCU_NUC505_USB_DMA
xfer->dma_requested = true;
service_dma();
#else