1import os
2
3# toolchains options
4ARCH='arm'
5CPU='cortex-m3'
6CROSS_TOOL 	= 'keil'
7
8if os.getenv('RTT_CC'):
9	CROSS_TOOL = os.getenv('RTT_CC')
10
11#device options
12PART_TYPE = 'PART_LM3S8962'
13
14if  CROSS_TOOL == 'gcc':
15	PLATFORM 	= 'gcc'
16	EXEC_PATH 	= 'E:/Program Files/CodeSourcery/Sourcery G++ Lite/bin'
17elif CROSS_TOOL == 'keil':
18	PLATFORM 	= 'armcc'
19	EXEC_PATH 	= 'C:/Keil'
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
31if PLATFORM == 'gcc':
32    # toolchains
33    PREFIX = 'arm-none-eabi-'
34    CC = PREFIX + 'gcc'
35    AS = PREFIX + 'gcc'
36    AR = PREFIX + 'ar'
37    LINK = PREFIX + 'gcc'
38    TARGET_EXT = 'elf'
39    SIZE = PREFIX + 'size'
40    OBJDUMP = PREFIX + 'objdump'
41    OBJCPY = PREFIX + 'objcopy'
42
43    DEVICE = ' -mcpu=cortex-m3 -mthumb'
44    CFLAGS = DEVICE + ' -Dsourcerygxx -ffunction-sections -fdata-sections'
45    AFLAGS = ' -c' + DEVICE + ' -x assembler-with-cpp'
46    LFLAGS = DEVICE + ' -Wl,--gc-sections,-Map=rtthread-lm3s.map,-cref,-u,Reset_Handler -T lm3s_rom.ld'
47
48    CPATH = ''
49    LPATH = ''
50
51    if BUILD == 'debug':
52        CFLAGS += ' -O0 -gdwarf-2'
53        AFLAGS += ' -gdwarf-2'
54    else:
55        CFLAGS += ' -O2'
56
57    POST_ACTION = OBJCPY + ' -O binary $TARGET rtthread.bin\n' + SIZE + ' $TARGET \n'
58
59elif PLATFORM == 'armcc':
60    # toolchains
61    CC = 'armcc'
62    AS = 'armasm'
63    AR = 'armar'
64    LINK = 'armlink'
65    TARGET_EXT = 'axf'
66
67    DEVICE = ' --device DLM'
68    CFLAGS = DEVICE + ' --apcs=interwork'
69    AFLAGS = DEVICE
70    LFLAGS = DEVICE + ' --info sizes --info totals --info unused --info veneers --list rtthread-lm3s.map --scatter lm3s_rom.sct'
71
72    CFLAGS += ' -I' + EXEC_PATH + '/ARM/RV31/INC'
73    LFLAGS += ' --libpath ' + EXEC_PATH + '/ARM/RV31/LIB'
74
75    EXEC_PATH += '/arm/bin40/'
76
77    if BUILD == 'debug':
78        CFLAGS += ' -g -O0'
79        AFLAGS += ' -g'
80    else:
81        CFLAGS += ' -O2'
82
83    RT_USING_MINILIBC = False
84    POST_ACTION = 'fromelf --bin $TARGET --output rtthread.bin \nfromelf -z $TARGET'
85