1import os
2
3# toolchains options
4ARCH     = 'avr32'
5CPU      = 'uc3'
6PART     = 'uc3b0256'
7BOARD    = 'USERBOARD'
8ATOMICS  = ' -D__STDC_NO_ATOMICS__'
9
10CROSS_TOOL 	= 'gcc'
11
12if os.getenv('RTT_CC'):
13	CROSS_TOOL = os.getenv('RTT_CC')
14
15if  CROSS_TOOL == 'gcc':
16	PLATFORM 	= 'gcc'
17	EXEC_PATH 	= 'C:/Program Files (x86)/Atmel/AVR Tools/AVR Toolchain/bin'
18elif CROSS_TOOL == 'keil':
19    print('================ERROR============================')
20    print('Not support keil yet!')
21    print('=================================================')
22    exit(0)
23elif CROSS_TOOL == 'iar':
24    print('================ERROR============================')
25    print('Not support iar yet!')
26    print('=================================================')
27    exit(0)
28
29if os.getenv('RTT_EXEC_PATH'):
30	EXEC_PATH = os.getenv('RTT_EXEC_PATH')
31
32#BUILD = 'debug'
33BUILD = 'release'
34
35if PLATFORM == 'gcc':
36    # toolchains
37    PREFIX = 'avr32-'
38    CC = PREFIX + 'gcc'
39    AS = PREFIX + 'gcc'
40    AR = PREFIX + 'ar'
41    LINK = PREFIX + 'gcc'
42    TARGET_EXT = 'elf'
43    SIZE = PREFIX + 'size'
44    OBJDUMP = PREFIX + 'objdump'
45    OBJCPY = PREFIX + 'objcopy'
46
47    DEVICE = ' -mpart=' + PART
48    CFLAGS = DEVICE + ' -DBOARD=' + BOARD + ATOMICS + ' -fmessage-length=0 -ffunction-sections -masm-addr-pseudos'
49    AFLAGS = ' -c -x assembler-with-cpp' + DEVICE
50    LFLAGS = DEVICE + ' -Wl,--gc-sections --rodata-writable -Wl,--direct-data -LSOFTWARE_FRAMEWORK/UTILS/LIBS/NEWLIB_ADDONS -T avr32elf_uc3b0256.lds'
51
52    CPATH = ''
53    LPATH = ''
54
55    if BUILD == 'debug':
56        CFLAGS += ' -O0 -g3 -Wall'
57        AFLAGS += ' -g3'
58    else:
59        CFLAGS += ' -O2 -Wall'
60
61    POST_ACTION = OBJCPY + ' -O binary $TARGET rtthread.bin\n' + SIZE + ' $TARGET \n'
62