1import os 2from building import * 3 4objs = [] 5cwd = GetCurrentDir() 6 7PORT_DRV_DIR = cwd + '/drivers' 8DRIVERS_EXAMPLE_DIR = cwd + '/drivers_example' 9PHYTIUM_SDK_DIR = cwd + '/phytium_standalone_sdk' 10COMMON_DIR = cwd + '/common' 11 12# common source 13src = Glob(PHYTIUM_SDK_DIR+'/common/fassert.c') 14path = [PHYTIUM_SDK_DIR + '/common/'] 15 16src += Glob(COMMON_DIR+'/*.c') 17path += [COMMON_DIR ] 18 19# arch port 20path += [PHYTIUM_SDK_DIR + '/arch/armv8/gcc'] 21 22if GetDepend(['TARGET_ARMV8_AARCH32']): 23 src += Glob(PHYTIUM_SDK_DIR+'/arch/armv8/aarch32/fsmcc.c') + Glob(PHYTIUM_SDK_DIR+'/arch/armv8/aarch32/gcc/fcpu_asm.S') 24 path += [PHYTIUM_SDK_DIR + '/arch/armv8/aarch32'] 25elif GetDepend(['TARGET_ARMV8_AARCH64']): 26 src += Glob(PHYTIUM_SDK_DIR+'/arch/armv8/aarch64/fsmcc.c') + Glob(PHYTIUM_SDK_DIR+'/arch/armv8/aarch64/gcc/fcpu_asm.S') 27 path += [PHYTIUM_SDK_DIR + '/arch/armv8/aarch64'] 28 29# soc & soc_port 30src += Glob(PHYTIUM_SDK_DIR+'/soc/common/fcpu_info.c') 31path += [PHYTIUM_SDK_DIR + '/soc/common'] 32 33if GetDepend(['TARGET_PE2204']): 34 src += Glob(cwd+'/port/soc_port/pe220x/*.c') + Glob(cwd+'/port/soc_port/pe220x/pe2204/*.c') 35 path += [PHYTIUM_SDK_DIR + '/soc/pe220x'] + [PHYTIUM_SDK_DIR + '/soc/pe220x/pe2204'] 36 37if GetDepend(['TARGET_PE2202']): 38 src += Glob(cwd+'/port/soc_port/pe220x/*.c') + Glob(cwd+'/port/soc_port/pe220x/pe2202/*.c') 39 path += [PHYTIUM_SDK_DIR + '/soc/pe220x'] + [PHYTIUM_SDK_DIR + '/soc/pe220x/pe2202'] 40 41if GetDepend(['TARGET_PD2408']): 42 src += Glob(cwd+'/port/soc_port/pd2408/*.c') 43 path += [PHYTIUM_SDK_DIR + '/soc/pd2408'] 44 45# board port 46if GetDepend(['E2000D_DEMO_BOARD']): 47 path += cwd + '/fboard_port/e2000d_demo' 48 49if GetDepend(['E2000Q_DEMO_BOARD']): 50 path += cwd + '/fboard_port/e2000q_demo' 51 52if GetDepend(['PHYTIUMPI_FIREFLY_BOARD']): 53 path += cwd + '/fboard_port/firefly' 54 55if GetDepend(['BSP_USING_SDCARD_FATFS']): 56 if GetDepend(['E2000D_DEMO_BOARD']): 57 src += Glob(cwd + '/port/fboard_port/e2000d_demo/mnt_sdcard.c') 58 59 if GetDepend(['E2000Q_DEMO_BOARD']): 60 src += Glob(cwd + '/port/fboard_port/e2000q_demo/mnt_sdcard.c') 61 62 if GetDepend(['PHYTIUMPI_FIREFLY_BOARD']): 63 src += Glob(cwd + '/port/fboard_port/firefly/mnt_sdcard.c') 64 65 if GetDepend(['PD2408_TEST_A_BOARD']): 66 src += Glob(cwd + '/port/fboard_port/pd2408_test_a/mnt_sdcard.c') 67else: 68 src += Glob(cwd + '/port/fboard_port/mnt_ramdisk.c') 69 70# driver 71path += [PORT_DRV_DIR] 72 73## spim 74if GetDepend(['BSP_USING_SPI']): 75 src += Glob(PHYTIUM_SDK_DIR+'/drivers/spi/fspim/*.c') + Glob(PORT_DRV_DIR+'/drv_spi.c') 76 path += [PHYTIUM_SDK_DIR + '/drivers/spi/fspim'] 77 78## spim msg 79if GetDepend(['BSP_USING_SPI_MSG']): 80 src += Glob(PHYTIUM_SDK_DIR+'/drivers/spi/fspim_v2_0/*.c') + Glob(PORT_DRV_DIR+'/drv_spi_msg.c') 81 path += [PHYTIUM_SDK_DIR + '/drivers/spi/fspim_v2_0'] + [PHYTIUM_SDK_DIR + '/drivers/msg'] 82 83## serial 84if GetDepend(['BSP_USING_UART']): 85 src += Glob(PHYTIUM_SDK_DIR+'/drivers/serial/fpl011/*.c') + Glob(PORT_DRV_DIR+'/drv_usart.c') 86 path += [PHYTIUM_SDK_DIR + '/drivers/serial/fpl011'] 87 88## serial_v2 89if GetDepend(['BSP_USING_UART_MSG']): 90 src += Glob(PHYTIUM_SDK_DIR+'/drivers/serial/fpl011/*.c') 91 src += Glob(PHYTIUM_SDK_DIR+'/drivers/serial/fserial_v2_0/*.c') + Glob(PORT_DRV_DIR+'/drv_usart_msg.c') 92 path += [PHYTIUM_SDK_DIR + '/drivers/serial/fpl011'] 93 path += [PHYTIUM_SDK_DIR + '/drivers/serial/fserial_v2_0'] + [PHYTIUM_SDK_DIR + '/drivers/msg/'] 94 95## can 96if GetDepend(['BSP_USING_CAN']): 97 src += Glob(PHYTIUM_SDK_DIR+'/drivers/can/fcan/*.c') + Glob(PORT_DRV_DIR+'/drv_can.c') 98 path += [PHYTIUM_SDK_DIR + '/drivers/can/fcan/'] 99 100## qspi 101if GetDepend(['BSP_USING_QSPI']): 102 src += Glob(PHYTIUM_SDK_DIR+'/drivers/qspi/fqspi/*.c') + Glob(PORT_DRV_DIR+'/drv_qspi.c') 103 path += [PHYTIUM_SDK_DIR + '/drivers/qspi/fqspi/'] 104 105## eth 106if GetDepend(['BSP_USING_ETH']): 107 src += Glob(PHYTIUM_SDK_DIR+'/drivers/eth/fxmac/*.c') + Glob(PORT_DRV_DIR+'/drv_xmac.c') 108 path += [PHYTIUM_SDK_DIR + '/drivers/eth/fxmac/'] + [PHYTIUM_SDK_DIR + '/drivers/eth/fxmac/phy/'] 109 110 111## eth_v2 112if GetDepend(['BSP_USING_ETH_MSG']): 113 src += Glob(PHYTIUM_SDK_DIR+'/drivers/eth/fxmac_v2_0/*.c') + Glob(PORT_DRV_DIR+'/drv_xmac_msg.c') 114 path += [PHYTIUM_SDK_DIR + '/drivers/eth/fxmac_v2_0/'] + [PHYTIUM_SDK_DIR + '/drivers/msg'] 115 116 117## sdif 118if GetDepend(['BSP_USING_SDIF']): 119 src += Glob(PHYTIUM_SDK_DIR+'/drivers/mmc/fsdif/*.c') + Glob(PORT_DRV_DIR+'/drv_sdif.c') 120 path += [PHYTIUM_SDK_DIR + '/drivers/mmc/fsdif/'] 121 122## sdif_msg 123if GetDepend(['BSP_USING_SDIF_MSG']): 124 src += Glob(PHYTIUM_SDK_DIR+'/drivers/mmc/fsdif_v2_0/*.c') + Glob(PORT_DRV_DIR+'/drv_sdif_msg.c') 125 path += [PHYTIUM_SDK_DIR + '/drivers/mmc/fsdif_v2_0/'] + [PHYTIUM_SDK_DIR + '/drivers/msg/'] 126 127## gpio 128if GetDepend(['BSP_USING_GPIO']): 129 src += Glob(PHYTIUM_SDK_DIR+'/drivers/pin/fgpio/*.c') + Glob(PORT_DRV_DIR+'/drv_gpio.c') 130 path += [PHYTIUM_SDK_DIR + '/drivers/pin/fgpio/'] 131 if GetDepend(['TARGET_PE220X']): 132 src += Glob(PHYTIUM_SDK_DIR+'/soc/pe220x/fgpio_table.c') 133 if GetDepend(['TARGET_PD2408']): 134 src += Glob(PHYTIUM_SDK_DIR+'/soc/pd2408/fgpio_table.c') 135 136## i2s 137if GetDepend(['BSP_USING_I2S']): 138 src += Glob(PHYTIUM_SDK_DIR+'/drivers/i2s/fi2s/*.c') \ 139 + Glob(PHYTIUM_SDK_DIR+'/drivers/dma/fddma/*.c') \ 140 + Glob(PORT_DRV_DIR+'/drv_i2s.c') 141 path += [PHYTIUM_SDK_DIR + '/drivers/i2s/fi2s/'] \ 142 + [PHYTIUM_SDK_DIR + '/drivers/dma/fddma/'] 143 144## pwm 145if GetDepend(['BSP_USING_PWM']): 146 src += Glob(PHYTIUM_SDK_DIR+'/drivers/pwm/fpwm/*.c') + Glob(PORT_DRV_DIR+'/drv_pwm.c') 147 path += [PHYTIUM_SDK_DIR + '/drivers/pwm/fpwm/'] 148 149## i2c 150if GetDepend(['BSP_USING_I2C']): 151 src += Glob(PHYTIUM_SDK_DIR+'/drivers/i2c/fi2c/*.c') + Glob(PORT_DRV_DIR+'/drv_i2c.c') 152 path += [PHYTIUM_SDK_DIR + '/drivers/i2c/fi2c/'] 153 154## i2c msg 155if GetDepend(['BSP_USING_I2C_MSG']): 156 src += Glob(PHYTIUM_SDK_DIR+'/drivers/i2c/fi2c_v2_0/*.c') + Glob(PORT_DRV_DIR+'/drv_i2c_msg.c') 157 path += [PHYTIUM_SDK_DIR + '/drivers/i2c/fi2c_v2_0/'] + [PHYTIUM_SDK_DIR + '/drivers/msg/'] 158 159# fdriver dc 160if GetDepend(['BSP_USING_DC']): 161 src += Glob(PHYTIUM_SDK_DIR+'/drivers/media/fdcdp/*.c') + Glob(PORT_DRV_DIR+'/drv_dc.c') 162 path += [PHYTIUM_SDK_DIR + '/drivers/media/fdcdp/'] 163 164## iopad 165if GetDepend(['BSP_USING_IOPAD']): 166 src += Glob(PHYTIUM_SDK_DIR+'/drivers/iomux/fiopad/*.c') 167 path += [PHYTIUM_SDK_DIR + '/drivers/iomux/fiopad/'] 168 169## mio 170if GetDepend(['I2C_USE_MIO']): 171 src += Glob(PHYTIUM_SDK_DIR+'/drivers/mio/fmio/*.c') 172 path += [PHYTIUM_SDK_DIR + '/drivers/mio/fmio/'] 173 174## device 175if GetDepend(['BSP_USING_DEVICE']): 176 src += Glob(PHYTIUM_SDK_DIR+'/drivers/device/fdevice/fdevice.c') 177 path += [PHYTIUM_SDK_DIR + '/drivers/device/fdevice/'] 178 if GetDepend(['BSP_USING_ES8336']): 179 src += Glob(PHYTIUM_SDK_DIR+'/drivers/device/fes8336/fes8336.c') + Glob(PHYTIUM_SDK_DIR+'/drivers/i2c/fi2c/*.c') 180 path += [PHYTIUM_SDK_DIR + '/drivers/device/fes8336/'] + [PHYTIUM_SDK_DIR + '/drivers/i2c/fi2c/'] 181 if GetDepend(['BSP_USING_ES8388']): 182 src += Glob(PHYTIUM_SDK_DIR+'/drivers/device/fes8388/fes8388.c') + Glob(PHYTIUM_SDK_DIR+'/drivers/i2c/fi2c/*.c') 183 path += [PHYTIUM_SDK_DIR + '/drivers/device/fes8388/'] + [PHYTIUM_SDK_DIR + '/drivers/i2c/fi2c/'] 184 185## drivers_example 186if GetDepend(['BSP_USING_DRIVERS_EXAMPLE']): 187 src += Glob(DRIVERS_EXAMPLE_DIR+'/*.c') 188 path += [DRIVERS_EXAMPLE_DIR] 189 190## board 191if GetDepend(['E2000D_DEMO_BOARD']): 192 src += Glob(PHYTIUM_SDK_DIR+'/board/e2000d_demo/fio_mux.c') 193 path += [PHYTIUM_SDK_DIR + '/board/e2000d_demo/'] 194 195 if GetDepend(['BSP_USING_SDIF_LAYER']): 196 src += Glob(PHYTIUM_SDK_DIR+'/board/e2000d_demo/fsdif_timing.c') 197 198if GetDepend(['E2000Q_DEMO_BOARD']): 199 src += Glob(PHYTIUM_SDK_DIR+'/board/e2000q_demo/fio_mux.c') 200 path += [PHYTIUM_SDK_DIR + '/board/e2000q_demo/'] 201 202 if GetDepend(['BSP_USING_SDIF_LAYER']): 203 src += Glob(PHYTIUM_SDK_DIR+'/board/e2000q_demo/fsdif_timing.c') 204 205if GetDepend(['PD2408_TEST_A_BOARD']): 206 src += Glob(PHYTIUM_SDK_DIR+'/board/pd2408_test_a/fio_mux.c') 207 path += [PHYTIUM_SDK_DIR + '/board/pd2408_test_a/'] 208 209 if GetDepend(['BSP_USING_SDIF_LAYER']): 210 src += Glob(PHYTIUM_SDK_DIR+'/board/pd2408_test_a/fsdif_timing.c') 211 212if GetDepend(['PD2408_TEST_B_BOARD']): 213 src += Glob(PHYTIUM_SDK_DIR+'/board/pd2408_test_b/fio_mux.c') 214 path += [PHYTIUM_SDK_DIR + '/board/pd2408_test_b/'] 215 216 if GetDepend(['BSP_USING_SDIF_LAYER']): 217 src += Glob(PHYTIUM_SDK_DIR+'/board/pd2408_test_b/fsdif_timing.c') 218 219if GetDepend(['PHYTIUMPI_FIREFLY_BOARD']): 220 src += Glob(PHYTIUM_SDK_DIR+'/board/phytiumpi_firefly/fio_mux.c') 221 path += [PHYTIUM_SDK_DIR + '/board/phytiumpi_firefly/'] 222 223 if GetDepend(['BSP_USING_SDIF_LAYER']): 224 src += Glob(PHYTIUM_SDK_DIR+'/board/phytiumpi_firefly/fsdif_timing.c') 225 226 227LIBS = [] 228LIBPATH = [] 229 230## fdriver port 231src += Glob(cwd+'/port/fdriver_port/*.c') 232path += [cwd + '/port/fdriver_port'] 233 234## fboard port 235path += [cwd + '/port/fboard_port'] 236 237## lwip port 238src += Glob(cwd+'/port/lwip_port/*.c') 239path += [cwd + '/port/lwip_port'] 240 241## cherryusb port 242src += Glob(cwd + '/port/cherryusb_port/*.c') 243 244# phytium ports rt-thread examples 245PORT_DRV_DIR = cwd + '/examples' 246 247src += Glob(PORT_DRV_DIR + '/*.c') 248 249# sdkcomfig.h 250path += [cwd] 251 252# add group 253ASFLAGS = '' 254group = DefineGroup('FT_DRIVER', src, depend=[ 255 ''],LIBS = LIBS,LIBPATH=LIBPATH, CPPPATH=path, ASFLAGS = ASFLAGS) 256 257 258Return('group') 259