1import os 2 3# toolchains options 4ARCH = 'avr32' 5CPU = 'uc3' 6PART = 'uc3a0256' 7BOARD = 'USERBOARD' 8ATOMICS = ' -D__STDC_NO_ATOMICS__' 9 10CROSS_TOOL = 'gcc' 11 12if os.getenv('RTT_CC'): 13 CROSS_TOOL = os.getenv('RTT_CC') 14 15if CROSS_TOOL == 'gcc': 16 PLATFORM = 'gcc' 17 EXEC_PATH = 'C:/Program Files (x86)/Atmel/AVR Tools/AVR Toolchain/bin' 18elif CROSS_TOOL == 'keil': 19 print('================ERROR============================') 20 print('Not support keil yet!') 21 print('=================================================') 22 exit(0) 23elif CROSS_TOOL == 'iar': 24 print('================ERROR============================') 25 print('Not support iar yet!') 26 print('=================================================') 27 exit(0) 28 29if os.getenv('RTT_EXEC_PATH'): 30 EXEC_PATH = os.getenv('RTT_EXEC_PATH') 31 32#BUILD = 'debug' 33BUILD = 'release' 34 35if PLATFORM == 'gcc': 36 # toolchains 37 PREFIX = 'avr32-' 38 CC = PREFIX + 'gcc' 39 AS = PREFIX + 'gcc' 40 AR = PREFIX + 'ar' 41 LINK = PREFIX + 'gcc' 42 TARGET_EXT = 'elf' 43 SIZE = PREFIX + 'size' 44 OBJDUMP = PREFIX + 'objdump' 45 OBJCPY = PREFIX + 'objcopy' 46 47 DEVICE = ' -mpart=' + PART 48 CFLAGS = DEVICE + ' -DBOARD=' + BOARD + ATOMICS + ' -fmessage-length=0 -ffunction-sections -masm-addr-pseudos' 49 AFLAGS = ' -c -x assembler-with-cpp' + DEVICE 50 LFLAGS = DEVICE + ' -Wl,--gc-sections --rodata-writable -Wl,--direct-data -Lsoftware_framework/utils/libs/newlib_addons -T avr32elf_uc3a0256.lds' 51 52 CPATH = '' 53 LPATH = '' 54 55 if BUILD == 'debug': 56 CFLAGS += ' -O0 -g3 -Wall' 57 AFLAGS += ' -g3' 58 else: 59 CFLAGS += ' -O2 -Wall' 60 61 POST_ACTION = OBJCPY + ' -O binary $TARGET rtthread.bin\n' + SIZE + ' $TARGET \n' 62