diff options
Diffstat (limited to 'tinyusb')
| -rw-r--r-- | tinyusb/common/common.h | 43 | ||||
| -rw-r--r-- | tinyusb/common/fifo.h | 2 | ||||
| -rw-r--r-- | tinyusb/device/dcd.c | 9 | ||||
| -rw-r--r-- | tinyusb/doxygen/license.md (renamed from tinyusb/license.md) | 0 | ||||
| -rw-r--r-- | tinyusb/doxygen/overview.md (renamed from tinyusb/overview.md) | 0 | ||||
| -rw-r--r-- | tinyusb/hal/hal.h | 18 | ||||
| -rw-r--r-- | tinyusb/hal/hal_lpc11uxx.h | 80 | ||||
| -rw-r--r-- | tinyusb/hal/hal_lpc13uxx.h | 79 |
8 files changed, 208 insertions, 23 deletions
diff --git a/tinyusb/common/common.h b/tinyusb/common/common.h index e3db0d033..a10f31995 100644 --- a/tinyusb/common/common.h +++ b/tinyusb/common/common.h @@ -71,29 +71,42 @@ #include "core/std_descriptors.h" /// min value -#ifndef MIN -#define MIN(x, y) (((x) < (y)) ? (x) : (y)) -#endif +#define MIN_(x, y) (((x) < (y)) ? (x) : (y)) /// max value -#ifndef MAX -#define MAX(x, y) (((x) > (y)) ? (x) : (y)) -#endif +#define MAX_(x, y) (((x) > (y)) ? (x) : (y)) /// n-th Bit -#ifndef BIT -#define BIT(n) (1 << (n)) -#endif +#define BIT_(n) (1 << (n)) /// set n-th bit of x to 1 -#ifndef BIT_SET -#define BIT_SET(x, n) ( (x) | BIT(n) ) -#endif +#define BIT_SET_(x, n) ( (x) | BIT_(n) ) /// clear n-th bit of x -#ifndef BIT_CLR -#define BIT_CLR(x, n) ( (x) & (~BIT(n)) ) -#endif +#define BIT_CLR_(x, n) ( (x) & (~BIT_(n)) ) + +/// add hex represenation +#define HEX_(n) 0x##n##LU + +// internal macro of B8, B16, B32 +#define _B8__(x) ((x&0x0000000FLU)?1:0) \ + +((x&0x000000F0LU)?2:0) \ + +((x&0x00000F00LU)?4:0) \ + +((x&0x0000F000LU)?8:0) \ + +((x&0x000F0000LU)?16:0) \ + +((x&0x00F00000LU)?32:0) \ + +((x&0x0F000000LU)?64:0) \ + +((x&0xF0000000LU)?128:0) + +#define B8_(d) ((unsigned char)_B8__(HEX_(d))) +#define B16_(dmsb,dlsb) (((unsigned short)B8(dmsb)<<8) + B8(dlsb)) +#define B32_(dmsb,db2,db3,dlsb) \ + (((unsigned long)B8(dmsb)<<24) \ + + ((unsigned long)B8(db2)<<16) \ + + ((unsigned long)B8(db3)<<8) \ + + B8(dlsb)) + + //#if ( defined CFG_PRINTF_UART || defined CFG_PRINTF_USBCDC || defined CFG_PRINTF_DEBUG ) #if CFG_TUSB_DEBUG_LEVEL diff --git a/tinyusb/common/fifo.h b/tinyusb/common/fifo.h index d9e8389f1..7f8312e1f 100644 --- a/tinyusb/common/fifo.h +++ b/tinyusb/common/fifo.h @@ -74,7 +74,7 @@ void fifo_init(fifo_t* f, uint8_t* buffer, uint16_t size, bool overwritable, IRQ bool fifo_write(fifo_t* f, uint8_t data); bool fifo_read(fifo_t* f, uint8_t *data); uint16_t fifo_readArray(fifo_t* f, uint8_t * rx, uint16_t maxlen); -void fifo_clear(fifo_t*); +void fifo_clear(fifo_t *f); static inline bool fifo_isEmpty(fifo_t* f) { diff --git a/tinyusb/device/dcd.c b/tinyusb/device/dcd.c index 0310e7643..ee4ce361c 100644 --- a/tinyusb/device/dcd.c +++ b/tinyusb/device/dcd.c @@ -135,13 +135,8 @@ TUSB_Error_t dcd_init(uint8_t coreid) &membase , &memsize) ); #endif - // FIXME abstract to hal - /* Enable the USB interrupt */ -#if MCU == MCU_LPC13UXX - NVIC_EnableIRQ(USB_IRQ_IRQn); -#elif MCU == MCU_LPC11UXX - NVIC_EnableIRQ(USB_IRQn); -#endif + hal_interrupt_enable(); /* Enable the USB interrupt */ + /* Perform USB soft connect */ USBD_API->hw->Connect(g_hUsb, 1); #endif diff --git a/tinyusb/license.md b/tinyusb/doxygen/license.md index 51aa2be2d..51aa2be2d 100644 --- a/tinyusb/license.md +++ b/tinyusb/doxygen/license.md diff --git a/tinyusb/overview.md b/tinyusb/doxygen/overview.md index 695690143..695690143 100644 --- a/tinyusb/overview.md +++ b/tinyusb/doxygen/overview.md diff --git a/tinyusb/hal/hal.h b/tinyusb/hal/hal.h index 4229f6ea1..10fcc6155 100644 --- a/tinyusb/hal/hal.h +++ b/tinyusb/hal/hal.h @@ -55,6 +55,7 @@ extern "C" { #endif +#include "common/compiler/compiler.h" #include "common/errors.h" /** \brief USB hardware init @@ -66,6 +67,23 @@ */ TUSB_Error_t hal_init(); +/** + * Enable USB Interrupt + */ +static inline void hal_interrupt_enable() ATTR_ALWAYS_INLINE; + +/** + * Disable USB Interrupt + */ +static inline void hal_interrupt_disable() ATTR_ALWAYS_INLINE; + +#if MCU == MCU_LPC11UXX + #include "hal_lpc11uxx.h" +#elif MCU == MCU_LPC13UXX + #include "hal_lpc13uxx.h" +#elif MCU == MCU_LPC43XX + +#endif #ifdef __cplusplus } #endif diff --git a/tinyusb/hal/hal_lpc11uxx.h b/tinyusb/hal/hal_lpc11uxx.h new file mode 100644 index 000000000..f65f95ad0 --- /dev/null +++ b/tinyusb/hal/hal_lpc11uxx.h @@ -0,0 +1,80 @@ +/* + * hal_lpc11uxx.h + * + * Created on: Dec 10, 2012 + * Author: hathach + */ + +/* + * Software License Agreement (BSD License) + * Copyright (c) 2012, hathach (tinyusb.net) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the tiny usb stack. + */ + +/** \file + * \brief TBD + * + * \note TBD + */ + +/** \ingroup TBD + * \defgroup TBD + * \brief TBD + * + * @{ + */ + +#ifndef _TUSB_HAL_LPC11UXX_H_ +#define _TUSB_HAL_LPC11UXX_H_ + +#include "common/mcu/mcu.h" + +#ifdef __cplusplus + extern "C" { +#endif + + +static inline void hal_interrupt_enable() +{ + NVIC_EnableIRQ(USB_IRQn); +} + +/** + * Disable USB Interrupt + */ +static inline void hal_interrupt_disable() +{ + NVIC_DisableIRQ(USB_IRQn); +} + +#ifdef __cplusplus + } +#endif + +#endif /* _TUSB_HAL_LPC11UXX_H_ */ + +/** @} */ diff --git a/tinyusb/hal/hal_lpc13uxx.h b/tinyusb/hal/hal_lpc13uxx.h new file mode 100644 index 000000000..795782fc3 --- /dev/null +++ b/tinyusb/hal/hal_lpc13uxx.h @@ -0,0 +1,79 @@ +/* + * hal_lpc13uxx.h + * + * Created on: Dec 10, 2012 + * Author: hathach + */ + +/* + * Software License Agreement (BSD License) + * Copyright (c) 2012, hathach (tinyusb.net) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the tiny usb stack. + */ + +/** \file + * \brief TBD + * + * \note TBD + */ + +/** \ingroup TBD + * \defgroup TBD + * \brief TBD + * + * @{ + */ + +#ifndef _TUSB_HAL_LPC13UXX_H_ +#define _TUSB_HAL_LPC13UXX_H_ + +#include "common/mcu/mcu.h" + +#ifdef __cplusplus + extern "C" { +#endif + +static inline void hal_interrupt_enable() +{ + NVIC_EnableIRQ(USB_IRQ_IRQn); +} + +/** + * Disable USB Interrupt + */ +static inline void hal_interrupt_disable() +{ + NVIC_DisableIRQ(USB_IRQ_IRQn); +} + +#ifdef __cplusplus + } +#endif + +#endif /* _TUSB_HAL_LPC13UXX_H_ */ + +/** @} */ |
