Import('RTT_ROOT') Import('rtconfig') from building import * # get current directory cwd = GetCurrentDir() #var defined CPPDEFINES = [] src = [] path = [] #common lib define CPPDEFINES += [rtconfig.DEVICE_TYPE, 'DEBUG'] #CMSIS/Include/ common/ common2/service/delay path += [cwd + '/CMSIS/Include/'] path += [cwd + '/common/utils/', cwd + '/common/utils/interrupt/'] path += [cwd + '/common/boards/'] path += [cwd + '/common2/services/delay/', cwd + '/common2/services/delay/sam0/'] src += Glob('./common/utils/interrupt/interrupt_sam_nvic.c') #sam0/ sam0/utils/ path += [cwd + '/sam0/', cwd + '/sam0/utils/'] path += [cwd + '/sam0/utils/preprocessor'] path += [cwd + '/sam0/utils/header_files'] #sam0/utils/cmsis/ if rtconfig.DEVICE_SERIES == 'SAMD20': #D20 path += [cwd + '/sam0/', cwd + '/sam0/utils/cmsis/samd20/include/'] path += [cwd + '/sam0/utils/cmsis/samd20/source/'] src += Glob('./sam0/utils/cmsis/samd20/source/*.c') if rtconfig.CROSS_TOOL == 'gcc': src += Glob('./sam0/utils/cmsis/samd20/source/gcc/*.s') elif rtconfig.CROSS_TOOL == 'keil': src += Glob('./sam0/utils/cmsis/samd20/source/arm/*.s') elif rtconfig.DEVICE_SERIES == 'SAMD21': #D21 path += [cwd + '/sam0/utils/cmsis/samd21/include/'] path += [cwd + '/sam0/utils/cmsis/samd21/source/'] src += Glob('./sam0/utils/cmsis/samd21/source/*.c') if rtconfig.CROSS_TOOL == 'gcc': src += Glob('./sam0/utils/cmsis/samd21/source/gcc/*.s') elif rtconfig.CROSS_TOOL == 'keil': src += Glob('./sam0/utils/cmsis/samd21/source/arm/*.s') #sam0/drivers/system path += [cwd + '/sam0/drivers/system/'] src += Glob('./sam0/drivers/system/system.c') path += [cwd + '/sam0/drivers/system/pinmux'] src += Glob('./sam0/drivers/system/pinmux/*.c') path += [cwd + '/sam0/drivers/system/power/power_sam_d_r_h'] path += [cwd + '/sam0/drivers/system/reset/reset_sam_d_r_h'] path += [cwd + '/sam0/drivers/system/clock'] path += [cwd + '/sam0/drivers/system/interrupt/'] src += Glob('./sam0/drivers/system/interrupt/*.c') if rtconfig.DEVICE_SERIES == 'SAMD20': path += [cwd + '/sam0/drivers/system/interrupt/system_interrupt_samd20/'] elif rtconfig.DEVICE_SERIES == 'SAMD21': path += [cwd + '/sam0/drivers/system/interrupt/system_interrupt_samd21/'] #sam0/drivers/system/clock if rtconfig.DEVICE_SERIES == 'SAMD20': path += [cwd + '/sam0/drivers/system/clock/clock_samd20'] #path += [cwd + '/sam0/drivers/system/clock/clock_samd20/module_config'] src += Glob('./sam0/drivers/system/clock/clock_samd20/*.c') elif rtconfig.DEVICE_SERIES == 'SAMD21': #path += [cwd + '/sam0/drivers/system/clock/clock_samd21_r21_da_ha1/module_config'] path += [cwd + '/sam0/drivers/system/clock/clock_samd21_r21_da_ha1'] src += Glob('./sam0/drivers/system/clock/clock_samd21_r21_da_ha1/*.c') #sam0/drivers/sercom path += [cwd + '/sam0/drivers/sercom', cwd + '/sam0/drivers/sercom/usart'] src += Glob('./sam0/drivers/sercom/*.c') src += Glob('./sam0/drivers/sercom/usart/*.c') SrcRemove(src, './sam0/drivers/sercom/sercom_interrupt.c') SrcRemove(src, './sam0/drivers/sercom/usart/usart_interrupt.c') CPPDEFINES += ['USART_CALLBACK_MODE=false'] #sam0/drivers/port path += [cwd + '/sam0/drivers/port'] src += Glob('./sam0/drivers/port/port.c') #sam0/drivers/rtc path += [cwd + '/sam0/drivers/rtc'] src += Glob('./sam0/drivers/rtc/rtc_sam_d_r_h/rtc_count*.c') CPPDEFINES += ['RTC_COUNT_ASYNC=true'] #sam0/drivers/extint path += [cwd + '/sam0/drivers/extint', cwd + '/sam0/drivers/extint/extint_sam_d_r_h'] src += Glob('./sam0/drivers/extint/extint_callback.c') src += Glob('./sam0/drivers/extint/extint_sam_d_r_h/extint.c') CPPDEFINES += ['EXTINT_CALLBACK_MODE=true'] group = DefineGroup('Drivers', src, depend = [''], CPPPATH = path, CPPDEFINES = CPPDEFINES) Return('group')