1from building import * 2 3cwd = GetCurrentDir() 4path = [cwd] 5path += [cwd + '/common'] 6path += [cwd + '/core'] 7path += [cwd + '/class/hub'] 8path += [cwd + '/class/cdc'] 9path += [cwd + '/class/msc'] 10path += [cwd + '/class/hid'] 11path += [cwd + '/class/audio'] 12path += [cwd + '/class/video'] 13path += [cwd + '/class/wireless'] 14path += [cwd + '/class/midi'] 15path += [cwd + '/class/adb'] 16path += [cwd + '/class/dfu'] 17path += [cwd + '/class/midi'] 18path += [cwd + '/class/vendor/net'] 19path += [cwd + '/class/vendor/serial'] 20path += [cwd + '/class/vendor/wifi'] 21src = [] 22 23LIBS = [] 24LIBPATH = [] 25CPPDEFINES = [] 26 27# USB DEVICE 28if GetDepend(['RT_CHERRYUSB_DEVICE']): 29 path += [cwd + '/osal'] 30 src += Glob('core/usbd_core.c') 31 src += Glob('osal/usb_osal_rtthread.c') 32 33 if GetDepend(['RT_CHERRYUSB_DEVICE_SPEED_HS']): 34 CPPDEFINES+=['CONFIG_USB_HS'] 35 36 if GetDepend(['RT_CHERRYUSB_DEVICE_FSDEV_ST']): 37 src += Glob('port/fsdev/usb_dc_fsdev.c') 38 src += Glob('port/fsdev/usb_glue_st.c') 39 if GetDepend(['RT_CHERRYUSB_DEVICE_FSDEV_CUSTOM']): 40 src += Glob('port/fsdev/usb_dc_fsdev.c') 41 if GetDepend(['RT_CHERRYUSB_DEVICE_DWC2_ST']): 42 src += Glob('port/dwc2/usb_dc_dwc2.c') 43 src += Glob('port/dwc2/usb_glue_st.c') 44 if GetDepend(['RT_CHERRYUSB_DEVICE_DWC2_ESP']): 45 src += Glob('port/dwc2/usb_dc_dwc2.c') 46 src += Glob('port/dwc2/usb_glue_esp.c') 47 if GetDepend(['RT_CHERRYUSB_DEVICE_DWC2_KENDRYTE']): 48 src += Glob('port/dwc2/usb_dc_dwc2.c') 49 src += Glob('port/dwc2/usb_glue_kendryte.c') 50 if GetDepend(['RT_CHERRYUSB_DEVICE_DWC2_AT']): 51 src += Glob('port/dwc2/usb_dc_dwc2.c') 52 src += Glob('port/dwc2/usb_glue_at.c') 53 if GetDepend(['RT_CHERRYUSB_DEVICE_DWC2_HC']): 54 src += Glob('port/dwc2/usb_dc_dwc2.c') 55 src += Glob('port/dwc2/usb_glue_hc.c') 56 if GetDepend(['RT_CHERRYUSB_DEVICE_DWC2_NATION']): 57 src += Glob('port/dwc2/usb_dc_dwc2.c') 58 src += Glob('port/dwc2/usb_glue_nation.c') 59 if GetDepend(['RT_CHERRYUSB_DEVICE_DWC2_GD']): 60 src += Glob('port/dwc2/usb_dc_dwc2.c') 61 src += Glob('port/dwc2/usb_glue_gd.c') 62 if GetDepend(['RT_CHERRYUSB_DEVICE_DWC2_CUSTOM']): 63 src += Glob('port/dwc2/usb_dc_dwc2.c') 64 if GetDepend(['RT_CHERRYUSB_DEVICE_MUSB_ES']): 65 src += Glob('port/musb/usb_dc_musb.c') 66 src += Glob('port/musb/usb_glue_es.c') 67 if GetDepend(['RT_CHERRYUSB_DEVICE_MUSB_SUNXI']): 68 src += Glob('port/musb/usb_dc_musb.c') 69 src += Glob('port/musb/usb_glue_sunxi.c') 70 if GetDepend(['RT_CHERRYUSB_DEVICE_MUSB_BK']): 71 src += Glob('port/musb/usb_dc_musb.c') 72 src += Glob('port/musb/usb_glue_bk.c') 73 if GetDepend(['RT_CHERRYUSB_DEVICE_MUSB_SIFLI']): 74 src += Glob('port/musb/usb_dc_musb.c') 75 src += Glob('port/musb/usb_glue_sifli.c') 76 if GetDepend(['RT_CHERRYUSB_DEVICE_MUSB_CUSTOM']): 77 src += Glob('port/musb/usb_dc_musb.c') 78 if GetDepend(['RT_CHERRYUSB_DEVICE_CHIPIDEA_MCX']): 79 path += [cwd + '/port/chipidea'] 80 src += Glob('port/chipidea/usb_dc_chipidea.c') 81 src += Glob('port/nxp/usb_glue_mcx.c') 82 if GetDepend(['RT_CHERRYUSB_DEVICE_CHIPIDEA_CUSTOM']): 83 path += [cwd + '/port/chipidea'] 84 src += Glob('port/chipidea/usb_dc_chipidea.c') 85 if GetDepend(['RT_CHERRYUSB_DEVICE_KINETIS_MCX']): 86 src += Glob('port/kinetis/usb_dc_kinetis.c') 87 src += Glob('port/kinetis/usb_glue_mcx.c') 88 if GetDepend(['RT_CHERRYUSB_DEVICE_KINETIS_CUSTOM']): 89 src += Glob('port/kinetis/usb_dc_kinetis.c') 90 if GetDepend(['RT_CHERRYUSB_DEVICE_BL']): 91 src += Glob('port/bouffalolab/usb_dc_bl.c') 92 if GetDepend(['RT_CHERRYUSB_DEVICE_HPM']): 93 path += [cwd + '/port/hpmicro'] 94 src += Glob('port/hpmicro/usb_dc_hpm.c') 95 src += Glob('port/hpmicro/usb_glue_hpm.c') 96 if GetDepend(['RT_CHERRYUSB_DEVICE_AIC']): 97 src += Glob('port/aic/usb_dc_aic.c') 98 src += Glob('port/aic/usb_dc_aic_ll.c') 99 if GetDepend(['RT_CHERRYUSB_DEVICE_CH32']): 100 if GetDepend(['RT_CHERRYUSB_DEVICE_HS']): 101 src += Glob('port/ch32/usb_dc_usbhs.c') 102 else: 103 src += Glob('port/ch32/usb_dc_usbfs.c') 104 if GetDepend(['RT_CHERRYUSB_DEVICE_PUSB2']): 105 path += [cwd + '/port/pusb2/rt-thread'] 106 src += Glob('port/pusb2/rt-thread/usb_dc_glue_phytium.c') 107 if GetDepend(['ARCH_ARMV8']): 108 LIBPATH = [cwd + '/port/pusb2'] 109 LIBS = ['libpusb2_dc_a64.a'] 110 if GetDepend(['ARCH_ARM_CORTEX_A']): 111 LIBPATH = [cwd + '/port/pusb2'] 112 LIBS = ['libpusb2_dc_a32_softfp_neon.a'] 113 if GetDepend(['RT_CHERRYUSB_DEVICE_NRF5X']): 114 src += Glob('port/nrf5x/usb_dc_nrf5x.c') 115 116 if GetDepend(['RT_CHERRYUSB_DEVICE_CDC_ACM']): 117 src += Glob('class/cdc/usbd_cdc_acm.c') 118 if GetDepend(['RT_CHERRYUSB_DEVICE_HID']): 119 src += Glob('class/hid/usbd_hid.c') 120 if GetDepend(['RT_CHERRYUSB_DEVICE_MSC']): 121 src += Glob('class/msc/usbd_msc.c') 122 if GetDepend(['RT_CHERRYUSB_DEVICE_AUDIO']): 123 src += Glob('class/audio/usbd_audio.c') 124 if GetDepend(['RT_CHERRYUSB_DEVICE_VIDEO']): 125 src += Glob('class/video/usbd_video.c') 126 if GetDepend(['RT_CHERRYUSB_DEVICE_CDC_RNDIS']): 127 src += Glob('class/wireless/usbd_rndis.c') 128 if GetDepend(['RT_CHERRYUSB_DEVICE_CDC_ECM']): 129 src += Glob('class/cdc/usbd_cdc_ecm.c') 130 if GetDepend(['RT_CHERRYUSB_DEVICE_CDC_NCM']): 131 src += Glob('class/cdc/usbd_cdc_ncm.c') 132 if GetDepend(['RT_CHERRYUSB_DEVICE_DFU']): 133 src += Glob('class/dfu/usbd_dfu.c') 134 if GetDepend(['RT_CHERRYUSB_DEVICE_ADB']): 135 src += Glob('class/adb/usbd_adb.c') 136 src += Glob('platform/rtthread/usbd_adb_shell.c') 137 138 if GetDepend(['RT_CHERRYUSB_DEVICE_CDC_ACM_CHARDEV']): 139 src += Glob('platform/rtthread/usbd_serial.c') 140 141 if GetDepend(['RT_CHERRYUSB_DEVICE_TEMPLATE_CDC_ACM']): 142 src += Glob('demo/cdc_acm_template.c') 143 if GetDepend(['RT_CHERRYUSB_DEVICE_TEMPLATE_MSC']) or GetDepend(['RT_CHERRYUSB_DEVICE_TEMPLATE_MSC_BLKDEV']): 144 src += Glob('demo/msc_ram_template.c') 145 if GetDepend(['RT_CHERRYUSB_DEVICE_TEMPLATE_HID_MOUSE']): 146 src += Glob('demo/hid_mouse_template.c') 147 if GetDepend(['RT_CHERRYUSB_DEVICE_TEMPLATE_HID_KEYBOARD']): 148 src += Glob('demo/hid_keyboard_template.c') 149 if GetDepend(['RT_CHERRYUSB_DEVICE_TEMPLATE_HID_CUSTOM']): 150 src += Glob('demo/hid_custom_inout_template.c') 151 if GetDepend(['RT_CHERRYUSB_DEVICE_TEMPLATE_VIDEO']): 152 src += Glob('demo/video_static_mjpeg_template.c') 153 if GetDepend(['RT_CHERRYUSB_DEVICE_TEMPLATE_AUDIO_V1_MIC_SPEAKER']): 154 src += Glob('demo/audio_v1_mic_speaker_multichan_template.c') 155 if GetDepend(['RT_CHERRYUSB_DEVICE_TEMPLATE_AUDIO_V2_MIC_SPEAKER']): 156 src += Glob('demo/audio_v2_mic_speaker_multichan_template.c') 157 if GetDepend(['RT_CHERRYUSB_DEVICE_TEMPLATE_CDC_RNDIS']): 158 src += Glob('demo/cdc_rndis_template.c') 159 if GetDepend(['RT_CHERRYUSB_DEVICE_TEMPLATE_CDC_ECM']): 160 src += Glob('demo/cdc_ecm_template.c') 161 if GetDepend(['RT_CHERRYUSB_DEVICE_TEMPLATE_CDC_NCM']): 162 src += Glob('demo/cdc_ncm_template.c') 163 if GetDepend(['RT_CHERRYUSB_DEVICE_TEMPLATE_CDC_ACM_MSC']): 164 src += Glob('demo/cdc_acm_msc_template.c') 165 if GetDepend(['RT_CHERRYUSB_DEVICE_TEMPLATE_CDC_ACM_MSC_HID']): 166 src += Glob('demo/cdc_acm_hid_msc_template.c') 167 if GetDepend(['RT_CHERRYUSB_DEVICE_TEMPLATE_WINUSBV1']): 168 src += Glob('demo/winusb1.0_template.c') 169 if GetDepend(['RT_CHERRYUSB_DEVICE_TEMPLATE_WINUSBV2_CDC']): 170 src += Glob('demo/winusb2.0_cdc_template.c') 171 if GetDepend(['RT_CHERRYUSB_DEVICE_TEMPLATE_WINUSBV2_HID']): 172 src += Glob('demo/winusb2.0_hid_template.c') 173 if GetDepend(['RT_CHERRYUSB_DEVICE_TEMPLATE_ADB']): 174 src += Glob('demo/adb/usbd_adb_template.c') 175 if GetDepend(['RT_CHERRYUSB_DEVICE_TEMPLATE_CDC_ACM_CHARDEV']): 176 src += Glob('demo/cdc_acm_rttchardev_template.c') 177 178# USB HOST 179if GetDepend(['RT_CHERRYUSB_HOST']): 180 src += Glob('core/usbh_core.c') 181 src += Glob('class/hub/usbh_hub.c') 182 src += Glob('osal/usb_osal_rtthread.c') 183 184 if GetDepend(['RT_CHERRYUSB_HOST_EHCI_BL']): 185 src += Glob('port/ehci/usb_hc_ehci.c') 186 src += Glob('port/ehci/usb_glue_bouffalo.c') 187 if GetDepend(['RT_CHERRYUSB_HOST_EHCI_HPM']): 188 path += [cwd + '/port/hpmicro'] 189 src += Glob('port/ehci/usb_hc_ehci.c') 190 src += Glob('port/hpmicro/usb_hc_hpm.c') 191 src += Glob('port/hpmicro/usb_glue_hpm.c') 192 if GetDepend(['RT_CHERRYUSB_HOST_EHCI_AIC']): 193 path += [cwd + '/port/ehci'] 194 path += [cwd + '/port/ohci'] 195 src += Glob('port/ehci/usb_hc_ehci.c') 196 src += Glob('port/ehci/usb_glue_aic.c') 197 src += Glob('port/ohci/usb_hc_ohci.c') 198 if GetDepend(['RT_CHERRYUSB_HOST_EHCI_MCX']): 199 path += [cwd + '/port/chipidea'] 200 src += Glob('port/ehci/usb_hc_ehci.c') 201 src += Glob('port/nxp/usb_glue_mcx.c') 202 if GetDepend(['RT_CHERRYUSB_HOST_EHCI_NUC980']): 203 src += Glob('port/ehci/usb_hc_ehci.c') 204 src += Glob('port/ehci/usb_glue_nuc980.c') 205 if GetDepend(['RT_CHERRYUSB_HOST_EHCI_MA35D0']): 206 src += Glob('port/ehci/usb_hc_ehci.c') 207 src += Glob('port/ehci/usb_glue_ma35d0.c') 208 if GetDepend(['RT_CHERRYUSB_HOST_EHCI_CUSTOM']): 209 src += Glob('port/ehci/usb_hc_ehci.c') 210 if GetDepend(['RT_CHERRYUSB_HOST_DWC2_ST']): 211 src += Glob('port/dwc2/usb_hc_dwc2.c') 212 src += Glob('port/dwc2/usb_glue_st.c') 213 if GetDepend(['RT_CHERRYUSB_HOST_DWC2_ESP']): 214 src += Glob('port/dwc2/usb_hc_dwc2.c') 215 src += Glob('port/dwc2/usb_glue_esp.c') 216 if GetDepend(['RT_CHERRYUSB_HOST_DWC2_KENDRYTE']): 217 src += Glob('port/dwc2/usb_hc_dwc2.c') 218 src += Glob('port/dwc2/usb_glue_kendryte.c') 219 if GetDepend(['RT_CHERRYUSB_HOST_DWC2_HC']): 220 src += Glob('port/dwc2/usb_hc_dwc2.c') 221 src += Glob('port/dwc2/usb_glue_hc.c') 222 if GetDepend(['RT_CHERRYUSB_HOST_DWC2_NATION']): 223 src += Glob('port/dwc2/usb_hc_dwc2.c') 224 src += Glob('port/dwc2/usb_glue_nation.c') 225 if GetDepend(['RT_CHERRYUSB_HOST_DWC2_CUSTOM']): 226 src += Glob('port/dwc2/usb_hc_dwc2.c') 227 if GetDepend(['RT_CHERRYUSB_HOST_MUSB_STANDARD']): 228 src += Glob('port/musb/usb_hc_musb.c') 229 if GetDepend(['RT_CHERRYUSB_HOST_MUSB_ES']): 230 src += Glob('port/musb/usb_hc_musb.c') 231 src += Glob('port/musb/usb_glue_es.c') 232 if GetDepend(['RT_CHERRYUSB_HOST_MUSB_SUNXI']): 233 src += Glob('port/musb/usb_hc_musb.c') 234 src += Glob('port/musb/usb_glue_sunxi.c') 235 if GetDepend(['RT_CHERRYUSB_HOST_MUSB_BK']): 236 src += Glob('port/musb/usb_hc_musb.c') 237 src += Glob('port/musb/usb_glue_bk.c') 238 if GetDepend(['RT_CHERRYUSB_HOST_MUSB_SIFLI']): 239 src += Glob('port/musb/usb_hc_musb.c') 240 src += Glob('port/musb/usb_glue_sifli.c') 241 if GetDepend(['RT_CHERRYUSB_HOST_MUSB_CUSTOM']): 242 src += Glob('port/musb/usb_hc_musb.c') 243 if GetDepend(['RT_CHERRYUSB_HOST_KINETIS_MCX']): 244 src += Glob('port/kinetis/usb_hc_kinetis.c') 245 src += Glob('port/kinetis/usb_glue_mcx.c') 246 if GetDepend(['RT_CHERRYUSB_HOST_KINETIS_CUSTOM']): 247 src += Glob('port/kinetis/usb_hc_kinetis.c') 248 if GetDepend(['RT_CHERRYUSB_HOST_PUSB2']): 249 path += [cwd + '/port/pusb2/rt-thread'] 250 src += Glob('port/pusb2/rt-thread/usb_hc_glue_phytium.c') 251 if GetDepend(['ARCH_ARMV8']): 252 LIBPATH = [cwd + '/port/pusb2'] 253 LIBS = ['libpusb2_hc_a64.a'] 254 if GetDepend(['ARCH_ARM_CORTEX_A']): 255 LIBPATH = [cwd + '/port/pusb2'] 256 LIBS = ['libpusb2_hc_a32_softfp_neon.a'] 257 258 if GetDepend(['RT_CHERRYUSB_HOST_XHCI']): 259 path += [cwd + '/port/xhci/phytium/rt-thread'] 260 src += Glob('port/xhci/phytium/rt-thread/usb_glue_phytium_plat.c') 261 src += Glob('port/xhci/phytium/rt-thread/usb_glue_phytium.c') 262 if GetDepend(['ARCH_ARMV8']): 263 LIBPATH = [cwd + '/port/xhci/phytium'] 264 LIBS = ['libxhci_a64.a'] 265 if GetDepend(['ARCH_ARM_CORTEX_A']): 266 LIBPATH = [cwd + '/port/xhci/phytium'] 267 LIBS = ['libxhci_a32_softfp_neon.a'] 268 269 if GetDepend(['RT_CHERRYUSB_HOST_CDC_ACM']): 270 src += Glob('class/cdc/usbh_cdc_acm.c') 271 if GetDepend(['RT_CHERRYUSB_HOST_HID']): 272 src += Glob('class/hid/usbh_hid.c') 273 if GetDepend(['RT_CHERRYUSB_HOST_MSC']): 274 src += Glob('class/msc/usbh_msc.c') 275 if GetDepend(['RT_CHERRYUSB_HOST_CDC_RNDIS']): 276 src += Glob('class/wireless/usbh_rndis.c') 277 if GetDepend(['RT_CHERRYUSB_HOST_CDC_ECM']): 278 src += Glob('class/cdc/usbh_cdc_ecm.c') 279 if GetDepend(['RT_CHERRYUSB_HOST_CDC_NCM']): 280 src += Glob('class/cdc/usbh_cdc_ncm.c') 281 if GetDepend(['RT_CHERRYUSB_HOST_VIDEO']): 282 src += Glob('class/video/usbh_video.c') 283 if GetDepend(['RT_CHERRYUSB_HOST_AUDIO']): 284 src += Glob('class/audio/usbh_audio.c') 285 if GetDepend(['RT_CHERRYUSB_HOST_BLUETOOTH']): 286 src += Glob('class/wireless/usbh_bluetooth.c') 287 if GetDepend(['RT_CHERRYUSB_HOST_ASIX']): 288 src += Glob('class/vendor/net/usbh_asix.c') 289 if GetDepend(['RT_CHERRYUSB_HOST_RTL8152']): 290 src += Glob('class/vendor/net/usbh_rtl8152.c') 291 if GetDepend(['RT_CHERRYUSB_HOST_FTDI']): 292 src += Glob('class/vendor/serial/usbh_ftdi.c') 293 if GetDepend(['RT_CHERRYUSB_HOST_CH34X']): 294 src += Glob('class/vendor/serial/usbh_ch34x.c') 295 if GetDepend(['RT_CHERRYUSB_HOST_CP210X']): 296 src += Glob('class/vendor/serial/usbh_cp210x.c') 297 if GetDepend(['RT_CHERRYUSB_HOST_PL2303']): 298 src += Glob('class/vendor/serial/usbh_pl2303.c') 299 300 if GetDepend(['CONFIG_TEST_USBH_HID']): 301 src += Glob('demo/usb_host.c') 302 303 if GetDepend(['RT_CHERRYUSB_HOST_CDC_ACM']) \ 304 or GetDepend(['RT_CHERRYUSB_HOST_FTDI']) \ 305 or GetDepend(['RT_CHERRYUSB_HOST_CH34X']) \ 306 or GetDepend(['RT_CHERRYUSB_HOST_CP210X']) \ 307 or GetDepend(['RT_CHERRYUSB_HOST_PL2303']): 308 src += Glob('platform/rtthread/usbh_serial.c') 309 310 if GetDepend('RT_USING_DFS') and GetDepend(['RT_CHERRYUSB_HOST_MSC']): 311 src += Glob('platform/rtthread/usbh_dfs.c') 312 313 if GetDepend('RT_CHERRYUSB_HOST_CDC_ECM') \ 314 or GetDepend('RT_CHERRYUSB_HOST_CDC_RNDIS') \ 315 or GetDepend('RT_CHERRYUSB_HOST_CDC_NCM') \ 316 or GetDepend('RT_CHERRYUSB_HOST_ASIX') \ 317 or GetDepend('RT_CHERRYUSB_HOST_RTL8152'): 318 src += Glob('platform/rtthread/usbh_lwip.c') 319 320src += Glob('platform/rtthread/usb_msh.c') 321src += Glob('platform/rtthread/usb_check.c') 322 323group = DefineGroup('CherryUSB', src, depend = ['RT_USING_CHERRYUSB'], LIBS = LIBS, LIBPATH=LIBPATH, CPPPATH = path, CPPDEFINES = CPPDEFINES) 324 325Return('group') 326 327