2013-01-08 22:40:58 +08:00
|
|
|
import rtconfig
|
|
|
|
from building import *
|
|
|
|
|
|
|
|
# get current directory
|
|
|
|
cwd = GetCurrentDir()
|
|
|
|
|
|
|
|
if rtconfig.CROSS_TOOL == 'gcc':
|
|
|
|
compiler = 'GCC'
|
|
|
|
|
|
|
|
# The set of source files associated with this SConscript file.
|
|
|
|
src = Split("""
|
|
|
|
emlib/src/em_acmp.c
|
|
|
|
emlib/src/em_adc.c
|
|
|
|
emlib/src/em_aes.c
|
|
|
|
emlib/src/em_assert.c
|
|
|
|
emlib/src/em_cmu.c
|
|
|
|
emlib/src/em_dac.c
|
|
|
|
emlib/src/em_dbg.c
|
|
|
|
emlib/src/em_dma.c
|
|
|
|
emlib/src/em_ebi.c
|
|
|
|
emlib/src/em_emu.c
|
|
|
|
emlib/src/em_gpio.c
|
|
|
|
emlib/src/em_i2c.c
|
|
|
|
emlib/src/em_lcd.c
|
|
|
|
emlib/src/em_letimer.c
|
|
|
|
emlib/src/em_leuart.c
|
|
|
|
emlib/src/em_mpu.c
|
|
|
|
emlib/src/em_msc.c
|
|
|
|
emlib/src/em_pcnt.c
|
|
|
|
emlib/src/em_prs.c
|
|
|
|
emlib/src/em_rmu.c
|
|
|
|
emlib/src/em_rtc.c
|
|
|
|
emlib/src/em_system.c
|
|
|
|
emlib/src/em_timer.c
|
|
|
|
emlib/src/em_usart.c
|
|
|
|
emlib/src/em_vcmp.c
|
|
|
|
emlib/src/em_wdog.c
|
|
|
|
""")
|
|
|
|
|
|
|
|
# system code for each EFM32 family
|
|
|
|
system_codes = {}
|
|
|
|
system_codes['TinyGecko'] = 'EFM32TG/Source/system_efm32tg.c'
|
|
|
|
system_codes['Gecko'] = 'EFM32G/Source/system_efm32g.c'
|
|
|
|
system_codes['Giant Gecko'] = 'EFM32GG/Source/system_efm32gg.c'
|
|
|
|
|
|
|
|
# path of header files for each EFM32 family
|
|
|
|
header_path = {}
|
|
|
|
header_path['TinyGecko'] = 'EFM32TG'
|
|
|
|
header_path['Gecko'] = 'EFM32G'
|
|
|
|
header_path['Giant Gecko'] = 'EFM32GG'
|
|
|
|
|
|
|
|
# starupt scripts for each EFM32 family
|
|
|
|
startup_scripts = {}
|
|
|
|
startup_scripts['TinyGecko'] = 'EFM32TG/Source/' + compiler + '/startup_efm32tg.s'
|
|
|
|
startup_scripts['Gecko'] = 'EFM32G/Source/' + compiler + '/startup_efm32g.s'
|
|
|
|
startup_scripts['Giant Gecko'] = 'EFM32GG/Source/' + compiler + '/startup_efm32gg.s'
|
|
|
|
|
|
|
|
# linker scripts for each EFM32 family
|
|
|
|
linker_scripts = {}
|
|
|
|
linker_scripts['TinyGecko'] = 'EFM32TG/Source/' + compiler + '/efm32tg.ld'
|
|
|
|
linker_scripts['Gecko'] = 'EFM32G/Source/' + compiler + '/efm32g.ld'
|
|
|
|
linker_scripts['Giant Gecko'] = 'EFM32GG/Source/' + compiler + '/efm32gg.ld'
|
|
|
|
|
|
|
|
system_codes[rtconfig.EFM32_FAMILY] = 'Device/EnergyMicro/' + system_codes[rtconfig.EFM32_FAMILY]
|
|
|
|
startup_scripts[rtconfig.EFM32_FAMILY] = 'Device/EnergyMicro/' + startup_scripts[rtconfig.EFM32_FAMILY]
|
|
|
|
linker_scripts[rtconfig.EFM32_FAMILY] = cwd + '/Device/EnergyMicro/' + linker_scripts[rtconfig.EFM32_FAMILY]
|
|
|
|
src = src + [system_codes[rtconfig.EFM32_FAMILY]] + [startup_scripts[rtconfig.EFM32_FAMILY]]
|
|
|
|
|
|
|
|
path = [cwd + '/emlib/inc',
|
|
|
|
cwd + '/CMSIS/Include',
|
|
|
|
cwd + '/Device/EnergyMicro/' + header_path[rtconfig.EFM32_FAMILY] + '/Include']
|
|
|
|
|
|
|
|
CPPDEFINES = [rtconfig.EFM32_TYPE]
|
|
|
|
#group = DefineGroup('EFM32_StdPeriph', src, depend = [''], CPPPATH = path, CPPDEFINES = CPPDEFINES, LINKFLAGS = linker_scripts[rtconfig.EFM32_FAMILY])
|
|
|
|
group = DefineGroup('EFM32_StdPeriph', src, depend = [''], CPPPATH = path, CPPDEFINES = CPPDEFINES)
|
|
|
|
|
|
|
|
Return('group')
|