1import os
2
3# toolchains options
4ARCH = 'arm'
5CPU  = 'AT91SAM7X'
6
7CROSS_TOOL = 'gcc'
8
9if os.getenv('RTT_CC'):
10	CROSS_TOOL = os.getenv('RTT_CC')
11
12if CROSS_TOOL == 'gcc':
13	PLATFORM 	= 'gcc'
14	EXEC_PATH 	= 'C:/Program Files/CodeSourcery/Sourcery_CodeBench_Lite_for_ARM_EABI/bin'
15elif CROSS_TOOL == 'keil':
16	PLATFORM 	= 'armcc'
17	EXEC_PATH 	= 'C:/Keil'
18elif CROSS_TOOL == 'iar':
19    print('================ERROR============================')
20    print('Not support iar yet!')
21    print('=================================================')
22    exit(0)
23
24if os.getenv('RTT_EXEC_PATH'):
25	EXEC_PATH = os.getenv('RTT_EXEC_PATH')
26
27BUILD = 'debug'
28
29if PLATFORM == 'gcc':
30    # toolchains
31    PREFIX = 'arm-none-eabi-'
32    CC = PREFIX + 'gcc'
33    CXX = PREFIX + 'g++'
34    AS = PREFIX + 'gcc'
35    AR = PREFIX + 'ar'
36    LINK = PREFIX + 'gcc'
37    TARGET_EXT = 'elf'
38    SIZE = PREFIX + 'size'
39    OBJDUMP = PREFIX + 'objdump'
40    OBJCPY = PREFIX + 'objcopy'
41
42    DEVICE = ' -mcpu=arm7tdmi'
43    CFLAGS = DEVICE
44    AFLAGS = ' -c' + DEVICE + ' -x assembler-with-cpp'
45    LFLAGS = DEVICE + ' -Wl,--gc-sections,-Map=sam7x_rom_gcc.map,-cref,-u,_start -T sam7x_rom.ld -nostartfiles'
46    CPATH = ''
47    LPATH = ''
48
49    if BUILD == 'debug':
50        CFLAGS += ' -O0 -gstabs+ -Wall'
51        AFLAGS += ' -gstabs+'
52    else:
53        CFLAGS += ' -O2'
54
55    POST_ACTION = OBJCPY + ' -O ihex $TARGET rtthread-sam7x.hex\n' + SIZE + ' $TARGET \n'
56
57elif PLATFORM == 'armcc':
58    # toolchains
59    CC = 'armcc'
60    CXX = 'armcc'
61    AS = 'armasm'
62    AR = 'armar'
63    LINK = 'armlink'
64    TARGET_EXT = 'axf'
65
66    DEVICE = ' --device DARMATS'
67    CFLAGS = DEVICE + ' --apcs=interwork'
68    AFLAGS = DEVICE
69    LFLAGS = DEVICE + ' --strict --info sizes --info totals --info unused --info veneers --list sam7x_rom_armcc.map --scatter sam7x_rom.sct'
70
71    CFLAGS += ' -I"' + EXEC_PATH + '/ARM/RV31/INC"'
72    LFLAGS += ' --libpath "' + EXEC_PATH + '/ARM/RV31/LIB"'
73
74    EXEC_PATH += '/arm/bin40/'
75
76    if BUILD == 'debug':
77        CFLAGS += ' -g -O0'
78        AFLAGS += ' -g'
79    else:
80        CFLAGS += ' -O2'
81
82    POST_ACTION = 'fromelf --i32 $TARGET --output rtthread-sam7x.hex \nfromelf -z $TARGET'
83
84elif PLATFORM == 'iccarm':
85    # toolchains
86    CC = 'armcc'
87    AS = 'armasm'
88    AR = 'armar'
89    LINK = 'armlink'
90
91    CFLAGS = ''
92    AFLAGS = ''
93    LFLAGS = ''
94