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