SConscript 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214
  1. import os
  2. from building import *
  3. objs = []
  4. cwd = GetCurrentDir()
  5. PORT_DRV_DIR = cwd + '/drivers'
  6. DRIVERS_EXAMPLE_DIR = cwd + '/drivers_example'
  7. PHYTIUM_SDK_DIR = cwd + '/phytium_standalone_sdk'
  8. COMMON_DIR = cwd + '/common'
  9. # common source
  10. src = Glob(PHYTIUM_SDK_DIR+'/common/fassert.c')
  11. path = [PHYTIUM_SDK_DIR + '/common/']
  12. src += Glob(COMMON_DIR+'/*.c')
  13. path += [COMMON_DIR ]
  14. # arch port
  15. path += [PHYTIUM_SDK_DIR + '/arch/armv8/gcc']
  16. if GetDepend(['TARGET_ARMV8_AARCH32']):
  17. src += Glob(PHYTIUM_SDK_DIR+'/arch/armv8/aarch32/fsmcc.c') + Glob(PHYTIUM_SDK_DIR+'/arch/armv8/aarch32/gcc/fcpu_asm.S')
  18. path += [PHYTIUM_SDK_DIR + '/arch/armv8/aarch32']
  19. elif GetDepend(['TARGET_ARMV8_AARCH64']):
  20. src += Glob(PHYTIUM_SDK_DIR+'/arch/armv8/aarch64/fsmcc.c') + Glob(PHYTIUM_SDK_DIR+'/arch/armv8/aarch64/gcc/fcpu_asm.S')
  21. path += [PHYTIUM_SDK_DIR + '/arch/armv8/aarch64']
  22. # soc & soc_port
  23. src += Glob(PHYTIUM_SDK_DIR+'/soc/common/fcpu_info.c')
  24. path += [PHYTIUM_SDK_DIR + '/soc/common']
  25. if GetDepend(['TARGET_F2000_4']):
  26. src += Glob(cwd+'/port/soc_port/ft2004/*.c')
  27. path += [PHYTIUM_SDK_DIR + '/soc/ft2004']
  28. if GetDepend(['TARGET_E2000Q']):
  29. src += Glob(cwd+'/port/soc_port/e2000/*.c') + Glob(cwd+'/port/soc_port/e2000/q/*.c')
  30. path += [PHYTIUM_SDK_DIR + '/soc/e2000'] + [PHYTIUM_SDK_DIR + '/soc/e2000/q']
  31. if GetDepend(['TARGET_E2000D']):
  32. src += Glob(cwd+'/port/soc_port/e2000/*.c') + Glob(cwd+'/port/soc_port/e2000/d/*.c')
  33. path += [PHYTIUM_SDK_DIR + '/soc/e2000'] + [PHYTIUM_SDK_DIR + '/soc/e2000/d']
  34. if GetDepend(['TARGET_PHYTIUMPI']):
  35. src += Glob(cwd+'/port/soc_port/phytiumpi/*.c')
  36. path += [PHYTIUM_SDK_DIR + '/soc/phytiumpi']
  37. if GetDepend(['TARGET_D2000']):
  38. src += Glob(cwd+'/port/soc_port/d2000/*.c')
  39. path += [PHYTIUM_SDK_DIR + '/soc/d2000']
  40. # board port
  41. if GetDepend(['E2000D_DEMO_BOARD']):
  42. path += cwd + '/fboard_port/e2000d_demo'
  43. if GetDepend(['E2000D_DEMO_BOARD']):
  44. path += cwd + '/fboard_port/e2000q_demo'
  45. if GetDepend(['FIREFLY_DEMO_BOARD']):
  46. path += cwd + '/fboard_port/firefly'
  47. if GetDepend(['BSP_USING_SDCARD_FATFS']):
  48. if GetDepend(['E2000D_DEMO_BOARD']):
  49. src += Glob(cwd + '/port/fboard_port/e2000d_demo/mnt_sdcard.c')
  50. if GetDepend(['E2000Q_DEMO_BOARD']):
  51. src += Glob(cwd + '/port/fboard_port/e2000q_demo/mnt_sdcard.c')
  52. if GetDepend(['FIREFLY_DEMO_BOARD']):
  53. src += Glob(cwd + '/port/fboard_port/firefly/mnt_sdcard.c')
  54. else:
  55. src += Glob(cwd + '/port/fboard_port/mnt_ramdisk.c')
  56. # driver
  57. path += [PORT_DRV_DIR]
  58. ## spim
  59. if GetDepend(['BSP_USING_SPI']):
  60. src += Glob(PHYTIUM_SDK_DIR+'/drivers/spi/fspim/*.c') + Glob(PORT_DRV_DIR+'/drv_spi.c')
  61. path += [PHYTIUM_SDK_DIR + '/drivers/spi/fspim']
  62. ## serial
  63. if GetDepend(['BSP_USING_UART']):
  64. src += Glob(PHYTIUM_SDK_DIR+'/drivers/serial/fpl011/*.c') + Glob(PORT_DRV_DIR+'/drv_usart.c')
  65. path += [PHYTIUM_SDK_DIR + '/drivers/serial/fpl011']
  66. ## can
  67. if GetDepend(['BSP_USING_CAN']):
  68. src += Glob(PHYTIUM_SDK_DIR+'/drivers/can/fcan/*.c') + Glob(PORT_DRV_DIR+'/drv_can.c')
  69. path += [PHYTIUM_SDK_DIR + '/drivers/can/fcan/']
  70. ## qspi
  71. if GetDepend(['BSP_USING_QSPI']):
  72. src += Glob(PHYTIUM_SDK_DIR+'/drivers/qspi/fqspi/*.c') + Glob(PORT_DRV_DIR+'/drv_qspi.c')
  73. path += [PHYTIUM_SDK_DIR + '/drivers/qspi/fqspi/']
  74. ## eth
  75. if GetDepend(['BSP_USING_ETH']):
  76. src += Glob(PHYTIUM_SDK_DIR+'/drivers/eth/fxmac/*.c') + Glob(PORT_DRV_DIR+'/drv_xmac.c')
  77. path += [PHYTIUM_SDK_DIR + '/drivers/eth/fxmac/'] + [PHYTIUM_SDK_DIR + '/drivers/eth/fxmac/phy/']
  78. ## sdif
  79. if GetDepend(['BSP_USING_SDIF']):
  80. src += Glob(PHYTIUM_SDK_DIR+'/drivers/mmc/fsdif/*.c') + Glob(PORT_DRV_DIR+'/drv_sdif.c')
  81. path += [PHYTIUM_SDK_DIR + '/drivers/mmc/fsdif/']
  82. ## gpio
  83. if GetDepend(['BSP_USING_GPIO']):
  84. src += Glob(PHYTIUM_SDK_DIR+'/drivers/pin/fgpio/*.c') + Glob(PORT_DRV_DIR+'/drv_gpio.c')
  85. path += [PHYTIUM_SDK_DIR + '/drivers/pin/fgpio/']
  86. if GetDepend(['TARGET_E2000D']):
  87. src += Glob(PHYTIUM_SDK_DIR+'/soc/e2000/fgpio_table.c')
  88. if GetDepend(['TARGET_E2000Q']):
  89. src += Glob(PHYTIUM_SDK_DIR+'/soc/e2000/fgpio_table.c')
  90. if GetDepend(['TARGET_PHYTIUMPI']):
  91. src += Glob(PHYTIUM_SDK_DIR+'/soc/phytiumpi/fgpio_table.c')
  92. ## i2s
  93. if GetDepend(['BSP_USING_I2S']):
  94. src += Glob(PHYTIUM_SDK_DIR+'/drivers/i2s/fi2s/*.c') \
  95. + Glob(PHYTIUM_SDK_DIR+'/drivers/dma/fddma/*.c') \
  96. + Glob(PHYTIUM_SDK_DIR+'/drivers/i2s/fes8388/*.c') \
  97. + Glob(PHYTIUM_SDK_DIR+'/drivers/i2s/fes8336/*.c') \
  98. + Glob(PORT_DRV_DIR+'/drv_i2s.c')
  99. path += [PHYTIUM_SDK_DIR + '/drivers/i2s/fi2s/'] \
  100. + [PHYTIUM_SDK_DIR + '/drivers/i2s/fes8336/'] \
  101. + [PHYTIUM_SDK_DIR + '/drivers/i2s/fes8388/'] \
  102. + [PHYTIUM_SDK_DIR + '/drivers/dma/fddma/']
  103. ## pwm
  104. if GetDepend(['BSP_USING_PWM']):
  105. src += Glob(PHYTIUM_SDK_DIR+'/drivers/pwm/fpwm/*.c') + Glob(PORT_DRV_DIR+'/drv_pwm.c')
  106. path += [PHYTIUM_SDK_DIR + '/drivers/pwm/fpwm/']
  107. ## i2C
  108. if GetDepend(['BSP_USING_I2C']):
  109. src += Glob(PHYTIUM_SDK_DIR+'/drivers/i2c/fi2c/*.c') + Glob(PORT_DRV_DIR+'/drv_i2c.c')
  110. path += [PHYTIUM_SDK_DIR + '/drivers/i2c/fi2c/']
  111. # fdriver dc
  112. if GetDepend(['BSP_USING_DC']):
  113. src += Glob(PHYTIUM_SDK_DIR+'/drivers/media/fdcdp/*.c') + Glob(PORT_DRV_DIR+'/drv_dc.c')
  114. path += [PHYTIUM_SDK_DIR + '/drivers/media/fdcdp/']
  115. ## iopad
  116. if GetDepend(['BSP_USING_IOPAD']):
  117. src += Glob(PHYTIUM_SDK_DIR+'/drivers/iomux/fiopad/*.c')
  118. path += [PHYTIUM_SDK_DIR + '/drivers/iomux/fiopad/']
  119. ## mio
  120. if GetDepend(['I2C_USE_MIO']):
  121. src += Glob(PHYTIUM_SDK_DIR+'/drivers/mio/fmio/*.c')
  122. path += [PHYTIUM_SDK_DIR + '/drivers/mio/fmio/']
  123. ## drivers_example
  124. if GetDepend(['BSP_USING_DRIVERS_EXAMPLE']):
  125. src += Glob(DRIVERS_EXAMPLE_DIR+'/*.c')
  126. ## board
  127. if GetDepend(['E2000D_DEMO_BOARD']):
  128. src += Glob(PHYTIUM_SDK_DIR+'/board/e2000d_demo/fio_mux.c')
  129. path += [PHYTIUM_SDK_DIR + '/board/e2000d_demo/']
  130. if GetDepend(['BSP_USING_SDIF']):
  131. src += Glob(PHYTIUM_SDK_DIR+'/board/e2000d_demo/fsdif_timing.c')
  132. if GetDepend(['E2000Q_DEMO_BOARD']):
  133. src += Glob(PHYTIUM_SDK_DIR+'/board/e2000q_demo/fio_mux.c')
  134. path += [PHYTIUM_SDK_DIR + '/board/e2000q_demo/']
  135. if GetDepend(['BSP_USING_SDIF']):
  136. src += Glob(PHYTIUM_SDK_DIR+'/board/e2000q_demo/fsdif_timing.c')
  137. if GetDepend(['FIREFLY_DEMO_BOARD']):
  138. src += Glob(PHYTIUM_SDK_DIR+'/board/firefly/fio_mux.c')
  139. path += [PHYTIUM_SDK_DIR + '/board/firefly/']
  140. if GetDepend(['BSP_USING_SDIF']):
  141. src += Glob(PHYTIUM_SDK_DIR+'/board/firefly/fsdif_timing.c')
  142. LIBS = []
  143. LIBPATH = []
  144. ## fdriver port
  145. src += Glob(cwd+'/port/fdriver_port/*.c')
  146. path += [cwd + '/port/fdriver_port']
  147. ## fboard port
  148. path += [cwd + '/port/fboard_port']
  149. ## lwip port
  150. src += Glob(cwd+'/port/lwip_port/*.c')
  151. path += [cwd + '/port/lwip_port']
  152. ## cherryusb port
  153. src += Glob(cwd + '/port/cherryusb_port/*.c')
  154. # phytium ports rt-thread examples
  155. PORT_DRV_DIR = cwd + '/examples'
  156. src += Glob(PORT_DRV_DIR + '/*.c')
  157. # sdkcomfig.h
  158. path += [cwd]
  159. # add group
  160. ASFLAGS = ''
  161. group = DefineGroup('FT_DRIVER', src, depend=[
  162. ''],LIBS = LIBS,LIBPATH=LIBPATH, CPPPATH=path, ASFLAGS = ASFLAGS)
  163. Return('group')