1import rtconfig 2from building import * 3 4# get current directory 5cwd = GetCurrentDir() 6 7if rtconfig.PLATFORM in ['gcc']: 8 compiler = 'GCC' 9 10# The set of source files associated with this SConscript file. 11src = Split(""" 12emlib/src/em_acmp.c 13emlib/src/em_adc.c 14emlib/src/em_aes.c 15emlib/src/em_assert.c 16emlib/src/em_cmu.c 17emlib/src/em_dac.c 18emlib/src/em_dbg.c 19emlib/src/em_dma.c 20emlib/src/em_ebi.c 21emlib/src/em_emu.c 22emlib/src/em_gpio.c 23emlib/src/em_i2c.c 24emlib/src/em_lcd.c 25emlib/src/em_letimer.c 26emlib/src/em_leuart.c 27emlib/src/em_mpu.c 28emlib/src/em_msc.c 29emlib/src/em_pcnt.c 30emlib/src/em_prs.c 31emlib/src/em_rmu.c 32emlib/src/em_rtc.c 33emlib/src/em_system.c 34emlib/src/em_timer.c 35emlib/src/em_usart.c 36emlib/src/em_vcmp.c 37emlib/src/em_wdog.c 38""") 39 40# system code for each EFM32 family 41system_codes = {} 42system_codes['TinyGecko'] = 'EFM32TG/Source/system_efm32tg.c' 43system_codes['Gecko'] = 'EFM32G/Source/system_efm32g.c' 44system_codes['Giant Gecko'] = 'EFM32GG/Source/system_efm32gg.c' 45 46# path of header files for each EFM32 family 47header_path = {} 48header_path['TinyGecko'] = 'EFM32TG' 49header_path['Gecko'] = 'EFM32G' 50header_path['Giant Gecko'] = 'EFM32GG' 51 52# starupt scripts for each EFM32 family 53startup_scripts = {} 54startup_scripts['TinyGecko'] = 'EFM32TG/Source/' + compiler + '/startup_efm32tg.s' 55startup_scripts['Gecko'] = 'EFM32G/Source/' + compiler + '/startup_efm32g.s' 56startup_scripts['Giant Gecko'] = 'EFM32GG/Source/' + compiler + '/startup_efm32gg.s' 57 58# linker scripts for each EFM32 family 59linker_scripts = {} 60linker_scripts['TinyGecko'] = 'EFM32TG/Source/' + compiler + '/efm32tg.ld' 61linker_scripts['Gecko'] = 'EFM32G/Source/' + compiler + '/efm32g.ld' 62linker_scripts['Giant Gecko'] = 'EFM32GG/Source/' + compiler + '/efm32gg.ld' 63 64system_codes[rtconfig.EFM32_FAMILY] = 'Device/EnergyMicro/' + system_codes[rtconfig.EFM32_FAMILY] 65startup_scripts[rtconfig.EFM32_FAMILY] = 'Device/EnergyMicro/' + startup_scripts[rtconfig.EFM32_FAMILY] 66linker_scripts[rtconfig.EFM32_FAMILY] = cwd + '/Device/EnergyMicro/' + linker_scripts[rtconfig.EFM32_FAMILY] 67src = src + [system_codes[rtconfig.EFM32_FAMILY]] + [startup_scripts[rtconfig.EFM32_FAMILY]] 68 69path = [cwd + '/emlib/inc', 70 cwd + '/CMSIS/Include', 71 cwd + '/Device/EnergyMicro/' + header_path[rtconfig.EFM32_FAMILY] + '/Include'] 72 73CPPDEFINES = [rtconfig.EFM32_TYPE] 74#group = DefineGroup('EFM32_StdPeriph', src, depend = [''], CPPPATH = path, CPPDEFINES = CPPDEFINES, LINKFLAGS = linker_scripts[rtconfig.EFM32_FAMILY]) 75group = DefineGroup('Libraries', src, depend = [''], CPPPATH = path, CPPDEFINES = CPPDEFINES) 76 77Return('group') 78