1from building import *
2
3cwd = GetCurrentDir()
4
5objs = []
6
7# add the general drivers.
8src = Split('''
9board.c
10''')
11
12# add gpio code
13if GetDepend('RT_USING_PIN'):
14    src += ['drv_gpio.c']
15
16# add serial driver code
17if  GetDepend('BSP_USING_UART0') or GetDepend('BSP_USING_UART1') or GetDepend('BSP_USING_UART2') or GetDepend('BSP_USING_UART3') or \
18    GetDepend('BSP_USING_UART4') or GetDepend('BSP_USING_UART5') or \
19    GetDepend('BSP_USING_USART0') or GetDepend('BSP_USING_USART1') or GetDepend('BSP_USING_USART2') or GetDepend('BSP_USING_USART3') or \
20    GetDepend('BSP_USING_USART4') or GetDepend('BSP_USING_USART5') or \
21    GetDepend('RT_USING_SERIAL'):
22    src += ['drv_uart.c']
23
24# add spi driver code
25if  GetDepend('BSP_USING_SPI0') or GetDepend('BSP_USING_SPI1'):
26    src += ['drv_spi.c']
27
28# add i2c driver code
29if  GetDepend('BSP_USING_I2C0') or GetDepend('BSP_USING_I2C1'):
30    src += ['drv_i2c.c']
31
32# add can driver code
33if  GetDepend('BSP_USING_CAN') or GetDepend('BSP_USING_CAN0') or GetDepend('RT_USING_CAN'):
34    src += ['drv_can.c']
35
36
37# add adc driver code
38if GetDepend(['BSP_USING_ADC0']) or GetDepend('BSP_USING_ADC'):
39    src += ['drv_adc.c']
40
41# add rtc driver code
42if GetDepend(['BSP_USING_RTC']):
43    src += ['drv_rtc.c']
44
45# add spi flash driver code
46if GetDepend('BSP_USING_SPI_FLASH'):
47    src += ['drv_spiflash.c']
48
49# add hwtimer driver code
50if GetDepend('BSP_USING_AD16C4T0_HWTIMER') or GetDepend('BSP_USING_AD16C4T1_HWTIMER') or \
51    GetDepend('BSP_USING_GP32C4T0_HWTIMER') or GetDepend('BSP_USING_GP32C4T1_HWTIMER') or \
52    GetDepend('BSP_USING_GP16C4T0_HWTIMER') or GetDepend('BSP_USING_GP16C4T1_HWTIMER') or GetDepend('BSP_USING_GP16C4T2_HWTIMER') or \
53    GetDepend('BSP_USING_GP16C2T0_HWTIMER') or GetDepend('BSP_USING_GP16C2T1_HWTIMER') or \
54    GetDepend('BSP_USING_GP16C4T0_HWTIMER') or GetDepend('BSP_USING_GP16C4T1_HWTIMER') or \
55    GetDepend('BSP_USING_BS16T0_HWTIMER') or GetDepend('BSP_USING_BS16T1_HWTIMERIMER') or \
56    GetDepend('BSP_USING_BS16T2_HWTIMER') or GetDepend('BSP_USING_BS16T3_HWTIMER'):
57    src += ['drv_hwtimer.c']
58
59# add pwm driver code
60if GetDepend('BSP_USING_AD16C4T0_PWM') or GetDepend('BSP_USING_AD16C4T1_PWM') or \
61    GetDepend('BSP_USING_GP16C4T0_PWM') or GetDepend('BSP_USING_GP16C4T1_PWM') or GetDepend('BSP_USING_GP16C4T2_PWM') or  \
62    GetDepend('BSP_USING_GP16C2T0__PWM') or GetDepend('BSP_USING_GP16C2T1_PWM') or \
63    GetDepend('BSP_USING_GP32C4T0_PWM') or GetDepend('BSP_USING_GP32C4T1_PWM') or \
64    GetDepend('BSP_USING_GP16C4T0_PWM') or GetDepend('BSP_USING_GP16C4T1_PWM'):
65    src += ['drv_pwm.c']
66
67# add pm driver code
68if GetDepend(['BSP_USING_PM']):
69    src += ['drv_pm.c']
70CPPPATH = [cwd]
71CPPPATH = CPPPATH + [cwd + '/ES']
72#__SYS_SELECT_H__ 用来规避冲突
73#cdkrepo\toolchain\xtgccelfnewlib\v2.6.1\r\riscv64-unknown-elf\include\sys\select.h
74#components/libc/compilers/common/include/sys/select.h
75CPPDEFINES = ['__SYS_SELECT_H__','__RT_ATOMIC_H__']
76CCFLAGS='-fno-exceptions'
77#LINKFLAGS='-lstdc++'
78LIBS=['stdc++']
79group = DefineGroup('Drivers', src, depend = [''], CPPPATH = CPPPATH, CPPDEFINES = CPPDEFINES,CCFLAGS=CCFLAGS,LIBS=LIBS)
80objs = objs + group
81
82Return('objs')
83
84