2 * This file is part of Cleanflight.
4 * Cleanflight is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation, either version 3 of the License, or
7 * (at your option) any later version.
9 * Cleanflight is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
14 * You should have received a copy of the GNU General Public License
15 * along with Cleanflight. If not, see <http://www.gnu.org/licenses/>.
20 #define BUILD_BUG_ON(condition) ((void)sizeof(char[1 - 2*!!(condition)]))
23 // make these visible to unit test
24 #define STATIC_UNIT_TESTED
25 #define STATIC_INLINE_UNIT_TESTED
26 #define INLINE_UNIT_TESTED
29 #define STATIC_UNIT_TESTED static
30 #define STATIC_INLINE_UNIT_TESTED static inline
31 #define INLINE_UNIT_TESTED inline
35 //#define SOFT_I2C // enable to test software i2c
38 #define REQUIRE_CC_ARM_PRINTF_SUPPORT
39 #define REQUIRE_PRINTF_LONG_SUPPORT
43 #define FASTRAM __attribute__ ((section("__DATA,__.fastram_bss"), aligned(8)))
45 #define FASTRAM __attribute__ ((section(".fastram_bss"), aligned(4)))
48 #if defined (STM32F4) || defined (STM32F7)
49 #define EXTENDED_FASTRAM FASTRAM
51 #define EXTENDED_FASTRAM
55 #define DMA_RAM __attribute__ ((section(".DMA_RAM")))
56 #define SLOW_RAM __attribute__ ((section(".SLOW_RAM")))
57 #elif defined (AT32F43x)
58 #define DMA_RAM __attribute__ ((section(".DMA_RAM")))
59 #define SLOW_RAM __attribute__ ((section(".SLOW_RAM")))
65 #define STATIC_FASTRAM static FASTRAM
66 #define STATIC_FASTRAM_UNIT_TESTED STATIC_UNIT_TESTED FASTRAM