From 7ee801a2095adacaadb5edd88356031160bfb0dd Mon Sep 17 00:00:00 2001 From: hathach Date: Fri, 2 Mar 2018 18:43:00 +0700 Subject: rename hal.h to tusb_hal.h --- hw/mcu/nxp/lpc43xx/hal_mcu/hal_lpc43xx.c | 6 +- tinyusb/common/assertion.h | 2 +- tinyusb/device/dcd_lpc43xx.c | 2 +- tinyusb/hal/hal.h | 120 ------------------------------ tinyusb/tusb.h | 2 +- tinyusb/tusb_hal.h | 121 +++++++++++++++++++++++++++++++ 6 files changed, 126 insertions(+), 127 deletions(-) delete mode 100644 tinyusb/hal/hal.h create mode 100644 tinyusb/tusb_hal.h diff --git a/hw/mcu/nxp/lpc43xx/hal_mcu/hal_lpc43xx.c b/hw/mcu/nxp/lpc43xx/hal_mcu/hal_lpc43xx.c index 0199934fa..a17918991 100644 --- a/hw/mcu/nxp/lpc43xx/hal_mcu/hal_lpc43xx.c +++ b/hw/mcu/nxp/lpc43xx/hal_mcu/hal_lpc43xx.c @@ -36,13 +36,11 @@ */ /**************************************************************************/ -#include "common/common.h" -#include "hal/hal.h" +#include "hal_mcu.h" +#include "tusb.h" #if TUSB_CFG_MCU == MCU_LPC43XX -#include "LPC43xx.h" -#include "lpc43xx_cgu.h" #include "lpc43xx_scu.h" enum { diff --git a/tinyusb/common/assertion.h b/tinyusb/common/assertion.h index 5d78dcce1..16c9b07e4 100644 --- a/tinyusb/common/assertion.h +++ b/tinyusb/common/assertion.h @@ -54,7 +54,7 @@ extern "C" #include #include "compiler/compiler.h" -#include "hal/hal.h" // TODO find a way to break hal dependency +#include "tusb_hal.h" // TODO find a way to break hal dependency #define VOID_RETURN diff --git a/tinyusb/device/dcd_lpc43xx.c b/tinyusb/device/dcd_lpc43xx.c index a513084c2..3b69b4821 100644 --- a/tinyusb/device/dcd_lpc43xx.c +++ b/tinyusb/device/dcd_lpc43xx.c @@ -45,7 +45,7 @@ // INCLUDE //--------------------------------------------------------------------+ #include "common/common.h" -#include "hal/hal.h" +#include "tusb_hal.h" #include "osal/osal.h" #include "common/timeout_timer.h" diff --git a/tinyusb/hal/hal.h b/tinyusb/hal/hal.h deleted file mode 100644 index ff4c7fca7..000000000 --- a/tinyusb/hal/hal.h +++ /dev/null @@ -1,120 +0,0 @@ -/**************************************************************************/ -/*! - @file hal.h - @author hathach (tinyusb.org) - - @section LICENSE - - Software License Agreement (BSD License) - - Copyright (c) 2013, hathach (tinyusb.org) - 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. Neither the name of the copyright holders nor the - names of its contributors may be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''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 COPYRIGHT HOLDER 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 tinyusb stack. -*/ -/**************************************************************************/ - -#ifndef _TUSB_HAL_H_ -#define _TUSB_HAL_H_ - -//--------------------------------------------------------------------+ -// INCLUDES -//--------------------------------------------------------------------+ -#include "tusb_option.h" -#include -#include - -#include "common/tusb_errors.h" -#include "common/compiler/compiler.h" - -// callback from tusb.h -void tusb_isr(uint8_t coreid); - -//--------------------------------------------------------------------+ -// HAL API -//--------------------------------------------------------------------+ -/** \ingroup group_mcu - * \defgroup group_hal Hardware Abtract Layer (HAL) - * Hardware Abstraction Layer (HAL) is an abstraction layer, between the physical hardware and the tinyusb stack. - * Its function is to hide differences in hardware from most of MCUs, so that most of the stack code does not need to be changed to - * run on systems with a different MCU. - * HAL are sets of routines that emulate some platform-specific details, giving programs direct access to the hardware resources. - * @{ */ - -/** \brief Initialize USB controller hardware - * \returns true if succeedded - * \note This function is invoked by \ref tusb_init as part of the initialization. - */ -bool hal_init(void); - -/** \brief Enable USB Interrupt on a specific USB Controller - * \param[in] coreid is a zero-based index to identify USB controller's ID - * \note Some MCUs such as NXP LPC43xx has multiple USB controllers. It is necessary to know which USB controller for - * those MCUs. - */ -void hal_usb_int_enable(uint8_t coreid); - -/** \brief Disable USB Interrupt on a specific USB Controller - * \param[in] coreid is a zero-based index to identify USB controller's ID - * \note Some MCUs such as NXP LPC43xx has multiple USB controllers. It is necessary to know which USB controller for - * those MCUs. - */ -void hal_usb_int_disable(uint8_t coreid); - -#include "hal_mcu.h" - -#ifdef __cplusplus -extern "C" { -#endif - -static inline bool hal_debugger_is_attached(void) -{ -// TODO check core M3/M4 defined instead -#if !defined(_TEST_) && !(TUSB_CFG_MCU==MCU_LPC11UXX) - return ( (CoreDebug->DHCSR & CoreDebug_DHCSR_C_DEBUGEN_Msk) == CoreDebug_DHCSR_C_DEBUGEN_Msk ); -#elif TUSB_CFG_DEBUG == 3 - return true; // force to break into breakpoint with debug = 3 -#else - return false; -#endif -} - -static inline void hal_debugger_breakpoint(void) -{ -#ifndef _TEST_ - if (hal_debugger_is_attached()) /* if there is debugger connected */ - { - __asm("BKPT #0\n"); - } -#endif -} - -#ifdef __cplusplus - } -#endif - -#endif /* _TUSB_HAL_H_ */ - -/** @} */ diff --git a/tinyusb/tusb.h b/tinyusb/tusb.h index 5eabf0666..84ab07a30 100644 --- a/tinyusb/tusb.h +++ b/tinyusb/tusb.h @@ -47,7 +47,7 @@ // INCLUDE //--------------------------------------------------------------------+ #include "common/common.h" -#include "hal/hal.h" +#include "tusb_hal.h" #include "osal/osal.h" //------------- HOST -------------// diff --git a/tinyusb/tusb_hal.h b/tinyusb/tusb_hal.h new file mode 100644 index 000000000..a99c58ccd --- /dev/null +++ b/tinyusb/tusb_hal.h @@ -0,0 +1,121 @@ +/**************************************************************************/ +/*! + @file hal.h + @author hathach (tinyusb.org) + + @section LICENSE + + Software License Agreement (BSD License) + + Copyright (c) 2013, hathach (tinyusb.org) + 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. Neither the name of the copyright holders nor the + names of its contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''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 COPYRIGHT HOLDER 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 tinyusb stack. +*/ +/**************************************************************************/ + +#ifndef _TUSB_HAL_H_ +#define _TUSB_HAL_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +//--------------------------------------------------------------------+ +// INCLUDES +//--------------------------------------------------------------------+ +#include "tusb_option.h" +#include +#include + +#include "common/tusb_errors.h" +#include "common/compiler/compiler.h" + +// from mcu port +#include "hal_mcu.h" + +//--------------------------------------------------------------------+ +// HAL API +//--------------------------------------------------------------------+ +/** \ingroup group_mcu + * \defgroup group_hal Hardware Abtract Layer (HAL) + * Hardware Abstraction Layer (HAL) is an abstraction layer, between the physical hardware and the tinyusb stack. + * Its function is to hide differences in hardware from most of MCUs, so that most of the stack code does not need to be changed to + * run on systems with a different MCU. + * HAL are sets of routines that emulate some platform-specific details, giving programs direct access to the hardware resources. + * @{ */ + +/** \brief Initialize USB controller hardware + * \returns true if succeedded + * \note This function is invoked by \ref tusb_init as part of the initialization. + */ +bool hal_init(void); + +/** \brief Enable USB Interrupt on a specific USB Controller + * \param[in] coreid is a zero-based index to identify USB controller's ID + * \note Some MCUs such as NXP LPC43xx has multiple USB controllers. It is necessary to know which USB controller for + * those MCUs. + */ +void hal_usb_int_enable(uint8_t coreid); + +/** \brief Disable USB Interrupt on a specific USB Controller + * \param[in] coreid is a zero-based index to identify USB controller's ID + * \note Some MCUs such as NXP LPC43xx has multiple USB controllers. It is necessary to know which USB controller for + * those MCUs. + */ +void hal_usb_int_disable(uint8_t coreid); + + + + +static inline bool hal_debugger_is_attached(void) +{ +// TODO check core M3/M4 defined instead +#if !defined(_TEST_) && !(TUSB_CFG_MCU==MCU_LPC11UXX) + return ( (CoreDebug->DHCSR & CoreDebug_DHCSR_C_DEBUGEN_Msk) == CoreDebug_DHCSR_C_DEBUGEN_Msk ); +#elif TUSB_CFG_DEBUG == 3 + return true; // force to break into breakpoint with debug = 3 +#else + return false; +#endif +} + +static inline void hal_debugger_breakpoint(void) +{ +#ifndef _TEST_ + if (hal_debugger_is_attached()) /* if there is debugger connected */ + { + __asm("BKPT #0\n"); + } +#endif +} + +#ifdef __cplusplus + } +#endif + +#endif /* _TUSB_HAL_H_ */ + +/** @} */ -- cgit v1.3.1