1import os 2 3# toolchains options 4ARCH='arm' 5CPU='cortex-m4' 6CROSS_TOOL='keil' 7 8if os.getenv('RTT_CC'): 9 CROSS_TOOL = os.getenv('RTT_CC') 10 11#device options 12PART_TYPE = 'PART_LM4F232H5QD' 13 14# cross_tool provides the cross compiler 15# EXEC_PATH is the compiler execute path, for example, CodeSourcery, Keil MDK, IAR 16if CROSS_TOOL == 'gcc': 17 PLATFORM = 'gcc' 18 EXEC_PATH = r'E:/Program Files/CodeSourcery/Sourcery G++ Lite/bin' 19elif CROSS_TOOL == 'keil': 20 PLATFORM = 'armcc' 21 EXEC_PATH = r'C:/Keil' 22elif CROSS_TOOL == 'iar': 23 print('================ERROR============================') 24 print('Not support iar yet!') 25 print('=================================================') 26 exit(0) 27 28if os.getenv('RTT_EXEC_PATH'): 29 EXEC_PATH = os.getenv('RTT_EXEC_PATH') 30 31BUILD = 'debug' 32 33if PLATFORM == 'gcc': 34 # toolchains 35 PREFIX = 'arm-none-eabi-' 36 CC = PREFIX + 'gcc' 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 = ' -mcpu=cortex-m4 -mthumb -mfpu=fpv4-sp-d16 -mfloat-abi=softfp -ffunction-sections -fdata-sections' 46 CFLAGS = DEVICE 47 AFLAGS = ' -c' + DEVICE + ' -x assembler-with-cpp -Wa,-mimplicit-it=thumb ' 48 LFLAGS = DEVICE + ' -Wl,--gc-sections,-Map=rtthread-lm4f.map,-cref,-u,Reset_Handler -T lm4f_rom.ld' 49 50 CPATH = '' 51 LPATH = '' 52 53 if BUILD == 'debug': 54 CFLAGS += ' -O0 -gdwarf-2' 55 AFLAGS += ' -gdwarf-2' 56 else: 57 CFLAGS += ' -O2' 58 59 POST_ACTION = OBJCPY + ' -O binary $TARGET rtthread.bin\n' + SIZE + ' $TARGET \n' 60 61elif PLATFORM == 'armcc': 62 # toolchains 63 CC = 'armcc' 64 AS = 'armasm' 65 AR = 'armar' 66 LINK = 'armlink' 67 TARGET_EXT = 'axf' 68 69 DEVICE = ' --device DLM' 70 CFLAGS = DEVICE + ' --apcs=interwork' 71 AFLAGS = DEVICE 72 LFLAGS = DEVICE + ' --ro-base 0x00000000 --entry 0x00000000 --rw-base 0x20000000 --entry Reset_Handler --first __Vectors --info sizes --info totals --info unused --info veneers --list rtthread-lm4f.map ' 73 74 CFLAGS += ' -I' + EXEC_PATH + '/ARM/RV31/INC' 75 LFLAGS += ' --libpath ' + EXEC_PATH + '/ARM/RV31/LIB' 76 77 EXEC_PATH += '/arm/bin40/' 78 79 if BUILD == 'debug': 80 CFLAGS += ' -g -O0' 81 AFLAGS += ' -g' 82 else: 83 CFLAGS += ' -O2' 84 85 POST_ACTION = 'fromelf --bin $TARGET --output rtthread.bin \nfromelf -z $TARGET' 86 87 88