1import os 2 3# toolchains options 4ARCH='arm' 5CPU='cortex-a' 6CROSS_TOOL=os.getenv('RTT_CC') or 'gcc' 7 8# only support GNU GCC compiler. 9PLATFORM = 'gcc' 10EXEC_PATH = os.getenv('RTT_EXEC_PATH') or '/usr/bin' 11 12BUILD = 'debug' 13 14if PLATFORM == 'gcc': 15 # toolchains 16 PREFIX = 'arm-none-eabi-' 17 CC = PREFIX + 'gcc' 18 CXX = PREFIX + 'g++' 19 AS = PREFIX + 'gcc' 20 AR = PREFIX + 'ar' 21 LINK = PREFIX + 'gcc' 22 TARGET_EXT = 'elf' 23 SIZE = PREFIX + 'size' 24 OBJDUMP = PREFIX + 'objdump' 25 OBJCPY = PREFIX + 'objcopy' 26 27 DEVICE = ' -march=armv7-a -mtune=cortex-a9 -mfpu=vfpv3-d16 -ftree-vectorize -ffast-math -mfloat-abi=softfp' 28 CFLAGS = DEVICE + ' -Wall' 29 AFLAGS = ' -c' + DEVICE + ' -x assembler-with-cpp -D__ASSEMBLY__' 30 LINK_SCRIPT = 'link.lds' 31 LFLAGS = DEVICE + ' -Wl,--gc-sections,-Map=rtthread.map,-cref,-u,system_vectors'+\ 32 ' -T %s' % LINK_SCRIPT 33 34 CPATH = '' 35 LPATH = '' 36 37 # generate debug info in all cases 38 AFLAGS += ' -gdwarf-2' 39 CFLAGS += ' -g -gdwarf-2' 40 41 if BUILD == 'debug': 42 CFLAGS += ' -O0' 43 else: 44 CFLAGS += ' -O2' 45 46 POST_ACTION = OBJCPY + ' -O binary $TARGET rtthread.bin\n' +\ 47 SIZE + ' $TARGET \n' 48