From 3e24daac79adc66c3163486d59878cb718a88f32 Mon Sep 17 00:00:00 2001 From: hathach Date: Tue, 14 May 2019 12:03:06 +0700 Subject: [PATCH] remove deprecated tusb_task, clean up tusb compiler --- src/common/compiler/tusb_compiler_gcc.h | 74 ------------------------- src/common/compiler/tusb_compiler_iar.h | 58 ------------------- src/common/tusb_compiler.h | 21 ++++++- src/tusb.h | 14 ----- 4 files changed, 18 insertions(+), 149 deletions(-) delete mode 100644 src/common/compiler/tusb_compiler_gcc.h delete mode 100644 src/common/compiler/tusb_compiler_iar.h diff --git a/src/common/compiler/tusb_compiler_gcc.h b/src/common/compiler/tusb_compiler_gcc.h deleted file mode 100644 index 57c4c3d3..00000000 --- a/src/common/compiler/tusb_compiler_gcc.h +++ /dev/null @@ -1,74 +0,0 @@ -/* - * The MIT License (MIT) - * - * Copyright (c) 2019 Ha Thach (tinyusb.org) - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - * - * This file is part of the TinyUSB stack. - */ - -/** \ingroup Group_Compiler - * \defgroup Group_GCC GNU GCC - * @{ */ - -#ifndef _TUSB_COMPILER_GCC_H_ -#define _TUSB_COMPILER_GCC_H_ - -#ifdef __cplusplus - extern "C" { -#endif - -#define ALIGN_OF(x) __alignof__(x) - -// Specifies a minimum alignment for the variable or structure field, measured in bytes -#define ATTR_ALIGNED(Bytes) __attribute__ ((aligned(Bytes))) - -// Place variable in a specific section -#define ATTR_SECTION(sec_name) __attribute__ (( section(#sec_name) )) - -// Packed struct/variable into smallest possible size -#define ATTR_PACKED __attribute__ ((packed)) -#define ATTR_PREPACKED - -// The deprecated attribute results in a warning if the function is used. -#define ATTR_DEPRECATED(mess) __attribute__ ((deprecated(mess))) - -// The weak attribute causes the declaration to be emitted as a weak symbol rather than a global. -#define ATTR_WEAK __attribute__ ((weak)) - -// Function/Variable is meant to be possibly unused (thus no warning) -#define ATTR_UNUSED __attribute__ ((unused)) - -// TODO mcu specific -#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ -#define __n2be(x) __builtin_bswap32(x) ///< built-in function to convert 32-bit from native to Big Endian -#define __be2n(x) __n2be(x) ///< built-in function to convert 32-bit from Big Endian to native - -#define __n2be_16(u16) __builtin_bswap16(u16) -#define __be2n_16(u16) __n2be_16(u16) -#endif - -#ifdef __cplusplus - } -#endif - -#endif /* _TUSB_COMPILER_GCC_H_ */ - -/// @} diff --git a/src/common/compiler/tusb_compiler_iar.h b/src/common/compiler/tusb_compiler_iar.h deleted file mode 100644 index 93b3b463..00000000 --- a/src/common/compiler/tusb_compiler_iar.h +++ /dev/null @@ -1,58 +0,0 @@ -/* - * The MIT License (MIT) - * - * Copyright (c) 2019 Ha Thach (tinyusb.org) - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - * - * This file is part of the TinyUSB stack. - */ - -#ifndef _TUSB_COMPILER_IAR_H_ -#define _TUSB_COMPILER_IAR_H_ - -#ifdef __cplusplus - extern "C" { -#endif - -#define ALIGN_OF(x) __ALIGNOF__(x) -#define ATTR_ALIGNED(bytes) _Pragma(XSTRING_(data_alignment=##bytes)) -//#define ATTR_SECTION(section) _Pragma((#section)) -#define ATTR_PREPACKED __packed -#define ATTR_PACKED -#define ATTR_DEPRECATED(mess) -#define ATTR_WEAK __weak -#define ATTR_UNUSED - -// built-in function to convert 32-bit Big-Endian to Little-Endian -//#if __LITTLE_ENDIAN__ -#define __be2n __REV -#define __n2be __be2n - -#define __n2be_16(u16) ((uint16_t) __REV16(u16)) -#define __be2n_16(u16) __n2be_16(u16) - -#error "IAR won't work due to '__packed' placement before struct" - -#ifdef __cplusplus - } -#endif - -#endif /* _TUSB_COMPILER_IAR_H_ */ - diff --git a/src/common/tusb_compiler.h b/src/common/tusb_compiler.h index 62708e0e..3ed8e1af 100644 --- a/src/common/tusb_compiler.h +++ b/src/common/tusb_compiler.h @@ -53,9 +53,24 @@ #endif #if defined(__GNUC__) - #include "compiler/tusb_compiler_gcc.h" -#elif defined __ICCARM__ - #include "compiler/tusb_compiler_iar.h" + #define ATTR_ALIGNED(Bytes) __attribute__ ((aligned(Bytes))) + #define ATTR_SECTION(sec_name) __attribute__ ((section(#sec_name))) + #define ATTR_PACKED __attribute__ ((packed)) + #define ATTR_PREPACKED + #define ATTR_WEAK __attribute__ ((weak)) + #define ATTR_DEPRECATED(mess) __attribute__ ((deprecated(mess))) // warn if function with this attribute is used + #define ATTR_UNUSED __attribute__ ((unused)) // Function/Variable is meant to be possibly unused + + #if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ + #define __n2be(x) __builtin_bswap32(x) ///< built-in function to convert 32-bit from native to Big Endian + #define __be2n(x) __n2be(x) ///< built-in function to convert 32-bit from Big Endian to native + + #define __n2be_16(u16) __builtin_bswap16(u16) + #define __be2n_16(u16) __n2be_16(u16) + #endif + +#else + #error "Compiler attribute porting are required" #endif #endif /* _TUSB_COMPILER_H_ */ diff --git a/src/tusb.h b/src/tusb.h index acb10ff5..30642c00 100644 --- a/src/tusb.h +++ b/src/tusb.h @@ -101,20 +101,6 @@ bool tusb_inited(void); // TODO // bool tusb_teardown(void); - -// backward compatible only. TODO remove later -ATTR_DEPRECATED("Please use either tud_task() or tuh_task()") -static inline void tusb_task(void) -{ - #if TUSB_OPT_HOST_ENABLED - tuh_task(); - #endif - - #if TUSB_OPT_DEVICE_ENABLED - tud_task(); - #endif -} - /** @} */ #ifdef __cplusplus