SConscript 6.6 KB

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