1import os 2 3# toolchains options 4ARCH = 'arm' 5CPU = 'cortex-m3' 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 (x86)\CodeSourcery\Sourcery G++ Lite\bin' 14 #EXEC_PATH = 'C:\Program Files (x86)\yagarto\bin' 15elif CROSS_TOOL == 'keil': 16 print('================ERROR============================') 17 print('Not support keil yet!') 18 print('=================================================') 19 exit(0) 20elif CROSS_TOOL == 'iar': 21 print('================ERROR============================') 22 print('Not support iar yet!') 23 print('=================================================') 24 exit(0) 25 26if os.getenv('RTT_EXEC_PATH'): 27 EXEC_PATH = os.getenv('RTT_EXEC_PATH') 28 29BUILD = 'debug' 30# EFM32_BOARD = 'EFM32_G8XX_STK' 31# EFM32_BOARD = 'EFM32_GXXX_DK' 32EFM32_BOARD = 'EFM32GG_DK3750' 33 34if EFM32_BOARD == 'EFM32_G8XX_STK': 35 EFM32_FAMILY = 'Gecko' 36 EFM32_TYPE = 'EFM32G890F128' 37 EFM32_LCD = 'none' 38elif EFM32_BOARD == 'EFM32_GXXX_DK': 39 EFM32_FAMILY = 'Gecko' 40 EFM32_TYPE = 'EFM32G290F128' 41 EFM32_LCD = 'none' 42elif EFM32_BOARD == 'EFM32GG_DK3750': 43 EFM32_FAMILY = 'Giant Gecko' 44 EFM32_TYPE = 'EFM32GG990F1024' 45# EFM32_LCD = 'LCD_MAPPED' 46 EFM32_LCD = 'LCD_DIRECT' 47 48if PLATFORM == 'gcc': 49 # toolchains 50 PREFIX = 'arm-none-eabi-' 51 CC = PREFIX + 'gcc' 52 AS = PREFIX + 'gcc' 53 AR = PREFIX + 'ar' 54 LINK = PREFIX + 'gcc' 55 TARGET_EXT = 'elf' 56 SIZE = PREFIX + 'size' 57 OBJDUMP = PREFIX + 'objdump' 58 OBJCPY = PREFIX + 'objcopy' 59 60 DEVICE = ' -mcpu=cortex-m3 -mthumb -ffunction-sections -fdata-sections' 61 CFLAGS = DEVICE 62 AFLAGS = ' -c' + DEVICE + ' -x assembler-with-cpp' 63 LFLAGS = DEVICE + ' -Wl,--gc-sections,-Map=rtthread-efm32.map,-cref,-u,__cs3_reset -nostartfiles -T' 64 if EFM32_BOARD == 'EFM32_G8XX_STK' or EFM32_BOARD == 'EFM32_GXXX_DK': 65 LFLAGS += ' efm32g_rom.ld' 66 elif EFM32_BOARD == 'EFM32GG_DK3750': 67 LFLAGS += ' efm32gg_rom.ld' 68 69 CPATH = '' 70 LPATH = '' 71 72 if BUILD == 'debug': 73 CFLAGS += ' -O0 -gdwarf-2' 74 AFLAGS += ' -gdwarf-2' 75 else: 76 CFLAGS += ' -O2' 77 78 POST_ACTION = OBJCPY + ' -O binary $TARGET rtthread.bin\n' + SIZE + ' $TARGET \n' 79 80