SConscript 2.5 KB

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