SConscript 9.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258
  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_PE2204']):
  26. src += Glob(cwd+'/port/soc_port/pe220x/*.c') + Glob(cwd+'/port/soc_port/pe220x/pe2204/*.c')
  27. path += [PHYTIUM_SDK_DIR + '/soc/pe220x'] + [PHYTIUM_SDK_DIR + '/soc/pe220x/pe2204']
  28. if GetDepend(['TARGET_PE2202']):
  29. src += Glob(cwd+'/port/soc_port/pe220x/*.c') + Glob(cwd+'/port/soc_port/pe220x/pe2202/*.c')
  30. path += [PHYTIUM_SDK_DIR + '/soc/pe220x'] + [PHYTIUM_SDK_DIR + '/soc/pe220x/pe2202']
  31. if GetDepend(['TARGET_PD2408']):
  32. src += Glob(cwd+'/port/soc_port/pd2408/*.c')
  33. path += [PHYTIUM_SDK_DIR + '/soc/pd2408']
  34. # board port
  35. if GetDepend(['E2000D_DEMO_BOARD']):
  36. path += cwd + '/fboard_port/e2000d_demo'
  37. if GetDepend(['E2000Q_DEMO_BOARD']):
  38. path += cwd + '/fboard_port/e2000q_demo'
  39. if GetDepend(['PHYTIUMPI_FIREFLY_BOARD']):
  40. path += cwd + '/fboard_port/firefly'
  41. if GetDepend(['BSP_USING_SDCARD_FATFS']):
  42. if GetDepend(['E2000D_DEMO_BOARD']):
  43. src += Glob(cwd + '/port/fboard_port/e2000d_demo/mnt_sdcard.c')
  44. if GetDepend(['E2000Q_DEMO_BOARD']):
  45. src += Glob(cwd + '/port/fboard_port/e2000q_demo/mnt_sdcard.c')
  46. if GetDepend(['PHYTIUMPI_FIREFLY_BOARD']):
  47. src += Glob(cwd + '/port/fboard_port/firefly/mnt_sdcard.c')
  48. if GetDepend(['PD2408_TEST_A_BOARD']):
  49. src += Glob(cwd + '/port/fboard_port/pd2408_test_a/mnt_sdcard.c')
  50. else:
  51. src += Glob(cwd + '/port/fboard_port/mnt_ramdisk.c')
  52. # driver
  53. path += [PORT_DRV_DIR]
  54. ## spim
  55. if GetDepend(['BSP_USING_SPI']):
  56. src += Glob(PHYTIUM_SDK_DIR+'/drivers/spi/fspim/*.c') + Glob(PORT_DRV_DIR+'/drv_spi.c')
  57. path += [PHYTIUM_SDK_DIR + '/drivers/spi/fspim']
  58. ## spim msg
  59. if GetDepend(['BSP_USING_SPI_MSG']):
  60. src += Glob(PHYTIUM_SDK_DIR+'/drivers/spi/fspim_v2_0/*.c') + Glob(PORT_DRV_DIR+'/drv_spi_msg.c')
  61. path += [PHYTIUM_SDK_DIR + '/drivers/spi/fspim_v2_0'] + [PHYTIUM_SDK_DIR + '/drivers/msg']
  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. ## serial_v2
  67. if GetDepend(['BSP_USING_UART_MSG']):
  68. src += Glob(PHYTIUM_SDK_DIR+'/drivers/serial/fpl011/*.c')
  69. src += Glob(PHYTIUM_SDK_DIR+'/drivers/serial/fserial_v2_0/*.c') + Glob(PORT_DRV_DIR+'/drv_usart_msg.c')
  70. path += [PHYTIUM_SDK_DIR + '/drivers/serial/fpl011']
  71. path += [PHYTIUM_SDK_DIR + '/drivers/serial/fserial_v2_0'] + [PHYTIUM_SDK_DIR + '/drivers/msg/']
  72. ## can
  73. if GetDepend(['BSP_USING_CAN']):
  74. src += Glob(PHYTIUM_SDK_DIR+'/drivers/can/fcan/*.c') + Glob(PORT_DRV_DIR+'/drv_can.c')
  75. path += [PHYTIUM_SDK_DIR + '/drivers/can/fcan/']
  76. ## qspi
  77. if GetDepend(['BSP_USING_QSPI']):
  78. src += Glob(PHYTIUM_SDK_DIR+'/drivers/qspi/fqspi/*.c') + Glob(PORT_DRV_DIR+'/drv_qspi.c')
  79. path += [PHYTIUM_SDK_DIR + '/drivers/qspi/fqspi/']
  80. ## eth
  81. if GetDepend(['BSP_USING_ETH']):
  82. src += Glob(PHYTIUM_SDK_DIR+'/drivers/eth/fxmac/*.c') + Glob(PORT_DRV_DIR+'/drv_xmac.c')
  83. path += [PHYTIUM_SDK_DIR + '/drivers/eth/fxmac/'] + [PHYTIUM_SDK_DIR + '/drivers/eth/fxmac/phy/']
  84. ## eth_v2
  85. if GetDepend(['BSP_USING_ETH_MSG']):
  86. src += Glob(PHYTIUM_SDK_DIR+'/drivers/eth/fxmac_v2_0/*.c') + Glob(PORT_DRV_DIR+'/drv_xmac_msg.c')
  87. path += [PHYTIUM_SDK_DIR + '/drivers/eth/fxmac_v2_0/'] + [PHYTIUM_SDK_DIR + '/drivers/msg']
  88. ## sdif
  89. if GetDepend(['BSP_USING_SDIF']):
  90. src += Glob(PHYTIUM_SDK_DIR+'/drivers/mmc/fsdif/*.c') + Glob(PORT_DRV_DIR+'/drv_sdif.c')
  91. path += [PHYTIUM_SDK_DIR + '/drivers/mmc/fsdif/']
  92. ## sdif_msg
  93. if GetDepend(['BSP_USING_SDIF_MSG']):
  94. src += Glob(PHYTIUM_SDK_DIR+'/drivers/mmc/fsdif_v2_0/*.c') + Glob(PORT_DRV_DIR+'/drv_sdif_msg.c')
  95. path += [PHYTIUM_SDK_DIR + '/drivers/mmc/fsdif_v2_0/'] + [PHYTIUM_SDK_DIR + '/drivers/msg/']
  96. ## gpio
  97. if GetDepend(['BSP_USING_GPIO']):
  98. src += Glob(PHYTIUM_SDK_DIR+'/drivers/pin/fgpio/*.c') + Glob(PORT_DRV_DIR+'/drv_gpio.c')
  99. path += [PHYTIUM_SDK_DIR + '/drivers/pin/fgpio/']
  100. if GetDepend(['TARGET_PE220X']):
  101. src += Glob(PHYTIUM_SDK_DIR+'/soc/pe220x/fgpio_table.c')
  102. if GetDepend(['TARGET_PD2408']):
  103. src += Glob(PHYTIUM_SDK_DIR+'/soc/pd2408/fgpio_table.c')
  104. ## i2s
  105. if GetDepend(['BSP_USING_I2S']):
  106. src += Glob(PHYTIUM_SDK_DIR+'/drivers/i2s/fi2s/*.c') \
  107. + Glob(PHYTIUM_SDK_DIR+'/drivers/dma/fddma/*.c') \
  108. + Glob(PORT_DRV_DIR+'/drv_i2s.c')
  109. path += [PHYTIUM_SDK_DIR + '/drivers/i2s/fi2s/'] \
  110. + [PHYTIUM_SDK_DIR + '/drivers/dma/fddma/']
  111. ## pwm
  112. if GetDepend(['BSP_USING_PWM']):
  113. src += Glob(PHYTIUM_SDK_DIR+'/drivers/pwm/fpwm/*.c') + Glob(PORT_DRV_DIR+'/drv_pwm.c')
  114. path += [PHYTIUM_SDK_DIR + '/drivers/pwm/fpwm/']
  115. ## i2c
  116. if GetDepend(['BSP_USING_I2C']):
  117. src += Glob(PHYTIUM_SDK_DIR+'/drivers/i2c/fi2c/*.c') + Glob(PORT_DRV_DIR+'/drv_i2c.c')
  118. path += [PHYTIUM_SDK_DIR + '/drivers/i2c/fi2c/']
  119. ## i2c msg
  120. if GetDepend(['BSP_USING_I2C_MSG']):
  121. src += Glob(PHYTIUM_SDK_DIR+'/drivers/i2c/fi2c_v2_0/*.c') + Glob(PORT_DRV_DIR+'/drv_i2c_msg.c')
  122. path += [PHYTIUM_SDK_DIR + '/drivers/i2c/fi2c_v2_0/'] + [PHYTIUM_SDK_DIR + '/drivers/msg/']
  123. # fdriver dc
  124. if GetDepend(['BSP_USING_DC']):
  125. src += Glob(PHYTIUM_SDK_DIR+'/drivers/media/fdcdp/*.c') + Glob(PORT_DRV_DIR+'/drv_dc.c')
  126. path += [PHYTIUM_SDK_DIR + '/drivers/media/fdcdp/']
  127. ## iopad
  128. if GetDepend(['BSP_USING_IOPAD']):
  129. src += Glob(PHYTIUM_SDK_DIR+'/drivers/iomux/fiopad/*.c')
  130. path += [PHYTIUM_SDK_DIR + '/drivers/iomux/fiopad/']
  131. ## mio
  132. if GetDepend(['I2C_USE_MIO']):
  133. src += Glob(PHYTIUM_SDK_DIR+'/drivers/mio/fmio/*.c')
  134. path += [PHYTIUM_SDK_DIR + '/drivers/mio/fmio/']
  135. ## device
  136. if GetDepend(['BSP_USING_DEVICE']):
  137. src += Glob(PHYTIUM_SDK_DIR+'/drivers/device/fdevice/fdevice.c')
  138. path += [PHYTIUM_SDK_DIR + '/drivers/device/fdevice/']
  139. if GetDepend(['BSP_USING_ES8336']):
  140. src += Glob(PHYTIUM_SDK_DIR+'/drivers/device/fes8336/fes8336.c') + Glob(PHYTIUM_SDK_DIR+'/drivers/i2c/fi2c/*.c')
  141. path += [PHYTIUM_SDK_DIR + '/drivers/device/fes8336/'] + [PHYTIUM_SDK_DIR + '/drivers/i2c/fi2c/']
  142. if GetDepend(['BSP_USING_ES8388']):
  143. src += Glob(PHYTIUM_SDK_DIR+'/drivers/device/fes8388/fes8388.c') + Glob(PHYTIUM_SDK_DIR+'/drivers/i2c/fi2c/*.c')
  144. path += [PHYTIUM_SDK_DIR + '/drivers/device/fes8388/'] + [PHYTIUM_SDK_DIR + '/drivers/i2c/fi2c/']
  145. ## drivers_example
  146. if GetDepend(['BSP_USING_DRIVERS_EXAMPLE']):
  147. src += Glob(DRIVERS_EXAMPLE_DIR+'/*.c')
  148. path += [DRIVERS_EXAMPLE_DIR]
  149. ## board
  150. if GetDepend(['E2000D_DEMO_BOARD']):
  151. src += Glob(PHYTIUM_SDK_DIR+'/board/e2000d_demo/fio_mux.c')
  152. path += [PHYTIUM_SDK_DIR + '/board/e2000d_demo/']
  153. if GetDepend(['BSP_USING_SDIF_LAYER']):
  154. src += Glob(PHYTIUM_SDK_DIR+'/board/e2000d_demo/fsdif_timing.c')
  155. if GetDepend(['E2000Q_DEMO_BOARD']):
  156. src += Glob(PHYTIUM_SDK_DIR+'/board/e2000q_demo/fio_mux.c')
  157. path += [PHYTIUM_SDK_DIR + '/board/e2000q_demo/']
  158. if GetDepend(['BSP_USING_SDIF_LAYER']):
  159. src += Glob(PHYTIUM_SDK_DIR+'/board/e2000q_demo/fsdif_timing.c')
  160. if GetDepend(['PD2408_TEST_A_BOARD']):
  161. src += Glob(PHYTIUM_SDK_DIR+'/board/pd2408_test_a/fio_mux.c')
  162. path += [PHYTIUM_SDK_DIR + '/board/pd2408_test_a/']
  163. if GetDepend(['BSP_USING_SDIF_LAYER']):
  164. src += Glob(PHYTIUM_SDK_DIR+'/board/pd2408_test_a/fsdif_timing.c')
  165. if GetDepend(['PD2408_TEST_B_BOARD']):
  166. src += Glob(PHYTIUM_SDK_DIR+'/board/pd2408_test_b/fio_mux.c')
  167. path += [PHYTIUM_SDK_DIR + '/board/pd2408_test_b/']
  168. if GetDepend(['BSP_USING_SDIF_LAYER']):
  169. src += Glob(PHYTIUM_SDK_DIR+'/board/pd2408_test_b/fsdif_timing.c')
  170. if GetDepend(['PHYTIUMPI_FIREFLY_BOARD']):
  171. src += Glob(PHYTIUM_SDK_DIR+'/board/phytiumpi_firefly/fio_mux.c')
  172. path += [PHYTIUM_SDK_DIR + '/board/phytiumpi_firefly/']
  173. if GetDepend(['BSP_USING_SDIF_LAYER']):
  174. src += Glob(PHYTIUM_SDK_DIR+'/board/phytiumpi_firefly/fsdif_timing.c')
  175. LIBS = []
  176. LIBPATH = []
  177. ## fdriver port
  178. src += Glob(cwd+'/port/fdriver_port/*.c')
  179. path += [cwd + '/port/fdriver_port']
  180. ## fboard port
  181. path += [cwd + '/port/fboard_port']
  182. ## lwip port
  183. src += Glob(cwd+'/port/lwip_port/*.c')
  184. path += [cwd + '/port/lwip_port']
  185. ## cherryusb port
  186. src += Glob(cwd + '/port/cherryusb_port/*.c')
  187. # phytium ports rt-thread examples
  188. PORT_DRV_DIR = cwd + '/examples'
  189. src += Glob(PORT_DRV_DIR + '/*.c')
  190. # sdkcomfig.h
  191. path += [cwd]
  192. # add group
  193. ASFLAGS = ''
  194. group = DefineGroup('FT_DRIVER', src, depend=[
  195. ''],LIBS = LIBS,LIBPATH=LIBPATH, CPPPATH=path, ASFLAGS = ASFLAGS)
  196. Return('group')