1import os 2 3# toolchains options 4ARCH='arm' 5CPU='cortex-r4' 6CROSS_TOOL='gcc' 7 8if os.getenv('RTT_CC'): 9 CROSS_TOOL = os.getenv('RTT_CC') 10 11if CROSS_TOOL == 'gcc': 12 PLATFORM = 'gcc' 13 EXEC_PATH = r'C:\Program Files\GNU Tools ARM Embedded\4.7 2013q3\bin' 14elif CROSS_TOOL == 'keil': 15 PLATFORM = 'armcc' 16 EXEC_PATH = 'C:/Keil' 17 print('================ERROR============================') 18 print('Not support keil yet!') 19 print('=================================================') 20 exit(0) 21elif CROSS_TOOL == 'iar': 22 print('================ERROR============================') 23 print('Not support IAR yet!') 24 print('=================================================') 25 exit(0) 26 27if os.getenv('RTT_EXEC_PATH'): 28 EXEC_PATH = os.getenv('RTT_EXEC_PATH') 29 30BUILD = 'release' 31 32if PLATFORM == 'gcc': 33 # toolchains 34 PREFIX = 'arm-none-eabi-' 35 CC = PREFIX + 'gcc' 36 CXX = PREFIX + 'g++' 37 AS = PREFIX + 'gcc' 38 AR = PREFIX + 'ar' 39 LINK = PREFIX + 'gcc' 40 TARGET_EXT = 'elf' 41 SIZE = PREFIX + 'size' 42 OBJDUMP = PREFIX + 'objdump' 43 OBJCPY = PREFIX + 'objcopy' 44 45 DEVICE = ' -Wall -march=armv7-r -mfloat-abi=hard'+\ 46 ' -ftree-vectorize -ffast-math -mfpu=vfpv3-d16 '+\ 47 ' -ffunction-sections -fdata-sections ' 48 CFLAGS = DEVICE 49 AFLAGS = ' -c' + DEVICE + ' -x assembler-with-cpp -D__ASSEMBLY__' 50 LFLAGS = DEVICE + ' -Wl,--gc-sections,-Map=rtthread-rm48x50.map,-cref,-u,system_vectors -T rm48x50.ld' 51 52 CPATH = '' 53 LPATH = '' 54 55 if BUILD == 'debug': 56 CFLAGS += ' -O0 -gdwarf-2 ' 57 AFLAGS += ' -g -gdwarf-2' 58 else: 59 CFLAGS += ' -O3 -g -gdwarf-2' 60 AFLAGS += ' -g -gdwarf-2' 61 62 POST_ACTION = SIZE + ' $TARGET \n' 63 64elif PLATFORM == 'armcc': 65 # toolchains 66 CC = 'armcc' 67 CXX = 'armcc' 68 AS = 'armasm' 69 AR = 'armar' 70 LINK = 'armlink' 71 TARGET_EXT = 'axf' 72 73 DEVICE = ' --device DARMP' 74 CFLAGS = DEVICE + ' --apcs=interwork' 75 AFLAGS = DEVICE 76 LFLAGS = DEVICE + ' --info sizes --info totals --info unused --info veneers --list rtthread-beaglebone.map --scatter beaglebone_ram.sct' 77 78 CFLAGS += ' -I' + EXEC_PATH + '/ARM/RV31/INC' 79 LFLAGS += ' --libpath ' + EXEC_PATH + '/ARM/RV31/LIB' 80 81 EXEC_PATH += '/arm/bin40/' 82 83 if BUILD == 'debug': 84 CFLAGS += ' -g -O0' 85 AFLAGS += ' -g' 86 else: 87 CFLAGS += ' -O2' 88 89 POST_ACTION = 'fromelf --bin $TARGET --output rtthread.bin \nfromelf -z $TARGET' 90 91elif PLATFORM == 'iccarm': 92 # toolchains 93 CC = 'iccarm' 94 AS = 'iasmarm' 95 AR = 'iarchive' 96 LINK = 'ilinkarm' 97 TARGET_EXT = 'out' 98 99 DEVICE = ' --cpu DARMP' 100 101 CFLAGS = '' 102 AFLAGS = '' 103 LFLAGS = ' --config beaglebone_ram.icf' 104 105 EXEC_PATH += '/arm/bin/' 106 RT_USING_MINILIBC = False 107 POST_ACTION = '' 108