parent
f8d6bbe43b
commit
a39d170672
|
@ -32,13 +32,13 @@ The stack supports the following MCUs:
|
||||||
|
|
||||||
- **MicroChip:** SAMD21, SAMD51 (device only)
|
- **MicroChip:** SAMD21, SAMD51 (device only)
|
||||||
- **Nordic:** nRF52840, nRF52833
|
- **Nordic:** nRF52840, nRF52833
|
||||||
|
- **Nuvoton:** NUC120, NUC121/NUC125, NUC126, NUC505
|
||||||
- **NXP:**
|
- **NXP:**
|
||||||
- LPC Series: 11Uxx, 13xx, 175x_6x, 177x_8x, 18xx, 40xx, 43xx, 51Uxx, 54xxx, 55xx
|
- LPC Series: 11Uxx, 13xx, 175x_6x, 177x_8x, 18xx, 40xx, 43xx, 51Uxx, 54xxx, 55xx
|
||||||
- iMX RT Series: RT1011, RT1015, RT1021, RT1052, RT1062, RT1064
|
- iMX RT Series: RT1011, RT1015, RT1021, RT1052, RT1062, RT1064
|
||||||
- **Sony:** CXD56
|
- **Sony:** CXD56
|
||||||
- **ST:** STM32 series: L0, F0, F1, F2, F3, F4, F7, H7 (device only)
|
- **ST:** STM32 series: L0, F0, F1, F2, F3, F4, F7, H7 (device only)
|
||||||
- **[ValentyUSB](https://github.com/im-tomu/valentyusb)** eptri
|
- **[ValentyUSB](https://github.com/im-tomu/valentyusb)** eptri
|
||||||
- **Nuvoton:** NUC120, NUC121/NUC125, NUC126, NUC505
|
|
||||||
|
|
||||||
[Here is the list of supported Boards](docs/boards.md) that can be used with provided examples.
|
[Here is the list of supported Boards](docs/boards.md) that can be used with provided examples.
|
||||||
|
|
||||||
|
|
|
@ -33,12 +33,6 @@
|
||||||
nomenclature of EPA through EPL.
|
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"
|
#include "tusb_option.h"
|
||||||
|
|
||||||
#if TUSB_OPT_DEVICE_ENABLED && (CFG_TUSB_MCU == OPT_MCU_NUC505)
|
#if TUSB_OPT_DEVICE_ENABLED && (CFG_TUSB_MCU == OPT_MCU_NUC505)
|
||||||
|
@ -46,6 +40,14 @@
|
||||||
#include "device/dcd.h"
|
#include "device/dcd.h"
|
||||||
#include "NUC505Series.h"
|
#include "NUC505Series.h"
|
||||||
|
|
||||||
|
/*
|
||||||
|
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.
|
||||||
|
Disable for now, we could implement a walk-around if non-DMA slow the MCU down
|
||||||
|
too much.
|
||||||
|
*/
|
||||||
|
#define USE_DMA 0
|
||||||
|
|
||||||
/* rather important info unfortunately not provided by device include files */
|
/* rather important info unfortunately not provided by device include files */
|
||||||
#define USBD_BUF_SIZE 2048 /* how much USB buffer space there is */
|
#define USBD_BUF_SIZE 2048 /* how much USB buffer space there is */
|
||||||
#define USBD_MAX_DMA_LEN 0x1000 /* max bytes that can be DMAed at one time */
|
#define USBD_MAX_DMA_LEN 0x1000 /* max bytes that can be DMAed at one time */
|
||||||
|
@ -217,7 +219,7 @@ static void bus_reset(void)
|
||||||
current_dma_xfer = NULL;
|
current_dma_xfer = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef OPT_MCU_NUC505_USB_DMA
|
#if USE_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) */
|
/* 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)
|
static void service_dma(void)
|
||||||
{
|
{
|
||||||
|
@ -473,7 +475,7 @@ void USBD_IRQHandler(void)
|
||||||
|
|
||||||
if (bus_state & USBD_BUSINTSTS_DMADONEIF_Msk)
|
if (bus_state & USBD_BUSINTSTS_DMADONEIF_Msk)
|
||||||
{
|
{
|
||||||
#ifdef OPT_MCU_NUC505_USB_DMA
|
#if USE_DMA
|
||||||
if (current_dma_xfer)
|
if (current_dma_xfer)
|
||||||
{
|
{
|
||||||
current_dma_xfer->dma_requested = false;
|
current_dma_xfer->dma_requested = false;
|
||||||
|
@ -607,7 +609,7 @@ void USBD_IRQHandler(void)
|
||||||
|
|
||||||
if (out_ep)
|
if (out_ep)
|
||||||
{
|
{
|
||||||
#ifdef OPT_MCU_NUC505_USB_DMA
|
#if USE_DMA
|
||||||
xfer->dma_requested = true;
|
xfer->dma_requested = true;
|
||||||
service_dma();
|
service_dma();
|
||||||
#else
|
#else
|
||||||
|
|
Loading…
Reference in New Issue