From 3eb7465e5ee8ea6298fcf134f853174fd9560a4c Mon Sep 17 00:00:00 2001 From: hathach Date: Mon, 10 Dec 2012 14:58:25 +0700 Subject: abstract usb enable/disable interrupt to hal layer --- tinyusb/hal/hal.h | 18 +++++++++++ tinyusb/hal/hal_lpc11uxx.h | 80 ++++++++++++++++++++++++++++++++++++++++++++++ tinyusb/hal/hal_lpc13uxx.h | 79 +++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 177 insertions(+) create mode 100644 tinyusb/hal/hal_lpc11uxx.h create mode 100644 tinyusb/hal/hal_lpc13uxx.h (limited to 'tinyusb/hal') 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_ */ + +/** @} */ -- cgit v1.3.1