1Import('RTT_ROOT') 2Import('rtconfig') 3from building import * 4 5# get current directory 6cwd = GetCurrentDir() 7 8#var defined 9CPPDEFINES = [] 10src = [] 11path = [] 12 13#common lib define 14CPPDEFINES += [rtconfig.DEVICE_TYPE, 'DEBUG'] 15 16#CMSIS/Include/ common/ common2/service/delay 17path += [cwd + '/CMSIS/Include/'] 18path += [cwd + '/common/utils/', cwd + '/common/utils/interrupt/'] 19path += [cwd + '/common/boards/'] 20path += [cwd + '/common2/services/delay/', cwd + '/common2/services/delay/sam0/'] 21src += Glob('./common/utils/interrupt/interrupt_sam_nvic.c') 22 23#sam0/ sam0/utils/ 24path += [cwd + '/sam0/', cwd + '/sam0/utils/'] 25path += [cwd + '/sam0/utils/preprocessor'] 26path += [cwd + '/sam0/utils/header_files'] 27 28#sam0/utils/cmsis/ 29if rtconfig.DEVICE_SERIES == 'SAMD20': 30 #D20 31 path += [cwd + '/sam0/', cwd + '/sam0/utils/cmsis/samd20/include/'] 32 path += [cwd + '/sam0/utils/cmsis/samd20/source/'] 33 src += Glob('./sam0/utils/cmsis/samd20/source/*.c') 34 if rtconfig.PLATFORM in ['gcc']: 35 src += Glob('./sam0/utils/cmsis/samd20/source/gcc/*.s') 36 elif rtconfig.PLATFORM in ['armcc', 'armclang']: 37 src += Glob('./sam0/utils/cmsis/samd20/source/arm/*.s') 38elif rtconfig.DEVICE_SERIES == 'SAMD21': 39 #D21 40 path += [cwd + '/sam0/utils/cmsis/samd21/include/'] 41 path += [cwd + '/sam0/utils/cmsis/samd21/source/'] 42 src += Glob('./sam0/utils/cmsis/samd21/source/*.c') 43 if rtconfig.PLATFORM in ['gcc']: 44 src += Glob('./sam0/utils/cmsis/samd21/source/gcc/*.s') 45 elif rtconfig.PLATFORM in ['armcc', 'armclang']: 46 src += Glob('./sam0/utils/cmsis/samd21/source/arm/*.s') 47 48#sam0/drivers/system 49path += [cwd + '/sam0/drivers/system/'] 50src += Glob('./sam0/drivers/system/system.c') 51path += [cwd + '/sam0/drivers/system/pinmux'] 52src += Glob('./sam0/drivers/system/pinmux/*.c') 53path += [cwd + '/sam0/drivers/system/power/power_sam_d_r_h'] 54path += [cwd + '/sam0/drivers/system/reset/reset_sam_d_r_h'] 55path += [cwd + '/sam0/drivers/system/clock'] 56path += [cwd + '/sam0/drivers/system/interrupt/'] 57src += Glob('./sam0/drivers/system/interrupt/*.c') 58if rtconfig.DEVICE_SERIES == 'SAMD20': 59 path += [cwd + '/sam0/drivers/system/interrupt/system_interrupt_samd20/'] 60elif rtconfig.DEVICE_SERIES == 'SAMD21': 61 path += [cwd + '/sam0/drivers/system/interrupt/system_interrupt_samd21/'] 62 63#sam0/drivers/system/clock 64if rtconfig.DEVICE_SERIES == 'SAMD20': 65 path += [cwd + '/sam0/drivers/system/clock/clock_samd20'] 66 #path += [cwd + '/sam0/drivers/system/clock/clock_samd20/module_config'] 67 src += Glob('./sam0/drivers/system/clock/clock_samd20/*.c') 68elif rtconfig.DEVICE_SERIES == 'SAMD21': 69 #path += [cwd + '/sam0/drivers/system/clock/clock_samd21_r21_da_ha1/module_config'] 70 path += [cwd + '/sam0/drivers/system/clock/clock_samd21_r21_da_ha1'] 71 src += Glob('./sam0/drivers/system/clock/clock_samd21_r21_da_ha1/*.c') 72 73#sam0/drivers/sercom 74path += [cwd + '/sam0/drivers/sercom', cwd + '/sam0/drivers/sercom/usart'] 75src += Glob('./sam0/drivers/sercom/*.c') 76src += Glob('./sam0/drivers/sercom/usart/*.c') 77SrcRemove(src, './sam0/drivers/sercom/sercom_interrupt.c') 78SrcRemove(src, './sam0/drivers/sercom/usart/usart_interrupt.c') 79CPPDEFINES += ['USART_CALLBACK_MODE=false'] 80 81#sam0/drivers/port 82path += [cwd + '/sam0/drivers/port'] 83src += Glob('./sam0/drivers/port/port.c') 84 85#sam0/drivers/rtc 86path += [cwd + '/sam0/drivers/rtc'] 87src += Glob('./sam0/drivers/rtc/rtc_sam_d_r_h/rtc_count*.c') 88CPPDEFINES += ['RTC_COUNT_ASYNC=true'] 89 90#sam0/drivers/extint 91path += [cwd + '/sam0/drivers/extint', cwd + '/sam0/drivers/extint/extint_sam_d_r_h'] 92src += Glob('./sam0/drivers/extint/extint_callback.c') 93src += Glob('./sam0/drivers/extint/extint_sam_d_r_h/extint.c') 94CPPDEFINES += ['EXTINT_CALLBACK_MODE=true'] 95 96group = DefineGroup('Drivers', src, depend = [''], CPPPATH = path, CPPDEFINES = CPPDEFINES) 97 98Return('group') 99