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