rtconfig.py 3.3 KB
Newer Older
B
bernard.xiong 已提交
1
# toolchains options
2 3
ARCH='arm'
CPU='stm32'
wuyangyong's avatar
wuyangyong 已提交
4
CROSS_TOOL='keil'
B
bernard.xiong 已提交
5

wuyangyong's avatar
wuyangyong 已提交
6 7 8 9
# lcd panel options
# 'FMT0371','ILI932X', 'SSD1289'
RT_USING_LCD_TYPE = 'SSD1289'

10 11 12
# cross_tool provides the cross compiler
# EXEC_PATH is the compiler execute path, for example, CodeSourcery, Keil MDK, IAR

B
bernard.xiong 已提交
13 14
if  CROSS_TOOL == 'gcc':
	PLATFORM 	= 'gcc'
wuyangyong's avatar
wuyangyong 已提交
15
	EXEC_PATH 	= 'D:/SourceryGCC/bin'
B
bernard.xiong 已提交
16 17
elif CROSS_TOOL == 'keil':
	PLATFORM 	= 'armcc'
18
	EXEC_PATH 	= 'E:/Keil'
19 20
elif CROSS_TOOL == 'iar':
	PLATFORM 	= 'iar'
21
	IAR_PATH 	= 'E:/Program Files/IAR Systems/Embedded Workbench 6.0'
B
bernard.xiong 已提交
22

B
bernard.xiong 已提交
23
BUILD = 'debug'
B
bernard.xiong 已提交
24
STM32_TYPE = 'STM32F10X_HD'
25

B
bernard.xiong 已提交
26 27 28 29 30 31 32
if PLATFORM == 'gcc':
    # toolchains
    PREFIX = 'arm-none-eabi-'
    CC = PREFIX + 'gcc'
    AS = PREFIX + 'gcc'
    AR = PREFIX + 'ar'
    LINK = PREFIX + 'gcc'
33
    TARGET_EXT = 'axf'
B
bernard.xiong 已提交
34 35 36 37
    SIZE = PREFIX + 'size'
    OBJDUMP = PREFIX + 'objdump'
    OBJCPY = PREFIX + 'objcopy'

B
bernard.xiong 已提交
38
    DEVICE = ' -mcpu=cortex-m3 -mthumb -ffunction-sections -fdata-sections'
39
    CFLAGS = DEVICE
B
bernard.xiong 已提交
40
    AFLAGS = ' -c' + DEVICE + ' -x assembler-with-cpp'
41
    LFLAGS = DEVICE + ' -Wl,--gc-sections,-Map=rtthread-stm32.map,-cref,-u,Reset_Handler -T stm32_rom.ld'
B
bernard.xiong 已提交
42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72

    CPATH = ''
    LPATH = ''

    if BUILD == 'debug':
        CFLAGS += ' -O0 -gdwarf-2'
        AFLAGS += ' -gdwarf-2'
    else:
        CFLAGS += ' -O2'

    POST_ACTION = OBJCPY + ' -O binary $TARGET rtthread.bin\n' + SIZE + ' $TARGET \n'

elif PLATFORM == 'armcc':
    # toolchains
    CC = 'armcc'
    AS = 'armasm'
    AR = 'armar'
    LINK = 'armlink'
    TARGET_EXT = 'axf'

    DEVICE = ' --device DARMSTM'
    CFLAGS = DEVICE + ' --apcs=interwork'
    AFLAGS = DEVICE
    LFLAGS = DEVICE + ' --info sizes --info totals --info unused --info veneers --list rtthread-stm32.map --scatter stm32_rom.sct'

    CFLAGS += ' -I' + EXEC_PATH + '/ARM/RV31/INC'
    LFLAGS += ' --libpath ' + EXEC_PATH + '/ARM/RV31/LIB'

    EXEC_PATH += '/arm/bin40/'

    if BUILD == 'debug':
73 74
        CFLAGS += ' -g -O0'
        AFLAGS += ' -g'
B
bernard.xiong 已提交
75 76 77 78 79 80 81
    else:
        CFLAGS += ' -O2'

    POST_ACTION = 'fromelf --bin $TARGET --output rtthread.bin \nfromelf -z $TARGET'

elif PLATFORM == 'iar':
    # toolchains
82 83 84 85 86 87
    CC = 'iccarm'
    AS = 'iasmarm'
    AR = 'iarchive'
    LINK = 'ilinkarm'
    TARGET_EXT = 'out'

88
    DEVICE = ' -D USE_STDPERIPH_DRIVER' + ' -D STM32F10X_HD'
B
bernard.xiong 已提交
89

90
    CFLAGS = DEVICE
91 92 93 94 95 96 97 98 99 100 101 102 103
    CFLAGS += ' --diag_suppress Pa050'
    CFLAGS += ' --no_cse' 
    CFLAGS += ' --no_unroll' 
    CFLAGS += ' --no_inline' 
    CFLAGS += ' --no_code_motion' 
    CFLAGS += ' --no_tbaa' 
    CFLAGS += ' --no_clustering' 
    CFLAGS += ' --no_scheduling' 
    CFLAGS += ' --debug' 
    CFLAGS += ' --endian=little' 
    CFLAGS += ' --cpu=Cortex-M3' 
    CFLAGS += ' -e' 
    CFLAGS += ' --fpu=None'
104
    CFLAGS += ' --dlib_config "' + IAR_PATH + '/arm/INC/c/DLib_Config_Normal.h"'    
105
    CFLAGS += ' -Ol'    
106
    CFLAGS += ' --use_c++_inline'
107
        
B
bernard.xiong 已提交
108
    AFLAGS = ''
109 110 111 112 113
    AFLAGS += ' -s+' 
    AFLAGS += ' -w+' 
    AFLAGS += ' -r' 
    AFLAGS += ' --cpu Cortex-M3' 
    AFLAGS += ' --fpu None' 
114

115
    LFLAGS = ' --config stm32f10x_flash.icf'
116 117 118
    LFLAGS += ' --redirect _Printf=_PrintfTiny' 
    LFLAGS += ' --redirect _Scanf=_ScanfSmall' 
    LFLAGS += ' --entry __iar_program_start'    
119

120
    EXEC_PATH = IAR_PATH + '/arm/bin/'
121
    POST_ACTION = ''