Преглед изворни кода

Add IAR project connections.

MasterPhi пре 4 година
родитељ
комит
51dddf63fa
24 измењених фајлова са 3603 додато и 0 уклоњено
  1. 154 0
      examples/device/audio_4_channel_mic/iar_audio_4_channel_mic.ipcf
  2. 154 0
      examples/device/audio_test/iar_audio_test.ipcf
  3. 153 0
      examples/device/board_test/iar_board_test.ipcf
  4. 154 0
      examples/device/cdc_dual_ports/iar_cdc_dual_ports.ipcf
  5. 155 0
      examples/device/cdc_msc/iar_cdc_msc.ipcf
  6. 157 0
      examples/device/cdc_msc_freertos/iar_cdc_msc_freertos.ipcf
  7. 154 0
      examples/device/dfu/iar_dfu.ipcf
  8. 154 0
      examples/device/dfu_runtime/iar_dfu_runtime.ipcf
  9. 155 0
      examples/device/dynamic_configuration/iar_dynamic_configuration.ipcf
  10. 155 0
      examples/device/hid_boot_interface/iar_hid_boot_interface.ipcf
  11. 155 0
      examples/device/hid_composite/iar_hid_composite.ipcf
  12. 157 0
      examples/device/hid_composite_freertos/iar_hid_composite_freertos.ipcf
  13. 154 0
      examples/device/hid_generic_inout/iar_hid_generic_inout.ipcf
  14. 154 0
      examples/device/hid_multiple_interface/iar_hid_multiple_interface.ipcf
  15. 154 0
      examples/device/midi_test/iar_midi_test.ipcf
  16. 155 0
      examples/device/msc_dual_lun/iar_msc_dual_lun.ipcf
  17. 155 0
      examples/device/net_lwip_webserver/iar_net_lwip_webserver.ipcf
  18. 155 0
      examples/device/uac2_headset/iar_uac2_headset.ipcf
  19. 157 0
      examples/device/usbtmc/iar_usbtmc.ipcf
  20. 155 0
      examples/device/webusb_serial/iar_webusb_serial.ipcf
  21. 155 0
      examples/host/cdc_msc_hid/iar_cdc_msc_hid.ipcf
  22. 154 0
      examples/host/hid_controller/iar_hid_controller.ipcf
  23. 147 0
      tools/iar.ipcf
  24. 51 0
      tools/iar_gen.py

+ 154 - 0
examples/device/audio_4_channel_mic/iar_audio_4_channel_mic.ipcf

@@ -0,0 +1,154 @@
+<?xml version="1.0" ?>
+<iarProjectConnection name="tinyusb" oneShot="true">
+	<includePath>
+		<path>$TUSB_DIR$/src</path>
+		<path>$TUSB_DIR$/lib/SEGGER_RTT/RTT</path>
+		<path>$PROJ_DIR$</path>
+		<path>$TUSB_DIR$/hw</path>
+	</includePath>
+	<files>
+		<group name="src/device">
+			<path>$TUSB_DIR$/src/device/usbd.c</path>
+			<path>$TUSB_DIR$/src/device/usbd_control.c</path>
+		</group>
+		<group name="src/common">
+			<path>$TUSB_DIR$/src/common/tusb_fifo.c</path>
+		</group>
+		<group name="src/class/audio">
+			<path>$TUSB_DIR$/src/class/audio/audio_device.c</path>
+		</group>
+		<group name="src/class/bth">
+			<path>$TUSB_DIR$/src/class/bth/bth_device.c</path>
+		</group>
+		<group name="src/class/cdc">
+			<path>$TUSB_DIR$/src/class/cdc/cdc_device.c</path>
+			<path>$TUSB_DIR$/src/class/cdc/cdc_host.c</path>
+			<path>$TUSB_DIR$/src/class/cdc/cdc_rndis_host.c</path>
+		</group>
+		<group name="src/class/dfu">
+			<path>$TUSB_DIR$/src/class/dfu/dfu_device.c</path>
+			<path>$TUSB_DIR$/src/class/dfu/dfu_rt_device.c</path>
+		</group>
+		<group name="src/class/hid">
+			<path>$TUSB_DIR$/src/class/hid/hid_device.c</path>
+			<path>$TUSB_DIR$/src/class/hid/hid_host.c</path>
+		</group>
+		<group name="src/class/midi">
+			<path>$TUSB_DIR$/src/class/midi/midi_device.c</path>
+		</group>
+		<group name="src/class/msc">
+			<path>$TUSB_DIR$/src/class/msc/msc_device.c</path>
+			<path>$TUSB_DIR$/src/class/msc/msc_host.c</path>
+		</group>
+		<group name="src/class/net">
+			<path>$TUSB_DIR$/src/class/net/net_device.c</path>
+		</group>
+		<group name="src/class/usbtmc">
+			<path>$TUSB_DIR$/src/class/usbtmc/usbtmc_device.c</path>
+		</group>
+		<group name="src/class/vendor">
+			<path>$TUSB_DIR$/src/class/vendor/vendor_device.c</path>
+			<path>$TUSB_DIR$/src/class/vendor/vendor_host.c</path>
+		</group>
+		<group name="src">
+			<path>$TUSB_DIR$/src/tusb.c</path>
+		</group>
+		<group name="src/host">
+			<path>$TUSB_DIR$/src/host/hub.c</path>
+			<path>$TUSB_DIR$/src/host/usbh.c</path>
+			<path>$TUSB_DIR$/src/host/usbh_control.c</path>
+		</group>
+		<group name="src/portable/dialog/da146xx">
+			<path>$TUSB_DIR$/src/portable/dialog/da146xx/dcd_da146xx.c</path>
+		</group>
+		<group name="src/portable/ehci">
+			<path>$TUSB_DIR$/src/portable/ehci/ehci.c</path>
+		</group>
+		<group name="src/portable/espressif/esp32sx">
+			<path>$TUSB_DIR$/src/portable/espressif/esp32sx/dcd_esp32sx.c</path>
+		</group>
+		<group name="src/portable/microchip/samd">
+			<path>$TUSB_DIR$/src/portable/microchip/samd/dcd_samd.c</path>
+		</group>
+		<group name="src/portable/microchip/samg">
+			<path>$TUSB_DIR$/src/portable/microchip/samg/dcd_samg.c</path>
+		</group>
+		<group name="src/portable/microchip/samx7x">
+			<path>$TUSB_DIR$/src/portable/microchip/samx7x/dcd_samx7x.c</path>
+		</group>
+		<group name="src/portable/mindmotion/mm32">
+			<path>$TUSB_DIR$/src/portable/mindmotion/mm32/dcd_mm32f327x_otg.c</path>
+		</group>
+		<group name="src/portable/nordic/nrf5x">
+			<path>$TUSB_DIR$/src/portable/nordic/nrf5x/dcd_nrf5x.c</path>
+		</group>
+		<group name="src/portable/nuvoton/nuc120">
+			<path>$TUSB_DIR$/src/portable/nuvoton/nuc120/dcd_nuc120.c</path>
+		</group>
+		<group name="src/portable/nuvoton/nuc121">
+			<path>$TUSB_DIR$/src/portable/nuvoton/nuc121/dcd_nuc121.c</path>
+		</group>
+		<group name="src/portable/nuvoton/nuc505">
+			<path>$TUSB_DIR$/src/portable/nuvoton/nuc505/dcd_nuc505.c</path>
+		</group>
+		<group name="src/portable/nxp/khci">
+			<path>$TUSB_DIR$/src/portable/nxp/khci/dcd_khci.c</path>
+		</group>
+		<group name="src/portable/nxp/lpc17_40">
+			<path>$TUSB_DIR$/src/portable/nxp/lpc17_40/dcd_lpc17_40.c</path>
+			<path>$TUSB_DIR$/src/portable/nxp/lpc17_40/hcd_lpc17_40.c</path>
+		</group>
+		<group name="src/portable/nxp/lpc_ip3511">
+			<path>$TUSB_DIR$/src/portable/nxp/lpc_ip3511/dcd_lpc_ip3511.c</path>
+		</group>
+		<group name="src/portable/nxp/transdimension">
+			<path>$TUSB_DIR$/src/portable/nxp/transdimension/dcd_transdimension.c</path>
+			<path>$TUSB_DIR$/src/portable/nxp/transdimension/hcd_transdimension.c</path>
+		</group>
+		<group name="src/portable/ohci">
+			<path>$TUSB_DIR$/src/portable/ohci/ohci.c</path>
+		</group>
+		<group name="src/portable/raspberrypi/rp2040">
+			<path>$TUSB_DIR$/src/portable/raspberrypi/rp2040/dcd_rp2040.c</path>
+			<path>$TUSB_DIR$/src/portable/raspberrypi/rp2040/hcd_rp2040.c</path>
+			<path>$TUSB_DIR$/src/portable/raspberrypi/rp2040/rp2040_usb.c</path>
+		</group>
+		<group name="src/portable/renesas/usba">
+			<path>$TUSB_DIR$/src/portable/renesas/usba/dcd_usba.c</path>
+		</group>
+		<group name="src/portable/silabs/efm32">
+			<path>$TUSB_DIR$/src/portable/silabs/efm32/dcd_efm32.c</path>
+		</group>
+		<group name="src/portable/sony/cxd56">
+			<path>$TUSB_DIR$/src/portable/sony/cxd56/dcd_cxd56.c</path>
+		</group>
+		<group name="src/portable/st/stm32_fsdev">
+			<path>$TUSB_DIR$/src/portable/st/stm32_fsdev/dcd_stm32_fsdev.c</path>
+		</group>
+		<group name="src/portable/st/synopsys">
+			<path>$TUSB_DIR$/src/portable/st/synopsys/dcd_synopsys.c</path>
+		</group>
+		<group name="src/portable/template">
+			<path>$TUSB_DIR$/src/portable/template/dcd_template.c</path>
+		</group>
+		<group name="src/portable/ti/msp430x5xx">
+			<path>$TUSB_DIR$/src/portable/ti/msp430x5xx/dcd_msp430x5xx.c</path>
+		</group>
+		<group name="src/portable/valentyusb/eptri">
+			<path>$TUSB_DIR$/src/portable/valentyusb/eptri/dcd_eptri.c</path>
+		</group>
+		<group name="lib/SEGGER_RTT">
+			<path>$TUSB_DIR$/lib/SEGGER_RTT/RTT/SEGGER_RTT.c</path>
+			<path>$TUSB_DIR$/lib/SEGGER_RTT/RTT/SEGGER_RTT_printf.c</path>
+			<path>$TUSB_DIR$/lib/SEGGER_RTT/Syscalls/SEGGER_RTT_Syscalls_IAR.c</path>
+		</group>
+		<group name="bsp">
+			<path>$TUSB_DIR$/hw/bsp/board.c</path>
+		</group>
+		<group name="example">
+			<path copyTo="$PROJ_DIR$/main.c">$TUSB_DIR$/examples/device/audio_4_channel_mic/src/main.c</path>
+			<path copyTo="$PROJ_DIR$/tusb_config.h">$TUSB_DIR$/examples/device/audio_4_channel_mic/src/tusb_config.h</path>
+			<path copyTo="$PROJ_DIR$/usb_descriptors.c">$TUSB_DIR$/examples/device/audio_4_channel_mic/src/usb_descriptors.c</path>
+		</group>
+	</files>
+</iarProjectConnection>

+ 154 - 0
examples/device/audio_test/iar_audio_test.ipcf

@@ -0,0 +1,154 @@
+<?xml version="1.0" ?>
+<iarProjectConnection name="tinyusb" oneShot="true">
+	<includePath>
+		<path>$TUSB_DIR$/src</path>
+		<path>$TUSB_DIR$/lib/SEGGER_RTT/RTT</path>
+		<path>$PROJ_DIR$</path>
+		<path>$TUSB_DIR$/hw</path>
+	</includePath>
+	<files>
+		<group name="src/device">
+			<path>$TUSB_DIR$/src/device/usbd.c</path>
+			<path>$TUSB_DIR$/src/device/usbd_control.c</path>
+		</group>
+		<group name="src/common">
+			<path>$TUSB_DIR$/src/common/tusb_fifo.c</path>
+		</group>
+		<group name="src/class/audio">
+			<path>$TUSB_DIR$/src/class/audio/audio_device.c</path>
+		</group>
+		<group name="src/class/bth">
+			<path>$TUSB_DIR$/src/class/bth/bth_device.c</path>
+		</group>
+		<group name="src/class/cdc">
+			<path>$TUSB_DIR$/src/class/cdc/cdc_device.c</path>
+			<path>$TUSB_DIR$/src/class/cdc/cdc_host.c</path>
+			<path>$TUSB_DIR$/src/class/cdc/cdc_rndis_host.c</path>
+		</group>
+		<group name="src/class/dfu">
+			<path>$TUSB_DIR$/src/class/dfu/dfu_device.c</path>
+			<path>$TUSB_DIR$/src/class/dfu/dfu_rt_device.c</path>
+		</group>
+		<group name="src/class/hid">
+			<path>$TUSB_DIR$/src/class/hid/hid_device.c</path>
+			<path>$TUSB_DIR$/src/class/hid/hid_host.c</path>
+		</group>
+		<group name="src/class/midi">
+			<path>$TUSB_DIR$/src/class/midi/midi_device.c</path>
+		</group>
+		<group name="src/class/msc">
+			<path>$TUSB_DIR$/src/class/msc/msc_device.c</path>
+			<path>$TUSB_DIR$/src/class/msc/msc_host.c</path>
+		</group>
+		<group name="src/class/net">
+			<path>$TUSB_DIR$/src/class/net/net_device.c</path>
+		</group>
+		<group name="src/class/usbtmc">
+			<path>$TUSB_DIR$/src/class/usbtmc/usbtmc_device.c</path>
+		</group>
+		<group name="src/class/vendor">
+			<path>$TUSB_DIR$/src/class/vendor/vendor_device.c</path>
+			<path>$TUSB_DIR$/src/class/vendor/vendor_host.c</path>
+		</group>
+		<group name="src">
+			<path>$TUSB_DIR$/src/tusb.c</path>
+		</group>
+		<group name="src/host">
+			<path>$TUSB_DIR$/src/host/hub.c</path>
+			<path>$TUSB_DIR$/src/host/usbh.c</path>
+			<path>$TUSB_DIR$/src/host/usbh_control.c</path>
+		</group>
+		<group name="src/portable/dialog/da146xx">
+			<path>$TUSB_DIR$/src/portable/dialog/da146xx/dcd_da146xx.c</path>
+		</group>
+		<group name="src/portable/ehci">
+			<path>$TUSB_DIR$/src/portable/ehci/ehci.c</path>
+		</group>
+		<group name="src/portable/espressif/esp32sx">
+			<path>$TUSB_DIR$/src/portable/espressif/esp32sx/dcd_esp32sx.c</path>
+		</group>
+		<group name="src/portable/microchip/samd">
+			<path>$TUSB_DIR$/src/portable/microchip/samd/dcd_samd.c</path>
+		</group>
+		<group name="src/portable/microchip/samg">
+			<path>$TUSB_DIR$/src/portable/microchip/samg/dcd_samg.c</path>
+		</group>
+		<group name="src/portable/microchip/samx7x">
+			<path>$TUSB_DIR$/src/portable/microchip/samx7x/dcd_samx7x.c</path>
+		</group>
+		<group name="src/portable/mindmotion/mm32">
+			<path>$TUSB_DIR$/src/portable/mindmotion/mm32/dcd_mm32f327x_otg.c</path>
+		</group>
+		<group name="src/portable/nordic/nrf5x">
+			<path>$TUSB_DIR$/src/portable/nordic/nrf5x/dcd_nrf5x.c</path>
+		</group>
+		<group name="src/portable/nuvoton/nuc120">
+			<path>$TUSB_DIR$/src/portable/nuvoton/nuc120/dcd_nuc120.c</path>
+		</group>
+		<group name="src/portable/nuvoton/nuc121">
+			<path>$TUSB_DIR$/src/portable/nuvoton/nuc121/dcd_nuc121.c</path>
+		</group>
+		<group name="src/portable/nuvoton/nuc505">
+			<path>$TUSB_DIR$/src/portable/nuvoton/nuc505/dcd_nuc505.c</path>
+		</group>
+		<group name="src/portable/nxp/khci">
+			<path>$TUSB_DIR$/src/portable/nxp/khci/dcd_khci.c</path>
+		</group>
+		<group name="src/portable/nxp/lpc17_40">
+			<path>$TUSB_DIR$/src/portable/nxp/lpc17_40/dcd_lpc17_40.c</path>
+			<path>$TUSB_DIR$/src/portable/nxp/lpc17_40/hcd_lpc17_40.c</path>
+		</group>
+		<group name="src/portable/nxp/lpc_ip3511">
+			<path>$TUSB_DIR$/src/portable/nxp/lpc_ip3511/dcd_lpc_ip3511.c</path>
+		</group>
+		<group name="src/portable/nxp/transdimension">
+			<path>$TUSB_DIR$/src/portable/nxp/transdimension/dcd_transdimension.c</path>
+			<path>$TUSB_DIR$/src/portable/nxp/transdimension/hcd_transdimension.c</path>
+		</group>
+		<group name="src/portable/ohci">
+			<path>$TUSB_DIR$/src/portable/ohci/ohci.c</path>
+		</group>
+		<group name="src/portable/raspberrypi/rp2040">
+			<path>$TUSB_DIR$/src/portable/raspberrypi/rp2040/dcd_rp2040.c</path>
+			<path>$TUSB_DIR$/src/portable/raspberrypi/rp2040/hcd_rp2040.c</path>
+			<path>$TUSB_DIR$/src/portable/raspberrypi/rp2040/rp2040_usb.c</path>
+		</group>
+		<group name="src/portable/renesas/usba">
+			<path>$TUSB_DIR$/src/portable/renesas/usba/dcd_usba.c</path>
+		</group>
+		<group name="src/portable/silabs/efm32">
+			<path>$TUSB_DIR$/src/portable/silabs/efm32/dcd_efm32.c</path>
+		</group>
+		<group name="src/portable/sony/cxd56">
+			<path>$TUSB_DIR$/src/portable/sony/cxd56/dcd_cxd56.c</path>
+		</group>
+		<group name="src/portable/st/stm32_fsdev">
+			<path>$TUSB_DIR$/src/portable/st/stm32_fsdev/dcd_stm32_fsdev.c</path>
+		</group>
+		<group name="src/portable/st/synopsys">
+			<path>$TUSB_DIR$/src/portable/st/synopsys/dcd_synopsys.c</path>
+		</group>
+		<group name="src/portable/template">
+			<path>$TUSB_DIR$/src/portable/template/dcd_template.c</path>
+		</group>
+		<group name="src/portable/ti/msp430x5xx">
+			<path>$TUSB_DIR$/src/portable/ti/msp430x5xx/dcd_msp430x5xx.c</path>
+		</group>
+		<group name="src/portable/valentyusb/eptri">
+			<path>$TUSB_DIR$/src/portable/valentyusb/eptri/dcd_eptri.c</path>
+		</group>
+		<group name="lib/SEGGER_RTT">
+			<path>$TUSB_DIR$/lib/SEGGER_RTT/RTT/SEGGER_RTT.c</path>
+			<path>$TUSB_DIR$/lib/SEGGER_RTT/RTT/SEGGER_RTT_printf.c</path>
+			<path>$TUSB_DIR$/lib/SEGGER_RTT/Syscalls/SEGGER_RTT_Syscalls_IAR.c</path>
+		</group>
+		<group name="bsp">
+			<path>$TUSB_DIR$/hw/bsp/board.c</path>
+		</group>
+		<group name="example">
+			<path copyTo="$PROJ_DIR$/main.c">$TUSB_DIR$/examples/device/audio_test/src/main.c</path>
+			<path copyTo="$PROJ_DIR$/tusb_config.h">$TUSB_DIR$/examples/device/audio_test/src/tusb_config.h</path>
+			<path copyTo="$PROJ_DIR$/usb_descriptors.c">$TUSB_DIR$/examples/device/audio_test/src/usb_descriptors.c</path>
+		</group>
+	</files>
+</iarProjectConnection>

+ 153 - 0
examples/device/board_test/iar_board_test.ipcf

@@ -0,0 +1,153 @@
+<?xml version="1.0" ?>
+<iarProjectConnection name="tinyusb" oneShot="true">
+	<includePath>
+		<path>$TUSB_DIR$/src</path>
+		<path>$TUSB_DIR$/lib/SEGGER_RTT/RTT</path>
+		<path>$PROJ_DIR$</path>
+		<path>$TUSB_DIR$/hw</path>
+	</includePath>
+	<files>
+		<group name="src/device">
+			<path>$TUSB_DIR$/src/device/usbd.c</path>
+			<path>$TUSB_DIR$/src/device/usbd_control.c</path>
+		</group>
+		<group name="src/common">
+			<path>$TUSB_DIR$/src/common/tusb_fifo.c</path>
+		</group>
+		<group name="src/class/audio">
+			<path>$TUSB_DIR$/src/class/audio/audio_device.c</path>
+		</group>
+		<group name="src/class/bth">
+			<path>$TUSB_DIR$/src/class/bth/bth_device.c</path>
+		</group>
+		<group name="src/class/cdc">
+			<path>$TUSB_DIR$/src/class/cdc/cdc_device.c</path>
+			<path>$TUSB_DIR$/src/class/cdc/cdc_host.c</path>
+			<path>$TUSB_DIR$/src/class/cdc/cdc_rndis_host.c</path>
+		</group>
+		<group name="src/class/dfu">
+			<path>$TUSB_DIR$/src/class/dfu/dfu_device.c</path>
+			<path>$TUSB_DIR$/src/class/dfu/dfu_rt_device.c</path>
+		</group>
+		<group name="src/class/hid">
+			<path>$TUSB_DIR$/src/class/hid/hid_device.c</path>
+			<path>$TUSB_DIR$/src/class/hid/hid_host.c</path>
+		</group>
+		<group name="src/class/midi">
+			<path>$TUSB_DIR$/src/class/midi/midi_device.c</path>
+		</group>
+		<group name="src/class/msc">
+			<path>$TUSB_DIR$/src/class/msc/msc_device.c</path>
+			<path>$TUSB_DIR$/src/class/msc/msc_host.c</path>
+		</group>
+		<group name="src/class/net">
+			<path>$TUSB_DIR$/src/class/net/net_device.c</path>
+		</group>
+		<group name="src/class/usbtmc">
+			<path>$TUSB_DIR$/src/class/usbtmc/usbtmc_device.c</path>
+		</group>
+		<group name="src/class/vendor">
+			<path>$TUSB_DIR$/src/class/vendor/vendor_device.c</path>
+			<path>$TUSB_DIR$/src/class/vendor/vendor_host.c</path>
+		</group>
+		<group name="src">
+			<path>$TUSB_DIR$/src/tusb.c</path>
+		</group>
+		<group name="src/host">
+			<path>$TUSB_DIR$/src/host/hub.c</path>
+			<path>$TUSB_DIR$/src/host/usbh.c</path>
+			<path>$TUSB_DIR$/src/host/usbh_control.c</path>
+		</group>
+		<group name="src/portable/dialog/da146xx">
+			<path>$TUSB_DIR$/src/portable/dialog/da146xx/dcd_da146xx.c</path>
+		</group>
+		<group name="src/portable/ehci">
+			<path>$TUSB_DIR$/src/portable/ehci/ehci.c</path>
+		</group>
+		<group name="src/portable/espressif/esp32sx">
+			<path>$TUSB_DIR$/src/portable/espressif/esp32sx/dcd_esp32sx.c</path>
+		</group>
+		<group name="src/portable/microchip/samd">
+			<path>$TUSB_DIR$/src/portable/microchip/samd/dcd_samd.c</path>
+		</group>
+		<group name="src/portable/microchip/samg">
+			<path>$TUSB_DIR$/src/portable/microchip/samg/dcd_samg.c</path>
+		</group>
+		<group name="src/portable/microchip/samx7x">
+			<path>$TUSB_DIR$/src/portable/microchip/samx7x/dcd_samx7x.c</path>
+		</group>
+		<group name="src/portable/mindmotion/mm32">
+			<path>$TUSB_DIR$/src/portable/mindmotion/mm32/dcd_mm32f327x_otg.c</path>
+		</group>
+		<group name="src/portable/nordic/nrf5x">
+			<path>$TUSB_DIR$/src/portable/nordic/nrf5x/dcd_nrf5x.c</path>
+		</group>
+		<group name="src/portable/nuvoton/nuc120">
+			<path>$TUSB_DIR$/src/portable/nuvoton/nuc120/dcd_nuc120.c</path>
+		</group>
+		<group name="src/portable/nuvoton/nuc121">
+			<path>$TUSB_DIR$/src/portable/nuvoton/nuc121/dcd_nuc121.c</path>
+		</group>
+		<group name="src/portable/nuvoton/nuc505">
+			<path>$TUSB_DIR$/src/portable/nuvoton/nuc505/dcd_nuc505.c</path>
+		</group>
+		<group name="src/portable/nxp/khci">
+			<path>$TUSB_DIR$/src/portable/nxp/khci/dcd_khci.c</path>
+		</group>
+		<group name="src/portable/nxp/lpc17_40">
+			<path>$TUSB_DIR$/src/portable/nxp/lpc17_40/dcd_lpc17_40.c</path>
+			<path>$TUSB_DIR$/src/portable/nxp/lpc17_40/hcd_lpc17_40.c</path>
+		</group>
+		<group name="src/portable/nxp/lpc_ip3511">
+			<path>$TUSB_DIR$/src/portable/nxp/lpc_ip3511/dcd_lpc_ip3511.c</path>
+		</group>
+		<group name="src/portable/nxp/transdimension">
+			<path>$TUSB_DIR$/src/portable/nxp/transdimension/dcd_transdimension.c</path>
+			<path>$TUSB_DIR$/src/portable/nxp/transdimension/hcd_transdimension.c</path>
+		</group>
+		<group name="src/portable/ohci">
+			<path>$TUSB_DIR$/src/portable/ohci/ohci.c</path>
+		</group>
+		<group name="src/portable/raspberrypi/rp2040">
+			<path>$TUSB_DIR$/src/portable/raspberrypi/rp2040/dcd_rp2040.c</path>
+			<path>$TUSB_DIR$/src/portable/raspberrypi/rp2040/hcd_rp2040.c</path>
+			<path>$TUSB_DIR$/src/portable/raspberrypi/rp2040/rp2040_usb.c</path>
+		</group>
+		<group name="src/portable/renesas/usba">
+			<path>$TUSB_DIR$/src/portable/renesas/usba/dcd_usba.c</path>
+		</group>
+		<group name="src/portable/silabs/efm32">
+			<path>$TUSB_DIR$/src/portable/silabs/efm32/dcd_efm32.c</path>
+		</group>
+		<group name="src/portable/sony/cxd56">
+			<path>$TUSB_DIR$/src/portable/sony/cxd56/dcd_cxd56.c</path>
+		</group>
+		<group name="src/portable/st/stm32_fsdev">
+			<path>$TUSB_DIR$/src/portable/st/stm32_fsdev/dcd_stm32_fsdev.c</path>
+		</group>
+		<group name="src/portable/st/synopsys">
+			<path>$TUSB_DIR$/src/portable/st/synopsys/dcd_synopsys.c</path>
+		</group>
+		<group name="src/portable/template">
+			<path>$TUSB_DIR$/src/portable/template/dcd_template.c</path>
+		</group>
+		<group name="src/portable/ti/msp430x5xx">
+			<path>$TUSB_DIR$/src/portable/ti/msp430x5xx/dcd_msp430x5xx.c</path>
+		</group>
+		<group name="src/portable/valentyusb/eptri">
+			<path>$TUSB_DIR$/src/portable/valentyusb/eptri/dcd_eptri.c</path>
+		</group>
+		<group name="lib/SEGGER_RTT">
+			<path>$TUSB_DIR$/lib/SEGGER_RTT/RTT/SEGGER_RTT.c</path>
+			<path>$TUSB_DIR$/lib/SEGGER_RTT/RTT/SEGGER_RTT_printf.c</path>
+			<path>$TUSB_DIR$/lib/SEGGER_RTT/Syscalls/SEGGER_RTT_Syscalls_IAR.c</path>
+		</group>
+		<group name="bsp">
+			<path>$TUSB_DIR$/hw/bsp/board.c</path>
+		</group>
+		<group name="example">
+			<path copyTo="$PROJ_DIR$/main.c">$TUSB_DIR$/examples/device/board_test/src/main.c</path>
+			<path copyTo="$PROJ_DIR$/tusb_config.h">$TUSB_DIR$/examples/device/board_test/src/tusb_config.h</path>
+		</group>
+	</files>
+</iarProjectConnection>

+ 154 - 0
examples/device/cdc_dual_ports/iar_cdc_dual_ports.ipcf

@@ -0,0 +1,154 @@
+<?xml version="1.0" ?>
+<iarProjectConnection name="tinyusb" oneShot="true">
+	<includePath>
+		<path>$TUSB_DIR$/src</path>
+		<path>$TUSB_DIR$/lib/SEGGER_RTT/RTT</path>
+		<path>$PROJ_DIR$</path>
+		<path>$TUSB_DIR$/hw</path>
+	</includePath>
+	<files>
+		<group name="src/device">
+			<path>$TUSB_DIR$/src/device/usbd.c</path>
+			<path>$TUSB_DIR$/src/device/usbd_control.c</path>
+		</group>
+		<group name="src/common">
+			<path>$TUSB_DIR$/src/common/tusb_fifo.c</path>
+		</group>
+		<group name="src/class/audio">
+			<path>$TUSB_DIR$/src/class/audio/audio_device.c</path>
+		</group>
+		<group name="src/class/bth">
+			<path>$TUSB_DIR$/src/class/bth/bth_device.c</path>
+		</group>
+		<group name="src/class/cdc">
+			<path>$TUSB_DIR$/src/class/cdc/cdc_device.c</path>
+			<path>$TUSB_DIR$/src/class/cdc/cdc_host.c</path>
+			<path>$TUSB_DIR$/src/class/cdc/cdc_rndis_host.c</path>
+		</group>
+		<group name="src/class/dfu">
+			<path>$TUSB_DIR$/src/class/dfu/dfu_device.c</path>
+			<path>$TUSB_DIR$/src/class/dfu/dfu_rt_device.c</path>
+		</group>
+		<group name="src/class/hid">
+			<path>$TUSB_DIR$/src/class/hid/hid_device.c</path>
+			<path>$TUSB_DIR$/src/class/hid/hid_host.c</path>
+		</group>
+		<group name="src/class/midi">
+			<path>$TUSB_DIR$/src/class/midi/midi_device.c</path>
+		</group>
+		<group name="src/class/msc">
+			<path>$TUSB_DIR$/src/class/msc/msc_device.c</path>
+			<path>$TUSB_DIR$/src/class/msc/msc_host.c</path>
+		</group>
+		<group name="src/class/net">
+			<path>$TUSB_DIR$/src/class/net/net_device.c</path>
+		</group>
+		<group name="src/class/usbtmc">
+			<path>$TUSB_DIR$/src/class/usbtmc/usbtmc_device.c</path>
+		</group>
+		<group name="src/class/vendor">
+			<path>$TUSB_DIR$/src/class/vendor/vendor_device.c</path>
+			<path>$TUSB_DIR$/src/class/vendor/vendor_host.c</path>
+		</group>
+		<group name="src">
+			<path>$TUSB_DIR$/src/tusb.c</path>
+		</group>
+		<group name="src/host">
+			<path>$TUSB_DIR$/src/host/hub.c</path>
+			<path>$TUSB_DIR$/src/host/usbh.c</path>
+			<path>$TUSB_DIR$/src/host/usbh_control.c</path>
+		</group>
+		<group name="src/portable/dialog/da146xx">
+			<path>$TUSB_DIR$/src/portable/dialog/da146xx/dcd_da146xx.c</path>
+		</group>
+		<group name="src/portable/ehci">
+			<path>$TUSB_DIR$/src/portable/ehci/ehci.c</path>
+		</group>
+		<group name="src/portable/espressif/esp32sx">
+			<path>$TUSB_DIR$/src/portable/espressif/esp32sx/dcd_esp32sx.c</path>
+		</group>
+		<group name="src/portable/microchip/samd">
+			<path>$TUSB_DIR$/src/portable/microchip/samd/dcd_samd.c</path>
+		</group>
+		<group name="src/portable/microchip/samg">
+			<path>$TUSB_DIR$/src/portable/microchip/samg/dcd_samg.c</path>
+		</group>
+		<group name="src/portable/microchip/samx7x">
+			<path>$TUSB_DIR$/src/portable/microchip/samx7x/dcd_samx7x.c</path>
+		</group>
+		<group name="src/portable/mindmotion/mm32">
+			<path>$TUSB_DIR$/src/portable/mindmotion/mm32/dcd_mm32f327x_otg.c</path>
+		</group>
+		<group name="src/portable/nordic/nrf5x">
+			<path>$TUSB_DIR$/src/portable/nordic/nrf5x/dcd_nrf5x.c</path>
+		</group>
+		<group name="src/portable/nuvoton/nuc120">
+			<path>$TUSB_DIR$/src/portable/nuvoton/nuc120/dcd_nuc120.c</path>
+		</group>
+		<group name="src/portable/nuvoton/nuc121">
+			<path>$TUSB_DIR$/src/portable/nuvoton/nuc121/dcd_nuc121.c</path>
+		</group>
+		<group name="src/portable/nuvoton/nuc505">
+			<path>$TUSB_DIR$/src/portable/nuvoton/nuc505/dcd_nuc505.c</path>
+		</group>
+		<group name="src/portable/nxp/khci">
+			<path>$TUSB_DIR$/src/portable/nxp/khci/dcd_khci.c</path>
+		</group>
+		<group name="src/portable/nxp/lpc17_40">
+			<path>$TUSB_DIR$/src/portable/nxp/lpc17_40/dcd_lpc17_40.c</path>
+			<path>$TUSB_DIR$/src/portable/nxp/lpc17_40/hcd_lpc17_40.c</path>
+		</group>
+		<group name="src/portable/nxp/lpc_ip3511">
+			<path>$TUSB_DIR$/src/portable/nxp/lpc_ip3511/dcd_lpc_ip3511.c</path>
+		</group>
+		<group name="src/portable/nxp/transdimension">
+			<path>$TUSB_DIR$/src/portable/nxp/transdimension/dcd_transdimension.c</path>
+			<path>$TUSB_DIR$/src/portable/nxp/transdimension/hcd_transdimension.c</path>
+		</group>
+		<group name="src/portable/ohci">
+			<path>$TUSB_DIR$/src/portable/ohci/ohci.c</path>
+		</group>
+		<group name="src/portable/raspberrypi/rp2040">
+			<path>$TUSB_DIR$/src/portable/raspberrypi/rp2040/dcd_rp2040.c</path>
+			<path>$TUSB_DIR$/src/portable/raspberrypi/rp2040/hcd_rp2040.c</path>
+			<path>$TUSB_DIR$/src/portable/raspberrypi/rp2040/rp2040_usb.c</path>
+		</group>
+		<group name="src/portable/renesas/usba">
+			<path>$TUSB_DIR$/src/portable/renesas/usba/dcd_usba.c</path>
+		</group>
+		<group name="src/portable/silabs/efm32">
+			<path>$TUSB_DIR$/src/portable/silabs/efm32/dcd_efm32.c</path>
+		</group>
+		<group name="src/portable/sony/cxd56">
+			<path>$TUSB_DIR$/src/portable/sony/cxd56/dcd_cxd56.c</path>
+		</group>
+		<group name="src/portable/st/stm32_fsdev">
+			<path>$TUSB_DIR$/src/portable/st/stm32_fsdev/dcd_stm32_fsdev.c</path>
+		</group>
+		<group name="src/portable/st/synopsys">
+			<path>$TUSB_DIR$/src/portable/st/synopsys/dcd_synopsys.c</path>
+		</group>
+		<group name="src/portable/template">
+			<path>$TUSB_DIR$/src/portable/template/dcd_template.c</path>
+		</group>
+		<group name="src/portable/ti/msp430x5xx">
+			<path>$TUSB_DIR$/src/portable/ti/msp430x5xx/dcd_msp430x5xx.c</path>
+		</group>
+		<group name="src/portable/valentyusb/eptri">
+			<path>$TUSB_DIR$/src/portable/valentyusb/eptri/dcd_eptri.c</path>
+		</group>
+		<group name="lib/SEGGER_RTT">
+			<path>$TUSB_DIR$/lib/SEGGER_RTT/RTT/SEGGER_RTT.c</path>
+			<path>$TUSB_DIR$/lib/SEGGER_RTT/RTT/SEGGER_RTT_printf.c</path>
+			<path>$TUSB_DIR$/lib/SEGGER_RTT/Syscalls/SEGGER_RTT_Syscalls_IAR.c</path>
+		</group>
+		<group name="bsp">
+			<path>$TUSB_DIR$/hw/bsp/board.c</path>
+		</group>
+		<group name="example">
+			<path copyTo="$PROJ_DIR$/main.c">$TUSB_DIR$/examples/device/cdc_dual_ports/src/main.c</path>
+			<path copyTo="$PROJ_DIR$/tusb_config.h">$TUSB_DIR$/examples/device/cdc_dual_ports/src/tusb_config.h</path>
+			<path copyTo="$PROJ_DIR$/usb_descriptors.c">$TUSB_DIR$/examples/device/cdc_dual_ports/src/usb_descriptors.c</path>
+		</group>
+	</files>
+</iarProjectConnection>

+ 155 - 0
examples/device/cdc_msc/iar_cdc_msc.ipcf

@@ -0,0 +1,155 @@
+<?xml version="1.0" ?>
+<iarProjectConnection name="tinyusb" oneShot="true">
+	<includePath>
+		<path>$TUSB_DIR$/src</path>
+		<path>$TUSB_DIR$/lib/SEGGER_RTT/RTT</path>
+		<path>$PROJ_DIR$</path>
+		<path>$TUSB_DIR$/hw</path>
+	</includePath>
+	<files>
+		<group name="src/device">
+			<path>$TUSB_DIR$/src/device/usbd.c</path>
+			<path>$TUSB_DIR$/src/device/usbd_control.c</path>
+		</group>
+		<group name="src/common">
+			<path>$TUSB_DIR$/src/common/tusb_fifo.c</path>
+		</group>
+		<group name="src/class/audio">
+			<path>$TUSB_DIR$/src/class/audio/audio_device.c</path>
+		</group>
+		<group name="src/class/bth">
+			<path>$TUSB_DIR$/src/class/bth/bth_device.c</path>
+		</group>
+		<group name="src/class/cdc">
+			<path>$TUSB_DIR$/src/class/cdc/cdc_device.c</path>
+			<path>$TUSB_DIR$/src/class/cdc/cdc_host.c</path>
+			<path>$TUSB_DIR$/src/class/cdc/cdc_rndis_host.c</path>
+		</group>
+		<group name="src/class/dfu">
+			<path>$TUSB_DIR$/src/class/dfu/dfu_device.c</path>
+			<path>$TUSB_DIR$/src/class/dfu/dfu_rt_device.c</path>
+		</group>
+		<group name="src/class/hid">
+			<path>$TUSB_DIR$/src/class/hid/hid_device.c</path>
+			<path>$TUSB_DIR$/src/class/hid/hid_host.c</path>
+		</group>
+		<group name="src/class/midi">
+			<path>$TUSB_DIR$/src/class/midi/midi_device.c</path>
+		</group>
+		<group name="src/class/msc">
+			<path>$TUSB_DIR$/src/class/msc/msc_device.c</path>
+			<path>$TUSB_DIR$/src/class/msc/msc_host.c</path>
+		</group>
+		<group name="src/class/net">
+			<path>$TUSB_DIR$/src/class/net/net_device.c</path>
+		</group>
+		<group name="src/class/usbtmc">
+			<path>$TUSB_DIR$/src/class/usbtmc/usbtmc_device.c</path>
+		</group>
+		<group name="src/class/vendor">
+			<path>$TUSB_DIR$/src/class/vendor/vendor_device.c</path>
+			<path>$TUSB_DIR$/src/class/vendor/vendor_host.c</path>
+		</group>
+		<group name="src">
+			<path>$TUSB_DIR$/src/tusb.c</path>
+		</group>
+		<group name="src/host">
+			<path>$TUSB_DIR$/src/host/hub.c</path>
+			<path>$TUSB_DIR$/src/host/usbh.c</path>
+			<path>$TUSB_DIR$/src/host/usbh_control.c</path>
+		</group>
+		<group name="src/portable/dialog/da146xx">
+			<path>$TUSB_DIR$/src/portable/dialog/da146xx/dcd_da146xx.c</path>
+		</group>
+		<group name="src/portable/ehci">
+			<path>$TUSB_DIR$/src/portable/ehci/ehci.c</path>
+		</group>
+		<group name="src/portable/espressif/esp32sx">
+			<path>$TUSB_DIR$/src/portable/espressif/esp32sx/dcd_esp32sx.c</path>
+		</group>
+		<group name="src/portable/microchip/samd">
+			<path>$TUSB_DIR$/src/portable/microchip/samd/dcd_samd.c</path>
+		</group>
+		<group name="src/portable/microchip/samg">
+			<path>$TUSB_DIR$/src/portable/microchip/samg/dcd_samg.c</path>
+		</group>
+		<group name="src/portable/microchip/samx7x">
+			<path>$TUSB_DIR$/src/portable/microchip/samx7x/dcd_samx7x.c</path>
+		</group>
+		<group name="src/portable/mindmotion/mm32">
+			<path>$TUSB_DIR$/src/portable/mindmotion/mm32/dcd_mm32f327x_otg.c</path>
+		</group>
+		<group name="src/portable/nordic/nrf5x">
+			<path>$TUSB_DIR$/src/portable/nordic/nrf5x/dcd_nrf5x.c</path>
+		</group>
+		<group name="src/portable/nuvoton/nuc120">
+			<path>$TUSB_DIR$/src/portable/nuvoton/nuc120/dcd_nuc120.c</path>
+		</group>
+		<group name="src/portable/nuvoton/nuc121">
+			<path>$TUSB_DIR$/src/portable/nuvoton/nuc121/dcd_nuc121.c</path>
+		</group>
+		<group name="src/portable/nuvoton/nuc505">
+			<path>$TUSB_DIR$/src/portable/nuvoton/nuc505/dcd_nuc505.c</path>
+		</group>
+		<group name="src/portable/nxp/khci">
+			<path>$TUSB_DIR$/src/portable/nxp/khci/dcd_khci.c</path>
+		</group>
+		<group name="src/portable/nxp/lpc17_40">
+			<path>$TUSB_DIR$/src/portable/nxp/lpc17_40/dcd_lpc17_40.c</path>
+			<path>$TUSB_DIR$/src/portable/nxp/lpc17_40/hcd_lpc17_40.c</path>
+		</group>
+		<group name="src/portable/nxp/lpc_ip3511">
+			<path>$TUSB_DIR$/src/portable/nxp/lpc_ip3511/dcd_lpc_ip3511.c</path>
+		</group>
+		<group name="src/portable/nxp/transdimension">
+			<path>$TUSB_DIR$/src/portable/nxp/transdimension/dcd_transdimension.c</path>
+			<path>$TUSB_DIR$/src/portable/nxp/transdimension/hcd_transdimension.c</path>
+		</group>
+		<group name="src/portable/ohci">
+			<path>$TUSB_DIR$/src/portable/ohci/ohci.c</path>
+		</group>
+		<group name="src/portable/raspberrypi/rp2040">
+			<path>$TUSB_DIR$/src/portable/raspberrypi/rp2040/dcd_rp2040.c</path>
+			<path>$TUSB_DIR$/src/portable/raspberrypi/rp2040/hcd_rp2040.c</path>
+			<path>$TUSB_DIR$/src/portable/raspberrypi/rp2040/rp2040_usb.c</path>
+		</group>
+		<group name="src/portable/renesas/usba">
+			<path>$TUSB_DIR$/src/portable/renesas/usba/dcd_usba.c</path>
+		</group>
+		<group name="src/portable/silabs/efm32">
+			<path>$TUSB_DIR$/src/portable/silabs/efm32/dcd_efm32.c</path>
+		</group>
+		<group name="src/portable/sony/cxd56">
+			<path>$TUSB_DIR$/src/portable/sony/cxd56/dcd_cxd56.c</path>
+		</group>
+		<group name="src/portable/st/stm32_fsdev">
+			<path>$TUSB_DIR$/src/portable/st/stm32_fsdev/dcd_stm32_fsdev.c</path>
+		</group>
+		<group name="src/portable/st/synopsys">
+			<path>$TUSB_DIR$/src/portable/st/synopsys/dcd_synopsys.c</path>
+		</group>
+		<group name="src/portable/template">
+			<path>$TUSB_DIR$/src/portable/template/dcd_template.c</path>
+		</group>
+		<group name="src/portable/ti/msp430x5xx">
+			<path>$TUSB_DIR$/src/portable/ti/msp430x5xx/dcd_msp430x5xx.c</path>
+		</group>
+		<group name="src/portable/valentyusb/eptri">
+			<path>$TUSB_DIR$/src/portable/valentyusb/eptri/dcd_eptri.c</path>
+		</group>
+		<group name="lib/SEGGER_RTT">
+			<path>$TUSB_DIR$/lib/SEGGER_RTT/RTT/SEGGER_RTT.c</path>
+			<path>$TUSB_DIR$/lib/SEGGER_RTT/RTT/SEGGER_RTT_printf.c</path>
+			<path>$TUSB_DIR$/lib/SEGGER_RTT/Syscalls/SEGGER_RTT_Syscalls_IAR.c</path>
+		</group>
+		<group name="bsp">
+			<path>$TUSB_DIR$/hw/bsp/board.c</path>
+		</group>
+		<group name="example">
+			<path copyTo="$PROJ_DIR$/main.c">$TUSB_DIR$/examples/device/cdc_msc/src/main.c</path>
+			<path copyTo="$PROJ_DIR$/msc_disk.c">$TUSB_DIR$/examples/device/cdc_msc/src/msc_disk.c</path>
+			<path copyTo="$PROJ_DIR$/tusb_config.h">$TUSB_DIR$/examples/device/cdc_msc/src/tusb_config.h</path>
+			<path copyTo="$PROJ_DIR$/usb_descriptors.c">$TUSB_DIR$/examples/device/cdc_msc/src/usb_descriptors.c</path>
+		</group>
+	</files>
+</iarProjectConnection>

+ 157 - 0
examples/device/cdc_msc_freertos/iar_cdc_msc_freertos.ipcf

@@ -0,0 +1,157 @@
+<?xml version="1.0" ?>
+<iarProjectConnection name="tinyusb" oneShot="true">
+	<includePath>
+		<path>$TUSB_DIR$/src</path>
+		<path>$TUSB_DIR$/lib/SEGGER_RTT/RTT</path>
+		<path>$PROJ_DIR$</path>
+		<path>$TUSB_DIR$/hw</path>
+	</includePath>
+	<files>
+		<group name="src/device">
+			<path>$TUSB_DIR$/src/device/usbd.c</path>
+			<path>$TUSB_DIR$/src/device/usbd_control.c</path>
+		</group>
+		<group name="src/common">
+			<path>$TUSB_DIR$/src/common/tusb_fifo.c</path>
+		</group>
+		<group name="src/class/audio">
+			<path>$TUSB_DIR$/src/class/audio/audio_device.c</path>
+		</group>
+		<group name="src/class/bth">
+			<path>$TUSB_DIR$/src/class/bth/bth_device.c</path>
+		</group>
+		<group name="src/class/cdc">
+			<path>$TUSB_DIR$/src/class/cdc/cdc_device.c</path>
+			<path>$TUSB_DIR$/src/class/cdc/cdc_host.c</path>
+			<path>$TUSB_DIR$/src/class/cdc/cdc_rndis_host.c</path>
+		</group>
+		<group name="src/class/dfu">
+			<path>$TUSB_DIR$/src/class/dfu/dfu_device.c</path>
+			<path>$TUSB_DIR$/src/class/dfu/dfu_rt_device.c</path>
+		</group>
+		<group name="src/class/hid">
+			<path>$TUSB_DIR$/src/class/hid/hid_device.c</path>
+			<path>$TUSB_DIR$/src/class/hid/hid_host.c</path>
+		</group>
+		<group name="src/class/midi">
+			<path>$TUSB_DIR$/src/class/midi/midi_device.c</path>
+		</group>
+		<group name="src/class/msc">
+			<path>$TUSB_DIR$/src/class/msc/msc_device.c</path>
+			<path>$TUSB_DIR$/src/class/msc/msc_host.c</path>
+		</group>
+		<group name="src/class/net">
+			<path>$TUSB_DIR$/src/class/net/net_device.c</path>
+		</group>
+		<group name="src/class/usbtmc">
+			<path>$TUSB_DIR$/src/class/usbtmc/usbtmc_device.c</path>
+		</group>
+		<group name="src/class/vendor">
+			<path>$TUSB_DIR$/src/class/vendor/vendor_device.c</path>
+			<path>$TUSB_DIR$/src/class/vendor/vendor_host.c</path>
+		</group>
+		<group name="src">
+			<path>$TUSB_DIR$/src/tusb.c</path>
+		</group>
+		<group name="src/host">
+			<path>$TUSB_DIR$/src/host/hub.c</path>
+			<path>$TUSB_DIR$/src/host/usbh.c</path>
+			<path>$TUSB_DIR$/src/host/usbh_control.c</path>
+		</group>
+		<group name="src/portable/dialog/da146xx">
+			<path>$TUSB_DIR$/src/portable/dialog/da146xx/dcd_da146xx.c</path>
+		</group>
+		<group name="src/portable/ehci">
+			<path>$TUSB_DIR$/src/portable/ehci/ehci.c</path>
+		</group>
+		<group name="src/portable/espressif/esp32sx">
+			<path>$TUSB_DIR$/src/portable/espressif/esp32sx/dcd_esp32sx.c</path>
+		</group>
+		<group name="src/portable/microchip/samd">
+			<path>$TUSB_DIR$/src/portable/microchip/samd/dcd_samd.c</path>
+		</group>
+		<group name="src/portable/microchip/samg">
+			<path>$TUSB_DIR$/src/portable/microchip/samg/dcd_samg.c</path>
+		</group>
+		<group name="src/portable/microchip/samx7x">
+			<path>$TUSB_DIR$/src/portable/microchip/samx7x/dcd_samx7x.c</path>
+		</group>
+		<group name="src/portable/mindmotion/mm32">
+			<path>$TUSB_DIR$/src/portable/mindmotion/mm32/dcd_mm32f327x_otg.c</path>
+		</group>
+		<group name="src/portable/nordic/nrf5x">
+			<path>$TUSB_DIR$/src/portable/nordic/nrf5x/dcd_nrf5x.c</path>
+		</group>
+		<group name="src/portable/nuvoton/nuc120">
+			<path>$TUSB_DIR$/src/portable/nuvoton/nuc120/dcd_nuc120.c</path>
+		</group>
+		<group name="src/portable/nuvoton/nuc121">
+			<path>$TUSB_DIR$/src/portable/nuvoton/nuc121/dcd_nuc121.c</path>
+		</group>
+		<group name="src/portable/nuvoton/nuc505">
+			<path>$TUSB_DIR$/src/portable/nuvoton/nuc505/dcd_nuc505.c</path>
+		</group>
+		<group name="src/portable/nxp/khci">
+			<path>$TUSB_DIR$/src/portable/nxp/khci/dcd_khci.c</path>
+		</group>
+		<group name="src/portable/nxp/lpc17_40">
+			<path>$TUSB_DIR$/src/portable/nxp/lpc17_40/dcd_lpc17_40.c</path>
+			<path>$TUSB_DIR$/src/portable/nxp/lpc17_40/hcd_lpc17_40.c</path>
+		</group>
+		<group name="src/portable/nxp/lpc_ip3511">
+			<path>$TUSB_DIR$/src/portable/nxp/lpc_ip3511/dcd_lpc_ip3511.c</path>
+		</group>
+		<group name="src/portable/nxp/transdimension">
+			<path>$TUSB_DIR$/src/portable/nxp/transdimension/dcd_transdimension.c</path>
+			<path>$TUSB_DIR$/src/portable/nxp/transdimension/hcd_transdimension.c</path>
+		</group>
+		<group name="src/portable/ohci">
+			<path>$TUSB_DIR$/src/portable/ohci/ohci.c</path>
+		</group>
+		<group name="src/portable/raspberrypi/rp2040">
+			<path>$TUSB_DIR$/src/portable/raspberrypi/rp2040/dcd_rp2040.c</path>
+			<path>$TUSB_DIR$/src/portable/raspberrypi/rp2040/hcd_rp2040.c</path>
+			<path>$TUSB_DIR$/src/portable/raspberrypi/rp2040/rp2040_usb.c</path>
+		</group>
+		<group name="src/portable/renesas/usba">
+			<path>$TUSB_DIR$/src/portable/renesas/usba/dcd_usba.c</path>
+		</group>
+		<group name="src/portable/silabs/efm32">
+			<path>$TUSB_DIR$/src/portable/silabs/efm32/dcd_efm32.c</path>
+		</group>
+		<group name="src/portable/sony/cxd56">
+			<path>$TUSB_DIR$/src/portable/sony/cxd56/dcd_cxd56.c</path>
+		</group>
+		<group name="src/portable/st/stm32_fsdev">
+			<path>$TUSB_DIR$/src/portable/st/stm32_fsdev/dcd_stm32_fsdev.c</path>
+		</group>
+		<group name="src/portable/st/synopsys">
+			<path>$TUSB_DIR$/src/portable/st/synopsys/dcd_synopsys.c</path>
+		</group>
+		<group name="src/portable/template">
+			<path>$TUSB_DIR$/src/portable/template/dcd_template.c</path>
+		</group>
+		<group name="src/portable/ti/msp430x5xx">
+			<path>$TUSB_DIR$/src/portable/ti/msp430x5xx/dcd_msp430x5xx.c</path>
+		</group>
+		<group name="src/portable/valentyusb/eptri">
+			<path>$TUSB_DIR$/src/portable/valentyusb/eptri/dcd_eptri.c</path>
+		</group>
+		<group name="lib/SEGGER_RTT">
+			<path>$TUSB_DIR$/lib/SEGGER_RTT/RTT/SEGGER_RTT.c</path>
+			<path>$TUSB_DIR$/lib/SEGGER_RTT/RTT/SEGGER_RTT_printf.c</path>
+			<path>$TUSB_DIR$/lib/SEGGER_RTT/Syscalls/SEGGER_RTT_Syscalls_IAR.c</path>
+		</group>
+		<group name="bsp">
+			<path>$TUSB_DIR$/hw/bsp/board.c</path>
+		</group>
+		<group name="example">
+			<path copyTo="$PROJ_DIR$/FreeRTOSConfig.h">$TUSB_DIR$/examples/device/cdc_msc_freertos/src/FreeRTOSConfig.h</path>
+			<path copyTo="$PROJ_DIR$/freertos_hook.c">$TUSB_DIR$/examples/device/cdc_msc_freertos/src/freertos_hook.c</path>
+			<path copyTo="$PROJ_DIR$/main.c">$TUSB_DIR$/examples/device/cdc_msc_freertos/src/main.c</path>
+			<path copyTo="$PROJ_DIR$/msc_disk.c">$TUSB_DIR$/examples/device/cdc_msc_freertos/src/msc_disk.c</path>
+			<path copyTo="$PROJ_DIR$/tusb_config.h">$TUSB_DIR$/examples/device/cdc_msc_freertos/src/tusb_config.h</path>
+			<path copyTo="$PROJ_DIR$/usb_descriptors.c">$TUSB_DIR$/examples/device/cdc_msc_freertos/src/usb_descriptors.c</path>
+		</group>
+	</files>
+</iarProjectConnection>

+ 154 - 0
examples/device/dfu/iar_dfu.ipcf

@@ -0,0 +1,154 @@
+<?xml version="1.0" ?>
+<iarProjectConnection name="tinyusb" oneShot="true">
+	<includePath>
+		<path>$TUSB_DIR$/src</path>
+		<path>$TUSB_DIR$/lib/SEGGER_RTT/RTT</path>
+		<path>$PROJ_DIR$</path>
+		<path>$TUSB_DIR$/hw</path>
+	</includePath>
+	<files>
+		<group name="src/device">
+			<path>$TUSB_DIR$/src/device/usbd.c</path>
+			<path>$TUSB_DIR$/src/device/usbd_control.c</path>
+		</group>
+		<group name="src/common">
+			<path>$TUSB_DIR$/src/common/tusb_fifo.c</path>
+		</group>
+		<group name="src/class/audio">
+			<path>$TUSB_DIR$/src/class/audio/audio_device.c</path>
+		</group>
+		<group name="src/class/bth">
+			<path>$TUSB_DIR$/src/class/bth/bth_device.c</path>
+		</group>
+		<group name="src/class/cdc">
+			<path>$TUSB_DIR$/src/class/cdc/cdc_device.c</path>
+			<path>$TUSB_DIR$/src/class/cdc/cdc_host.c</path>
+			<path>$TUSB_DIR$/src/class/cdc/cdc_rndis_host.c</path>
+		</group>
+		<group name="src/class/dfu">
+			<path>$TUSB_DIR$/src/class/dfu/dfu_device.c</path>
+			<path>$TUSB_DIR$/src/class/dfu/dfu_rt_device.c</path>
+		</group>
+		<group name="src/class/hid">
+			<path>$TUSB_DIR$/src/class/hid/hid_device.c</path>
+			<path>$TUSB_DIR$/src/class/hid/hid_host.c</path>
+		</group>
+		<group name="src/class/midi">
+			<path>$TUSB_DIR$/src/class/midi/midi_device.c</path>
+		</group>
+		<group name="src/class/msc">
+			<path>$TUSB_DIR$/src/class/msc/msc_device.c</path>
+			<path>$TUSB_DIR$/src/class/msc/msc_host.c</path>
+		</group>
+		<group name="src/class/net">
+			<path>$TUSB_DIR$/src/class/net/net_device.c</path>
+		</group>
+		<group name="src/class/usbtmc">
+			<path>$TUSB_DIR$/src/class/usbtmc/usbtmc_device.c</path>
+		</group>
+		<group name="src/class/vendor">
+			<path>$TUSB_DIR$/src/class/vendor/vendor_device.c</path>
+			<path>$TUSB_DIR$/src/class/vendor/vendor_host.c</path>
+		</group>
+		<group name="src">
+			<path>$TUSB_DIR$/src/tusb.c</path>
+		</group>
+		<group name="src/host">
+			<path>$TUSB_DIR$/src/host/hub.c</path>
+			<path>$TUSB_DIR$/src/host/usbh.c</path>
+			<path>$TUSB_DIR$/src/host/usbh_control.c</path>
+		</group>
+		<group name="src/portable/dialog/da146xx">
+			<path>$TUSB_DIR$/src/portable/dialog/da146xx/dcd_da146xx.c</path>
+		</group>
+		<group name="src/portable/ehci">
+			<path>$TUSB_DIR$/src/portable/ehci/ehci.c</path>
+		</group>
+		<group name="src/portable/espressif/esp32sx">
+			<path>$TUSB_DIR$/src/portable/espressif/esp32sx/dcd_esp32sx.c</path>
+		</group>
+		<group name="src/portable/microchip/samd">
+			<path>$TUSB_DIR$/src/portable/microchip/samd/dcd_samd.c</path>
+		</group>
+		<group name="src/portable/microchip/samg">
+			<path>$TUSB_DIR$/src/portable/microchip/samg/dcd_samg.c</path>
+		</group>
+		<group name="src/portable/microchip/samx7x">
+			<path>$TUSB_DIR$/src/portable/microchip/samx7x/dcd_samx7x.c</path>
+		</group>
+		<group name="src/portable/mindmotion/mm32">
+			<path>$TUSB_DIR$/src/portable/mindmotion/mm32/dcd_mm32f327x_otg.c</path>
+		</group>
+		<group name="src/portable/nordic/nrf5x">
+			<path>$TUSB_DIR$/src/portable/nordic/nrf5x/dcd_nrf5x.c</path>
+		</group>
+		<group name="src/portable/nuvoton/nuc120">
+			<path>$TUSB_DIR$/src/portable/nuvoton/nuc120/dcd_nuc120.c</path>
+		</group>
+		<group name="src/portable/nuvoton/nuc121">
+			<path>$TUSB_DIR$/src/portable/nuvoton/nuc121/dcd_nuc121.c</path>
+		</group>
+		<group name="src/portable/nuvoton/nuc505">
+			<path>$TUSB_DIR$/src/portable/nuvoton/nuc505/dcd_nuc505.c</path>
+		</group>
+		<group name="src/portable/nxp/khci">
+			<path>$TUSB_DIR$/src/portable/nxp/khci/dcd_khci.c</path>
+		</group>
+		<group name="src/portable/nxp/lpc17_40">
+			<path>$TUSB_DIR$/src/portable/nxp/lpc17_40/dcd_lpc17_40.c</path>
+			<path>$TUSB_DIR$/src/portable/nxp/lpc17_40/hcd_lpc17_40.c</path>
+		</group>
+		<group name="src/portable/nxp/lpc_ip3511">
+			<path>$TUSB_DIR$/src/portable/nxp/lpc_ip3511/dcd_lpc_ip3511.c</path>
+		</group>
+		<group name="src/portable/nxp/transdimension">
+			<path>$TUSB_DIR$/src/portable/nxp/transdimension/dcd_transdimension.c</path>
+			<path>$TUSB_DIR$/src/portable/nxp/transdimension/hcd_transdimension.c</path>
+		</group>
+		<group name="src/portable/ohci">
+			<path>$TUSB_DIR$/src/portable/ohci/ohci.c</path>
+		</group>
+		<group name="src/portable/raspberrypi/rp2040">
+			<path>$TUSB_DIR$/src/portable/raspberrypi/rp2040/dcd_rp2040.c</path>
+			<path>$TUSB_DIR$/src/portable/raspberrypi/rp2040/hcd_rp2040.c</path>
+			<path>$TUSB_DIR$/src/portable/raspberrypi/rp2040/rp2040_usb.c</path>
+		</group>
+		<group name="src/portable/renesas/usba">
+			<path>$TUSB_DIR$/src/portable/renesas/usba/dcd_usba.c</path>
+		</group>
+		<group name="src/portable/silabs/efm32">
+			<path>$TUSB_DIR$/src/portable/silabs/efm32/dcd_efm32.c</path>
+		</group>
+		<group name="src/portable/sony/cxd56">
+			<path>$TUSB_DIR$/src/portable/sony/cxd56/dcd_cxd56.c</path>
+		</group>
+		<group name="src/portable/st/stm32_fsdev">
+			<path>$TUSB_DIR$/src/portable/st/stm32_fsdev/dcd_stm32_fsdev.c</path>
+		</group>
+		<group name="src/portable/st/synopsys">
+			<path>$TUSB_DIR$/src/portable/st/synopsys/dcd_synopsys.c</path>
+		</group>
+		<group name="src/portable/template">
+			<path>$TUSB_DIR$/src/portable/template/dcd_template.c</path>
+		</group>
+		<group name="src/portable/ti/msp430x5xx">
+			<path>$TUSB_DIR$/src/portable/ti/msp430x5xx/dcd_msp430x5xx.c</path>
+		</group>
+		<group name="src/portable/valentyusb/eptri">
+			<path>$TUSB_DIR$/src/portable/valentyusb/eptri/dcd_eptri.c</path>
+		</group>
+		<group name="lib/SEGGER_RTT">
+			<path>$TUSB_DIR$/lib/SEGGER_RTT/RTT/SEGGER_RTT.c</path>
+			<path>$TUSB_DIR$/lib/SEGGER_RTT/RTT/SEGGER_RTT_printf.c</path>
+			<path>$TUSB_DIR$/lib/SEGGER_RTT/Syscalls/SEGGER_RTT_Syscalls_IAR.c</path>
+		</group>
+		<group name="bsp">
+			<path>$TUSB_DIR$/hw/bsp/board.c</path>
+		</group>
+		<group name="example">
+			<path copyTo="$PROJ_DIR$/main.c">$TUSB_DIR$/examples/device/dfu/src/main.c</path>
+			<path copyTo="$PROJ_DIR$/tusb_config.h">$TUSB_DIR$/examples/device/dfu/src/tusb_config.h</path>
+			<path copyTo="$PROJ_DIR$/usb_descriptors.c">$TUSB_DIR$/examples/device/dfu/src/usb_descriptors.c</path>
+		</group>
+	</files>
+</iarProjectConnection>

+ 154 - 0
examples/device/dfu_runtime/iar_dfu_runtime.ipcf

@@ -0,0 +1,154 @@
+<?xml version="1.0" ?>
+<iarProjectConnection name="tinyusb" oneShot="true">
+	<includePath>
+		<path>$TUSB_DIR$/src</path>
+		<path>$TUSB_DIR$/lib/SEGGER_RTT/RTT</path>
+		<path>$PROJ_DIR$</path>
+		<path>$TUSB_DIR$/hw</path>
+	</includePath>
+	<files>
+		<group name="src/device">
+			<path>$TUSB_DIR$/src/device/usbd.c</path>
+			<path>$TUSB_DIR$/src/device/usbd_control.c</path>
+		</group>
+		<group name="src/common">
+			<path>$TUSB_DIR$/src/common/tusb_fifo.c</path>
+		</group>
+		<group name="src/class/audio">
+			<path>$TUSB_DIR$/src/class/audio/audio_device.c</path>
+		</group>
+		<group name="src/class/bth">
+			<path>$TUSB_DIR$/src/class/bth/bth_device.c</path>
+		</group>
+		<group name="src/class/cdc">
+			<path>$TUSB_DIR$/src/class/cdc/cdc_device.c</path>
+			<path>$TUSB_DIR$/src/class/cdc/cdc_host.c</path>
+			<path>$TUSB_DIR$/src/class/cdc/cdc_rndis_host.c</path>
+		</group>
+		<group name="src/class/dfu">
+			<path>$TUSB_DIR$/src/class/dfu/dfu_device.c</path>
+			<path>$TUSB_DIR$/src/class/dfu/dfu_rt_device.c</path>
+		</group>
+		<group name="src/class/hid">
+			<path>$TUSB_DIR$/src/class/hid/hid_device.c</path>
+			<path>$TUSB_DIR$/src/class/hid/hid_host.c</path>
+		</group>
+		<group name="src/class/midi">
+			<path>$TUSB_DIR$/src/class/midi/midi_device.c</path>
+		</group>
+		<group name="src/class/msc">
+			<path>$TUSB_DIR$/src/class/msc/msc_device.c</path>
+			<path>$TUSB_DIR$/src/class/msc/msc_host.c</path>
+		</group>
+		<group name="src/class/net">
+			<path>$TUSB_DIR$/src/class/net/net_device.c</path>
+		</group>
+		<group name="src/class/usbtmc">
+			<path>$TUSB_DIR$/src/class/usbtmc/usbtmc_device.c</path>
+		</group>
+		<group name="src/class/vendor">
+			<path>$TUSB_DIR$/src/class/vendor/vendor_device.c</path>
+			<path>$TUSB_DIR$/src/class/vendor/vendor_host.c</path>
+		</group>
+		<group name="src">
+			<path>$TUSB_DIR$/src/tusb.c</path>
+		</group>
+		<group name="src/host">
+			<path>$TUSB_DIR$/src/host/hub.c</path>
+			<path>$TUSB_DIR$/src/host/usbh.c</path>
+			<path>$TUSB_DIR$/src/host/usbh_control.c</path>
+		</group>
+		<group name="src/portable/dialog/da146xx">
+			<path>$TUSB_DIR$/src/portable/dialog/da146xx/dcd_da146xx.c</path>
+		</group>
+		<group name="src/portable/ehci">
+			<path>$TUSB_DIR$/src/portable/ehci/ehci.c</path>
+		</group>
+		<group name="src/portable/espressif/esp32sx">
+			<path>$TUSB_DIR$/src/portable/espressif/esp32sx/dcd_esp32sx.c</path>
+		</group>
+		<group name="src/portable/microchip/samd">
+			<path>$TUSB_DIR$/src/portable/microchip/samd/dcd_samd.c</path>
+		</group>
+		<group name="src/portable/microchip/samg">
+			<path>$TUSB_DIR$/src/portable/microchip/samg/dcd_samg.c</path>
+		</group>
+		<group name="src/portable/microchip/samx7x">
+			<path>$TUSB_DIR$/src/portable/microchip/samx7x/dcd_samx7x.c</path>
+		</group>
+		<group name="src/portable/mindmotion/mm32">
+			<path>$TUSB_DIR$/src/portable/mindmotion/mm32/dcd_mm32f327x_otg.c</path>
+		</group>
+		<group name="src/portable/nordic/nrf5x">
+			<path>$TUSB_DIR$/src/portable/nordic/nrf5x/dcd_nrf5x.c</path>
+		</group>
+		<group name="src/portable/nuvoton/nuc120">
+			<path>$TUSB_DIR$/src/portable/nuvoton/nuc120/dcd_nuc120.c</path>
+		</group>
+		<group name="src/portable/nuvoton/nuc121">
+			<path>$TUSB_DIR$/src/portable/nuvoton/nuc121/dcd_nuc121.c</path>
+		</group>
+		<group name="src/portable/nuvoton/nuc505">
+			<path>$TUSB_DIR$/src/portable/nuvoton/nuc505/dcd_nuc505.c</path>
+		</group>
+		<group name="src/portable/nxp/khci">
+			<path>$TUSB_DIR$/src/portable/nxp/khci/dcd_khci.c</path>
+		</group>
+		<group name="src/portable/nxp/lpc17_40">
+			<path>$TUSB_DIR$/src/portable/nxp/lpc17_40/dcd_lpc17_40.c</path>
+			<path>$TUSB_DIR$/src/portable/nxp/lpc17_40/hcd_lpc17_40.c</path>
+		</group>
+		<group name="src/portable/nxp/lpc_ip3511">
+			<path>$TUSB_DIR$/src/portable/nxp/lpc_ip3511/dcd_lpc_ip3511.c</path>
+		</group>
+		<group name="src/portable/nxp/transdimension">
+			<path>$TUSB_DIR$/src/portable/nxp/transdimension/dcd_transdimension.c</path>
+			<path>$TUSB_DIR$/src/portable/nxp/transdimension/hcd_transdimension.c</path>
+		</group>
+		<group name="src/portable/ohci">
+			<path>$TUSB_DIR$/src/portable/ohci/ohci.c</path>
+		</group>
+		<group name="src/portable/raspberrypi/rp2040">
+			<path>$TUSB_DIR$/src/portable/raspberrypi/rp2040/dcd_rp2040.c</path>
+			<path>$TUSB_DIR$/src/portable/raspberrypi/rp2040/hcd_rp2040.c</path>
+			<path>$TUSB_DIR$/src/portable/raspberrypi/rp2040/rp2040_usb.c</path>
+		</group>
+		<group name="src/portable/renesas/usba">
+			<path>$TUSB_DIR$/src/portable/renesas/usba/dcd_usba.c</path>
+		</group>
+		<group name="src/portable/silabs/efm32">
+			<path>$TUSB_DIR$/src/portable/silabs/efm32/dcd_efm32.c</path>
+		</group>
+		<group name="src/portable/sony/cxd56">
+			<path>$TUSB_DIR$/src/portable/sony/cxd56/dcd_cxd56.c</path>
+		</group>
+		<group name="src/portable/st/stm32_fsdev">
+			<path>$TUSB_DIR$/src/portable/st/stm32_fsdev/dcd_stm32_fsdev.c</path>
+		</group>
+		<group name="src/portable/st/synopsys">
+			<path>$TUSB_DIR$/src/portable/st/synopsys/dcd_synopsys.c</path>
+		</group>
+		<group name="src/portable/template">
+			<path>$TUSB_DIR$/src/portable/template/dcd_template.c</path>
+		</group>
+		<group name="src/portable/ti/msp430x5xx">
+			<path>$TUSB_DIR$/src/portable/ti/msp430x5xx/dcd_msp430x5xx.c</path>
+		</group>
+		<group name="src/portable/valentyusb/eptri">
+			<path>$TUSB_DIR$/src/portable/valentyusb/eptri/dcd_eptri.c</path>
+		</group>
+		<group name="lib/SEGGER_RTT">
+			<path>$TUSB_DIR$/lib/SEGGER_RTT/RTT/SEGGER_RTT.c</path>
+			<path>$TUSB_DIR$/lib/SEGGER_RTT/RTT/SEGGER_RTT_printf.c</path>
+			<path>$TUSB_DIR$/lib/SEGGER_RTT/Syscalls/SEGGER_RTT_Syscalls_IAR.c</path>
+		</group>
+		<group name="bsp">
+			<path>$TUSB_DIR$/hw/bsp/board.c</path>
+		</group>
+		<group name="example">
+			<path copyTo="$PROJ_DIR$/main.c">$TUSB_DIR$/examples/device/dfu_runtime/src/main.c</path>
+			<path copyTo="$PROJ_DIR$/tusb_config.h">$TUSB_DIR$/examples/device/dfu_runtime/src/tusb_config.h</path>
+			<path copyTo="$PROJ_DIR$/usb_descriptors.c">$TUSB_DIR$/examples/device/dfu_runtime/src/usb_descriptors.c</path>
+		</group>
+	</files>
+</iarProjectConnection>

+ 155 - 0
examples/device/dynamic_configuration/iar_dynamic_configuration.ipcf

@@ -0,0 +1,155 @@
+<?xml version="1.0" ?>
+<iarProjectConnection name="tinyusb" oneShot="true">
+	<includePath>
+		<path>$TUSB_DIR$/src</path>
+		<path>$TUSB_DIR$/lib/SEGGER_RTT/RTT</path>
+		<path>$PROJ_DIR$</path>
+		<path>$TUSB_DIR$/hw</path>
+	</includePath>
+	<files>
+		<group name="src/device">
+			<path>$TUSB_DIR$/src/device/usbd.c</path>
+			<path>$TUSB_DIR$/src/device/usbd_control.c</path>
+		</group>
+		<group name="src/common">
+			<path>$TUSB_DIR$/src/common/tusb_fifo.c</path>
+		</group>
+		<group name="src/class/audio">
+			<path>$TUSB_DIR$/src/class/audio/audio_device.c</path>
+		</group>
+		<group name="src/class/bth">
+			<path>$TUSB_DIR$/src/class/bth/bth_device.c</path>
+		</group>
+		<group name="src/class/cdc">
+			<path>$TUSB_DIR$/src/class/cdc/cdc_device.c</path>
+			<path>$TUSB_DIR$/src/class/cdc/cdc_host.c</path>
+			<path>$TUSB_DIR$/src/class/cdc/cdc_rndis_host.c</path>
+		</group>
+		<group name="src/class/dfu">
+			<path>$TUSB_DIR$/src/class/dfu/dfu_device.c</path>
+			<path>$TUSB_DIR$/src/class/dfu/dfu_rt_device.c</path>
+		</group>
+		<group name="src/class/hid">
+			<path>$TUSB_DIR$/src/class/hid/hid_device.c</path>
+			<path>$TUSB_DIR$/src/class/hid/hid_host.c</path>
+		</group>
+		<group name="src/class/midi">
+			<path>$TUSB_DIR$/src/class/midi/midi_device.c</path>
+		</group>
+		<group name="src/class/msc">
+			<path>$TUSB_DIR$/src/class/msc/msc_device.c</path>
+			<path>$TUSB_DIR$/src/class/msc/msc_host.c</path>
+		</group>
+		<group name="src/class/net">
+			<path>$TUSB_DIR$/src/class/net/net_device.c</path>
+		</group>
+		<group name="src/class/usbtmc">
+			<path>$TUSB_DIR$/src/class/usbtmc/usbtmc_device.c</path>
+		</group>
+		<group name="src/class/vendor">
+			<path>$TUSB_DIR$/src/class/vendor/vendor_device.c</path>
+			<path>$TUSB_DIR$/src/class/vendor/vendor_host.c</path>
+		</group>
+		<group name="src">
+			<path>$TUSB_DIR$/src/tusb.c</path>
+		</group>
+		<group name="src/host">
+			<path>$TUSB_DIR$/src/host/hub.c</path>
+			<path>$TUSB_DIR$/src/host/usbh.c</path>
+			<path>$TUSB_DIR$/src/host/usbh_control.c</path>
+		</group>
+		<group name="src/portable/dialog/da146xx">
+			<path>$TUSB_DIR$/src/portable/dialog/da146xx/dcd_da146xx.c</path>
+		</group>
+		<group name="src/portable/ehci">
+			<path>$TUSB_DIR$/src/portable/ehci/ehci.c</path>
+		</group>
+		<group name="src/portable/espressif/esp32sx">
+			<path>$TUSB_DIR$/src/portable/espressif/esp32sx/dcd_esp32sx.c</path>
+		</group>
+		<group name="src/portable/microchip/samd">
+			<path>$TUSB_DIR$/src/portable/microchip/samd/dcd_samd.c</path>
+		</group>
+		<group name="src/portable/microchip/samg">
+			<path>$TUSB_DIR$/src/portable/microchip/samg/dcd_samg.c</path>
+		</group>
+		<group name="src/portable/microchip/samx7x">
+			<path>$TUSB_DIR$/src/portable/microchip/samx7x/dcd_samx7x.c</path>
+		</group>
+		<group name="src/portable/mindmotion/mm32">
+			<path>$TUSB_DIR$/src/portable/mindmotion/mm32/dcd_mm32f327x_otg.c</path>
+		</group>
+		<group name="src/portable/nordic/nrf5x">
+			<path>$TUSB_DIR$/src/portable/nordic/nrf5x/dcd_nrf5x.c</path>
+		</group>
+		<group name="src/portable/nuvoton/nuc120">
+			<path>$TUSB_DIR$/src/portable/nuvoton/nuc120/dcd_nuc120.c</path>
+		</group>
+		<group name="src/portable/nuvoton/nuc121">
+			<path>$TUSB_DIR$/src/portable/nuvoton/nuc121/dcd_nuc121.c</path>
+		</group>
+		<group name="src/portable/nuvoton/nuc505">
+			<path>$TUSB_DIR$/src/portable/nuvoton/nuc505/dcd_nuc505.c</path>
+		</group>
+		<group name="src/portable/nxp/khci">
+			<path>$TUSB_DIR$/src/portable/nxp/khci/dcd_khci.c</path>
+		</group>
+		<group name="src/portable/nxp/lpc17_40">
+			<path>$TUSB_DIR$/src/portable/nxp/lpc17_40/dcd_lpc17_40.c</path>
+			<path>$TUSB_DIR$/src/portable/nxp/lpc17_40/hcd_lpc17_40.c</path>
+		</group>
+		<group name="src/portable/nxp/lpc_ip3511">
+			<path>$TUSB_DIR$/src/portable/nxp/lpc_ip3511/dcd_lpc_ip3511.c</path>
+		</group>
+		<group name="src/portable/nxp/transdimension">
+			<path>$TUSB_DIR$/src/portable/nxp/transdimension/dcd_transdimension.c</path>
+			<path>$TUSB_DIR$/src/portable/nxp/transdimension/hcd_transdimension.c</path>
+		</group>
+		<group name="src/portable/ohci">
+			<path>$TUSB_DIR$/src/portable/ohci/ohci.c</path>
+		</group>
+		<group name="src/portable/raspberrypi/rp2040">
+			<path>$TUSB_DIR$/src/portable/raspberrypi/rp2040/dcd_rp2040.c</path>
+			<path>$TUSB_DIR$/src/portable/raspberrypi/rp2040/hcd_rp2040.c</path>
+			<path>$TUSB_DIR$/src/portable/raspberrypi/rp2040/rp2040_usb.c</path>
+		</group>
+		<group name="src/portable/renesas/usba">
+			<path>$TUSB_DIR$/src/portable/renesas/usba/dcd_usba.c</path>
+		</group>
+		<group name="src/portable/silabs/efm32">
+			<path>$TUSB_DIR$/src/portable/silabs/efm32/dcd_efm32.c</path>
+		</group>
+		<group name="src/portable/sony/cxd56">
+			<path>$TUSB_DIR$/src/portable/sony/cxd56/dcd_cxd56.c</path>
+		</group>
+		<group name="src/portable/st/stm32_fsdev">
+			<path>$TUSB_DIR$/src/portable/st/stm32_fsdev/dcd_stm32_fsdev.c</path>
+		</group>
+		<group name="src/portable/st/synopsys">
+			<path>$TUSB_DIR$/src/portable/st/synopsys/dcd_synopsys.c</path>
+		</group>
+		<group name="src/portable/template">
+			<path>$TUSB_DIR$/src/portable/template/dcd_template.c</path>
+		</group>
+		<group name="src/portable/ti/msp430x5xx">
+			<path>$TUSB_DIR$/src/portable/ti/msp430x5xx/dcd_msp430x5xx.c</path>
+		</group>
+		<group name="src/portable/valentyusb/eptri">
+			<path>$TUSB_DIR$/src/portable/valentyusb/eptri/dcd_eptri.c</path>
+		</group>
+		<group name="lib/SEGGER_RTT">
+			<path>$TUSB_DIR$/lib/SEGGER_RTT/RTT/SEGGER_RTT.c</path>
+			<path>$TUSB_DIR$/lib/SEGGER_RTT/RTT/SEGGER_RTT_printf.c</path>
+			<path>$TUSB_DIR$/lib/SEGGER_RTT/Syscalls/SEGGER_RTT_Syscalls_IAR.c</path>
+		</group>
+		<group name="bsp">
+			<path>$TUSB_DIR$/hw/bsp/board.c</path>
+		</group>
+		<group name="example">
+			<path copyTo="$PROJ_DIR$/main.c">$TUSB_DIR$/examples/device/dynamic_configuration/src/main.c</path>
+			<path copyTo="$PROJ_DIR$/msc_disk.c">$TUSB_DIR$/examples/device/dynamic_configuration/src/msc_disk.c</path>
+			<path copyTo="$PROJ_DIR$/tusb_config.h">$TUSB_DIR$/examples/device/dynamic_configuration/src/tusb_config.h</path>
+			<path copyTo="$PROJ_DIR$/usb_descriptors.c">$TUSB_DIR$/examples/device/dynamic_configuration/src/usb_descriptors.c</path>
+		</group>
+	</files>
+</iarProjectConnection>

+ 155 - 0
examples/device/hid_boot_interface/iar_hid_boot_interface.ipcf

@@ -0,0 +1,155 @@
+<?xml version="1.0" ?>
+<iarProjectConnection name="tinyusb" oneShot="true">
+	<includePath>
+		<path>$TUSB_DIR$/src</path>
+		<path>$TUSB_DIR$/lib/SEGGER_RTT/RTT</path>
+		<path>$PROJ_DIR$</path>
+		<path>$TUSB_DIR$/hw</path>
+	</includePath>
+	<files>
+		<group name="src/device">
+			<path>$TUSB_DIR$/src/device/usbd.c</path>
+			<path>$TUSB_DIR$/src/device/usbd_control.c</path>
+		</group>
+		<group name="src/common">
+			<path>$TUSB_DIR$/src/common/tusb_fifo.c</path>
+		</group>
+		<group name="src/class/audio">
+			<path>$TUSB_DIR$/src/class/audio/audio_device.c</path>
+		</group>
+		<group name="src/class/bth">
+			<path>$TUSB_DIR$/src/class/bth/bth_device.c</path>
+		</group>
+		<group name="src/class/cdc">
+			<path>$TUSB_DIR$/src/class/cdc/cdc_device.c</path>
+			<path>$TUSB_DIR$/src/class/cdc/cdc_host.c</path>
+			<path>$TUSB_DIR$/src/class/cdc/cdc_rndis_host.c</path>
+		</group>
+		<group name="src/class/dfu">
+			<path>$TUSB_DIR$/src/class/dfu/dfu_device.c</path>
+			<path>$TUSB_DIR$/src/class/dfu/dfu_rt_device.c</path>
+		</group>
+		<group name="src/class/hid">
+			<path>$TUSB_DIR$/src/class/hid/hid_device.c</path>
+			<path>$TUSB_DIR$/src/class/hid/hid_host.c</path>
+		</group>
+		<group name="src/class/midi">
+			<path>$TUSB_DIR$/src/class/midi/midi_device.c</path>
+		</group>
+		<group name="src/class/msc">
+			<path>$TUSB_DIR$/src/class/msc/msc_device.c</path>
+			<path>$TUSB_DIR$/src/class/msc/msc_host.c</path>
+		</group>
+		<group name="src/class/net">
+			<path>$TUSB_DIR$/src/class/net/net_device.c</path>
+		</group>
+		<group name="src/class/usbtmc">
+			<path>$TUSB_DIR$/src/class/usbtmc/usbtmc_device.c</path>
+		</group>
+		<group name="src/class/vendor">
+			<path>$TUSB_DIR$/src/class/vendor/vendor_device.c</path>
+			<path>$TUSB_DIR$/src/class/vendor/vendor_host.c</path>
+		</group>
+		<group name="src">
+			<path>$TUSB_DIR$/src/tusb.c</path>
+		</group>
+		<group name="src/host">
+			<path>$TUSB_DIR$/src/host/hub.c</path>
+			<path>$TUSB_DIR$/src/host/usbh.c</path>
+			<path>$TUSB_DIR$/src/host/usbh_control.c</path>
+		</group>
+		<group name="src/portable/dialog/da146xx">
+			<path>$TUSB_DIR$/src/portable/dialog/da146xx/dcd_da146xx.c</path>
+		</group>
+		<group name="src/portable/ehci">
+			<path>$TUSB_DIR$/src/portable/ehci/ehci.c</path>
+		</group>
+		<group name="src/portable/espressif/esp32sx">
+			<path>$TUSB_DIR$/src/portable/espressif/esp32sx/dcd_esp32sx.c</path>
+		</group>
+		<group name="src/portable/microchip/samd">
+			<path>$TUSB_DIR$/src/portable/microchip/samd/dcd_samd.c</path>
+		</group>
+		<group name="src/portable/microchip/samg">
+			<path>$TUSB_DIR$/src/portable/microchip/samg/dcd_samg.c</path>
+		</group>
+		<group name="src/portable/microchip/samx7x">
+			<path>$TUSB_DIR$/src/portable/microchip/samx7x/dcd_samx7x.c</path>
+		</group>
+		<group name="src/portable/mindmotion/mm32">
+			<path>$TUSB_DIR$/src/portable/mindmotion/mm32/dcd_mm32f327x_otg.c</path>
+		</group>
+		<group name="src/portable/nordic/nrf5x">
+			<path>$TUSB_DIR$/src/portable/nordic/nrf5x/dcd_nrf5x.c</path>
+		</group>
+		<group name="src/portable/nuvoton/nuc120">
+			<path>$TUSB_DIR$/src/portable/nuvoton/nuc120/dcd_nuc120.c</path>
+		</group>
+		<group name="src/portable/nuvoton/nuc121">
+			<path>$TUSB_DIR$/src/portable/nuvoton/nuc121/dcd_nuc121.c</path>
+		</group>
+		<group name="src/portable/nuvoton/nuc505">
+			<path>$TUSB_DIR$/src/portable/nuvoton/nuc505/dcd_nuc505.c</path>
+		</group>
+		<group name="src/portable/nxp/khci">
+			<path>$TUSB_DIR$/src/portable/nxp/khci/dcd_khci.c</path>
+		</group>
+		<group name="src/portable/nxp/lpc17_40">
+			<path>$TUSB_DIR$/src/portable/nxp/lpc17_40/dcd_lpc17_40.c</path>
+			<path>$TUSB_DIR$/src/portable/nxp/lpc17_40/hcd_lpc17_40.c</path>
+		</group>
+		<group name="src/portable/nxp/lpc_ip3511">
+			<path>$TUSB_DIR$/src/portable/nxp/lpc_ip3511/dcd_lpc_ip3511.c</path>
+		</group>
+		<group name="src/portable/nxp/transdimension">
+			<path>$TUSB_DIR$/src/portable/nxp/transdimension/dcd_transdimension.c</path>
+			<path>$TUSB_DIR$/src/portable/nxp/transdimension/hcd_transdimension.c</path>
+		</group>
+		<group name="src/portable/ohci">
+			<path>$TUSB_DIR$/src/portable/ohci/ohci.c</path>
+		</group>
+		<group name="src/portable/raspberrypi/rp2040">
+			<path>$TUSB_DIR$/src/portable/raspberrypi/rp2040/dcd_rp2040.c</path>
+			<path>$TUSB_DIR$/src/portable/raspberrypi/rp2040/hcd_rp2040.c</path>
+			<path>$TUSB_DIR$/src/portable/raspberrypi/rp2040/rp2040_usb.c</path>
+		</group>
+		<group name="src/portable/renesas/usba">
+			<path>$TUSB_DIR$/src/portable/renesas/usba/dcd_usba.c</path>
+		</group>
+		<group name="src/portable/silabs/efm32">
+			<path>$TUSB_DIR$/src/portable/silabs/efm32/dcd_efm32.c</path>
+		</group>
+		<group name="src/portable/sony/cxd56">
+			<path>$TUSB_DIR$/src/portable/sony/cxd56/dcd_cxd56.c</path>
+		</group>
+		<group name="src/portable/st/stm32_fsdev">
+			<path>$TUSB_DIR$/src/portable/st/stm32_fsdev/dcd_stm32_fsdev.c</path>
+		</group>
+		<group name="src/portable/st/synopsys">
+			<path>$TUSB_DIR$/src/portable/st/synopsys/dcd_synopsys.c</path>
+		</group>
+		<group name="src/portable/template">
+			<path>$TUSB_DIR$/src/portable/template/dcd_template.c</path>
+		</group>
+		<group name="src/portable/ti/msp430x5xx">
+			<path>$TUSB_DIR$/src/portable/ti/msp430x5xx/dcd_msp430x5xx.c</path>
+		</group>
+		<group name="src/portable/valentyusb/eptri">
+			<path>$TUSB_DIR$/src/portable/valentyusb/eptri/dcd_eptri.c</path>
+		</group>
+		<group name="lib/SEGGER_RTT">
+			<path>$TUSB_DIR$/lib/SEGGER_RTT/RTT/SEGGER_RTT.c</path>
+			<path>$TUSB_DIR$/lib/SEGGER_RTT/RTT/SEGGER_RTT_printf.c</path>
+			<path>$TUSB_DIR$/lib/SEGGER_RTT/Syscalls/SEGGER_RTT_Syscalls_IAR.c</path>
+		</group>
+		<group name="bsp">
+			<path>$TUSB_DIR$/hw/bsp/board.c</path>
+		</group>
+		<group name="example">
+			<path copyTo="$PROJ_DIR$/main.c">$TUSB_DIR$/examples/device/hid_boot_interface/src/main.c</path>
+			<path copyTo="$PROJ_DIR$/tusb_config.h">$TUSB_DIR$/examples/device/hid_boot_interface/src/tusb_config.h</path>
+			<path copyTo="$PROJ_DIR$/usb_descriptors.c">$TUSB_DIR$/examples/device/hid_boot_interface/src/usb_descriptors.c</path>
+			<path copyTo="$PROJ_DIR$/usb_descriptors.h">$TUSB_DIR$/examples/device/hid_boot_interface/src/usb_descriptors.h</path>
+		</group>
+	</files>
+</iarProjectConnection>

+ 155 - 0
examples/device/hid_composite/iar_hid_composite.ipcf

@@ -0,0 +1,155 @@
+<?xml version="1.0" ?>
+<iarProjectConnection name="tinyusb" oneShot="true">
+	<includePath>
+		<path>$TUSB_DIR$/src</path>
+		<path>$TUSB_DIR$/lib/SEGGER_RTT/RTT</path>
+		<path>$PROJ_DIR$</path>
+		<path>$TUSB_DIR$/hw</path>
+	</includePath>
+	<files>
+		<group name="src/device">
+			<path>$TUSB_DIR$/src/device/usbd.c</path>
+			<path>$TUSB_DIR$/src/device/usbd_control.c</path>
+		</group>
+		<group name="src/common">
+			<path>$TUSB_DIR$/src/common/tusb_fifo.c</path>
+		</group>
+		<group name="src/class/audio">
+			<path>$TUSB_DIR$/src/class/audio/audio_device.c</path>
+		</group>
+		<group name="src/class/bth">
+			<path>$TUSB_DIR$/src/class/bth/bth_device.c</path>
+		</group>
+		<group name="src/class/cdc">
+			<path>$TUSB_DIR$/src/class/cdc/cdc_device.c</path>
+			<path>$TUSB_DIR$/src/class/cdc/cdc_host.c</path>
+			<path>$TUSB_DIR$/src/class/cdc/cdc_rndis_host.c</path>
+		</group>
+		<group name="src/class/dfu">
+			<path>$TUSB_DIR$/src/class/dfu/dfu_device.c</path>
+			<path>$TUSB_DIR$/src/class/dfu/dfu_rt_device.c</path>
+		</group>
+		<group name="src/class/hid">
+			<path>$TUSB_DIR$/src/class/hid/hid_device.c</path>
+			<path>$TUSB_DIR$/src/class/hid/hid_host.c</path>
+		</group>
+		<group name="src/class/midi">
+			<path>$TUSB_DIR$/src/class/midi/midi_device.c</path>
+		</group>
+		<group name="src/class/msc">
+			<path>$TUSB_DIR$/src/class/msc/msc_device.c</path>
+			<path>$TUSB_DIR$/src/class/msc/msc_host.c</path>
+		</group>
+		<group name="src/class/net">
+			<path>$TUSB_DIR$/src/class/net/net_device.c</path>
+		</group>
+		<group name="src/class/usbtmc">
+			<path>$TUSB_DIR$/src/class/usbtmc/usbtmc_device.c</path>
+		</group>
+		<group name="src/class/vendor">
+			<path>$TUSB_DIR$/src/class/vendor/vendor_device.c</path>
+			<path>$TUSB_DIR$/src/class/vendor/vendor_host.c</path>
+		</group>
+		<group name="src">
+			<path>$TUSB_DIR$/src/tusb.c</path>
+		</group>
+		<group name="src/host">
+			<path>$TUSB_DIR$/src/host/hub.c</path>
+			<path>$TUSB_DIR$/src/host/usbh.c</path>
+			<path>$TUSB_DIR$/src/host/usbh_control.c</path>
+		</group>
+		<group name="src/portable/dialog/da146xx">
+			<path>$TUSB_DIR$/src/portable/dialog/da146xx/dcd_da146xx.c</path>
+		</group>
+		<group name="src/portable/ehci">
+			<path>$TUSB_DIR$/src/portable/ehci/ehci.c</path>
+		</group>
+		<group name="src/portable/espressif/esp32sx">
+			<path>$TUSB_DIR$/src/portable/espressif/esp32sx/dcd_esp32sx.c</path>
+		</group>
+		<group name="src/portable/microchip/samd">
+			<path>$TUSB_DIR$/src/portable/microchip/samd/dcd_samd.c</path>
+		</group>
+		<group name="src/portable/microchip/samg">
+			<path>$TUSB_DIR$/src/portable/microchip/samg/dcd_samg.c</path>
+		</group>
+		<group name="src/portable/microchip/samx7x">
+			<path>$TUSB_DIR$/src/portable/microchip/samx7x/dcd_samx7x.c</path>
+		</group>
+		<group name="src/portable/mindmotion/mm32">
+			<path>$TUSB_DIR$/src/portable/mindmotion/mm32/dcd_mm32f327x_otg.c</path>
+		</group>
+		<group name="src/portable/nordic/nrf5x">
+			<path>$TUSB_DIR$/src/portable/nordic/nrf5x/dcd_nrf5x.c</path>
+		</group>
+		<group name="src/portable/nuvoton/nuc120">
+			<path>$TUSB_DIR$/src/portable/nuvoton/nuc120/dcd_nuc120.c</path>
+		</group>
+		<group name="src/portable/nuvoton/nuc121">
+			<path>$TUSB_DIR$/src/portable/nuvoton/nuc121/dcd_nuc121.c</path>
+		</group>
+		<group name="src/portable/nuvoton/nuc505">
+			<path>$TUSB_DIR$/src/portable/nuvoton/nuc505/dcd_nuc505.c</path>
+		</group>
+		<group name="src/portable/nxp/khci">
+			<path>$TUSB_DIR$/src/portable/nxp/khci/dcd_khci.c</path>
+		</group>
+		<group name="src/portable/nxp/lpc17_40">
+			<path>$TUSB_DIR$/src/portable/nxp/lpc17_40/dcd_lpc17_40.c</path>
+			<path>$TUSB_DIR$/src/portable/nxp/lpc17_40/hcd_lpc17_40.c</path>
+		</group>
+		<group name="src/portable/nxp/lpc_ip3511">
+			<path>$TUSB_DIR$/src/portable/nxp/lpc_ip3511/dcd_lpc_ip3511.c</path>
+		</group>
+		<group name="src/portable/nxp/transdimension">
+			<path>$TUSB_DIR$/src/portable/nxp/transdimension/dcd_transdimension.c</path>
+			<path>$TUSB_DIR$/src/portable/nxp/transdimension/hcd_transdimension.c</path>
+		</group>
+		<group name="src/portable/ohci">
+			<path>$TUSB_DIR$/src/portable/ohci/ohci.c</path>
+		</group>
+		<group name="src/portable/raspberrypi/rp2040">
+			<path>$TUSB_DIR$/src/portable/raspberrypi/rp2040/dcd_rp2040.c</path>
+			<path>$TUSB_DIR$/src/portable/raspberrypi/rp2040/hcd_rp2040.c</path>
+			<path>$TUSB_DIR$/src/portable/raspberrypi/rp2040/rp2040_usb.c</path>
+		</group>
+		<group name="src/portable/renesas/usba">
+			<path>$TUSB_DIR$/src/portable/renesas/usba/dcd_usba.c</path>
+		</group>
+		<group name="src/portable/silabs/efm32">
+			<path>$TUSB_DIR$/src/portable/silabs/efm32/dcd_efm32.c</path>
+		</group>
+		<group name="src/portable/sony/cxd56">
+			<path>$TUSB_DIR$/src/portable/sony/cxd56/dcd_cxd56.c</path>
+		</group>
+		<group name="src/portable/st/stm32_fsdev">
+			<path>$TUSB_DIR$/src/portable/st/stm32_fsdev/dcd_stm32_fsdev.c</path>
+		</group>
+		<group name="src/portable/st/synopsys">
+			<path>$TUSB_DIR$/src/portable/st/synopsys/dcd_synopsys.c</path>
+		</group>
+		<group name="src/portable/template">
+			<path>$TUSB_DIR$/src/portable/template/dcd_template.c</path>
+		</group>
+		<group name="src/portable/ti/msp430x5xx">
+			<path>$TUSB_DIR$/src/portable/ti/msp430x5xx/dcd_msp430x5xx.c</path>
+		</group>
+		<group name="src/portable/valentyusb/eptri">
+			<path>$TUSB_DIR$/src/portable/valentyusb/eptri/dcd_eptri.c</path>
+		</group>
+		<group name="lib/SEGGER_RTT">
+			<path>$TUSB_DIR$/lib/SEGGER_RTT/RTT/SEGGER_RTT.c</path>
+			<path>$TUSB_DIR$/lib/SEGGER_RTT/RTT/SEGGER_RTT_printf.c</path>
+			<path>$TUSB_DIR$/lib/SEGGER_RTT/Syscalls/SEGGER_RTT_Syscalls_IAR.c</path>
+		</group>
+		<group name="bsp">
+			<path>$TUSB_DIR$/hw/bsp/board.c</path>
+		</group>
+		<group name="example">
+			<path copyTo="$PROJ_DIR$/main.c">$TUSB_DIR$/examples/device/hid_composite/src/main.c</path>
+			<path copyTo="$PROJ_DIR$/tusb_config.h">$TUSB_DIR$/examples/device/hid_composite/src/tusb_config.h</path>
+			<path copyTo="$PROJ_DIR$/usb_descriptors.c">$TUSB_DIR$/examples/device/hid_composite/src/usb_descriptors.c</path>
+			<path copyTo="$PROJ_DIR$/usb_descriptors.h">$TUSB_DIR$/examples/device/hid_composite/src/usb_descriptors.h</path>
+		</group>
+	</files>
+</iarProjectConnection>

+ 157 - 0
examples/device/hid_composite_freertos/iar_hid_composite_freertos.ipcf

@@ -0,0 +1,157 @@
+<?xml version="1.0" ?>
+<iarProjectConnection name="tinyusb" oneShot="true">
+	<includePath>
+		<path>$TUSB_DIR$/src</path>
+		<path>$TUSB_DIR$/lib/SEGGER_RTT/RTT</path>
+		<path>$PROJ_DIR$</path>
+		<path>$TUSB_DIR$/hw</path>
+	</includePath>
+	<files>
+		<group name="src/device">
+			<path>$TUSB_DIR$/src/device/usbd.c</path>
+			<path>$TUSB_DIR$/src/device/usbd_control.c</path>
+		</group>
+		<group name="src/common">
+			<path>$TUSB_DIR$/src/common/tusb_fifo.c</path>
+		</group>
+		<group name="src/class/audio">
+			<path>$TUSB_DIR$/src/class/audio/audio_device.c</path>
+		</group>
+		<group name="src/class/bth">
+			<path>$TUSB_DIR$/src/class/bth/bth_device.c</path>
+		</group>
+		<group name="src/class/cdc">
+			<path>$TUSB_DIR$/src/class/cdc/cdc_device.c</path>
+			<path>$TUSB_DIR$/src/class/cdc/cdc_host.c</path>
+			<path>$TUSB_DIR$/src/class/cdc/cdc_rndis_host.c</path>
+		</group>
+		<group name="src/class/dfu">
+			<path>$TUSB_DIR$/src/class/dfu/dfu_device.c</path>
+			<path>$TUSB_DIR$/src/class/dfu/dfu_rt_device.c</path>
+		</group>
+		<group name="src/class/hid">
+			<path>$TUSB_DIR$/src/class/hid/hid_device.c</path>
+			<path>$TUSB_DIR$/src/class/hid/hid_host.c</path>
+		</group>
+		<group name="src/class/midi">
+			<path>$TUSB_DIR$/src/class/midi/midi_device.c</path>
+		</group>
+		<group name="src/class/msc">
+			<path>$TUSB_DIR$/src/class/msc/msc_device.c</path>
+			<path>$TUSB_DIR$/src/class/msc/msc_host.c</path>
+		</group>
+		<group name="src/class/net">
+			<path>$TUSB_DIR$/src/class/net/net_device.c</path>
+		</group>
+		<group name="src/class/usbtmc">
+			<path>$TUSB_DIR$/src/class/usbtmc/usbtmc_device.c</path>
+		</group>
+		<group name="src/class/vendor">
+			<path>$TUSB_DIR$/src/class/vendor/vendor_device.c</path>
+			<path>$TUSB_DIR$/src/class/vendor/vendor_host.c</path>
+		</group>
+		<group name="src">
+			<path>$TUSB_DIR$/src/tusb.c</path>
+		</group>
+		<group name="src/host">
+			<path>$TUSB_DIR$/src/host/hub.c</path>
+			<path>$TUSB_DIR$/src/host/usbh.c</path>
+			<path>$TUSB_DIR$/src/host/usbh_control.c</path>
+		</group>
+		<group name="src/portable/dialog/da146xx">
+			<path>$TUSB_DIR$/src/portable/dialog/da146xx/dcd_da146xx.c</path>
+		</group>
+		<group name="src/portable/ehci">
+			<path>$TUSB_DIR$/src/portable/ehci/ehci.c</path>
+		</group>
+		<group name="src/portable/espressif/esp32sx">
+			<path>$TUSB_DIR$/src/portable/espressif/esp32sx/dcd_esp32sx.c</path>
+		</group>
+		<group name="src/portable/microchip/samd">
+			<path>$TUSB_DIR$/src/portable/microchip/samd/dcd_samd.c</path>
+		</group>
+		<group name="src/portable/microchip/samg">
+			<path>$TUSB_DIR$/src/portable/microchip/samg/dcd_samg.c</path>
+		</group>
+		<group name="src/portable/microchip/samx7x">
+			<path>$TUSB_DIR$/src/portable/microchip/samx7x/dcd_samx7x.c</path>
+		</group>
+		<group name="src/portable/mindmotion/mm32">
+			<path>$TUSB_DIR$/src/portable/mindmotion/mm32/dcd_mm32f327x_otg.c</path>
+		</group>
+		<group name="src/portable/nordic/nrf5x">
+			<path>$TUSB_DIR$/src/portable/nordic/nrf5x/dcd_nrf5x.c</path>
+		</group>
+		<group name="src/portable/nuvoton/nuc120">
+			<path>$TUSB_DIR$/src/portable/nuvoton/nuc120/dcd_nuc120.c</path>
+		</group>
+		<group name="src/portable/nuvoton/nuc121">
+			<path>$TUSB_DIR$/src/portable/nuvoton/nuc121/dcd_nuc121.c</path>
+		</group>
+		<group name="src/portable/nuvoton/nuc505">
+			<path>$TUSB_DIR$/src/portable/nuvoton/nuc505/dcd_nuc505.c</path>
+		</group>
+		<group name="src/portable/nxp/khci">
+			<path>$TUSB_DIR$/src/portable/nxp/khci/dcd_khci.c</path>
+		</group>
+		<group name="src/portable/nxp/lpc17_40">
+			<path>$TUSB_DIR$/src/portable/nxp/lpc17_40/dcd_lpc17_40.c</path>
+			<path>$TUSB_DIR$/src/portable/nxp/lpc17_40/hcd_lpc17_40.c</path>
+		</group>
+		<group name="src/portable/nxp/lpc_ip3511">
+			<path>$TUSB_DIR$/src/portable/nxp/lpc_ip3511/dcd_lpc_ip3511.c</path>
+		</group>
+		<group name="src/portable/nxp/transdimension">
+			<path>$TUSB_DIR$/src/portable/nxp/transdimension/dcd_transdimension.c</path>
+			<path>$TUSB_DIR$/src/portable/nxp/transdimension/hcd_transdimension.c</path>
+		</group>
+		<group name="src/portable/ohci">
+			<path>$TUSB_DIR$/src/portable/ohci/ohci.c</path>
+		</group>
+		<group name="src/portable/raspberrypi/rp2040">
+			<path>$TUSB_DIR$/src/portable/raspberrypi/rp2040/dcd_rp2040.c</path>
+			<path>$TUSB_DIR$/src/portable/raspberrypi/rp2040/hcd_rp2040.c</path>
+			<path>$TUSB_DIR$/src/portable/raspberrypi/rp2040/rp2040_usb.c</path>
+		</group>
+		<group name="src/portable/renesas/usba">
+			<path>$TUSB_DIR$/src/portable/renesas/usba/dcd_usba.c</path>
+		</group>
+		<group name="src/portable/silabs/efm32">
+			<path>$TUSB_DIR$/src/portable/silabs/efm32/dcd_efm32.c</path>
+		</group>
+		<group name="src/portable/sony/cxd56">
+			<path>$TUSB_DIR$/src/portable/sony/cxd56/dcd_cxd56.c</path>
+		</group>
+		<group name="src/portable/st/stm32_fsdev">
+			<path>$TUSB_DIR$/src/portable/st/stm32_fsdev/dcd_stm32_fsdev.c</path>
+		</group>
+		<group name="src/portable/st/synopsys">
+			<path>$TUSB_DIR$/src/portable/st/synopsys/dcd_synopsys.c</path>
+		</group>
+		<group name="src/portable/template">
+			<path>$TUSB_DIR$/src/portable/template/dcd_template.c</path>
+		</group>
+		<group name="src/portable/ti/msp430x5xx">
+			<path>$TUSB_DIR$/src/portable/ti/msp430x5xx/dcd_msp430x5xx.c</path>
+		</group>
+		<group name="src/portable/valentyusb/eptri">
+			<path>$TUSB_DIR$/src/portable/valentyusb/eptri/dcd_eptri.c</path>
+		</group>
+		<group name="lib/SEGGER_RTT">
+			<path>$TUSB_DIR$/lib/SEGGER_RTT/RTT/SEGGER_RTT.c</path>
+			<path>$TUSB_DIR$/lib/SEGGER_RTT/RTT/SEGGER_RTT_printf.c</path>
+			<path>$TUSB_DIR$/lib/SEGGER_RTT/Syscalls/SEGGER_RTT_Syscalls_IAR.c</path>
+		</group>
+		<group name="bsp">
+			<path>$TUSB_DIR$/hw/bsp/board.c</path>
+		</group>
+		<group name="example">
+			<path copyTo="$PROJ_DIR$/FreeRTOSConfig.h">$TUSB_DIR$/examples/device/hid_composite_freertos/src/FreeRTOSConfig.h</path>
+			<path copyTo="$PROJ_DIR$/freertos_hook.c">$TUSB_DIR$/examples/device/hid_composite_freertos/src/freertos_hook.c</path>
+			<path copyTo="$PROJ_DIR$/main.c">$TUSB_DIR$/examples/device/hid_composite_freertos/src/main.c</path>
+			<path copyTo="$PROJ_DIR$/tusb_config.h">$TUSB_DIR$/examples/device/hid_composite_freertos/src/tusb_config.h</path>
+			<path copyTo="$PROJ_DIR$/usb_descriptors.c">$TUSB_DIR$/examples/device/hid_composite_freertos/src/usb_descriptors.c</path>
+			<path copyTo="$PROJ_DIR$/usb_descriptors.h">$TUSB_DIR$/examples/device/hid_composite_freertos/src/usb_descriptors.h</path>
+		</group>
+	</files>
+</iarProjectConnection>

+ 154 - 0
examples/device/hid_generic_inout/iar_hid_generic_inout.ipcf

@@ -0,0 +1,154 @@
+<?xml version="1.0" ?>
+<iarProjectConnection name="tinyusb" oneShot="true">
+	<includePath>
+		<path>$TUSB_DIR$/src</path>
+		<path>$TUSB_DIR$/lib/SEGGER_RTT/RTT</path>
+		<path>$PROJ_DIR$</path>
+		<path>$TUSB_DIR$/hw</path>
+	</includePath>
+	<files>
+		<group name="src/device">
+			<path>$TUSB_DIR$/src/device/usbd.c</path>
+			<path>$TUSB_DIR$/src/device/usbd_control.c</path>
+		</group>
+		<group name="src/common">
+			<path>$TUSB_DIR$/src/common/tusb_fifo.c</path>
+		</group>
+		<group name="src/class/audio">
+			<path>$TUSB_DIR$/src/class/audio/audio_device.c</path>
+		</group>
+		<group name="src/class/bth">
+			<path>$TUSB_DIR$/src/class/bth/bth_device.c</path>
+		</group>
+		<group name="src/class/cdc">
+			<path>$TUSB_DIR$/src/class/cdc/cdc_device.c</path>
+			<path>$TUSB_DIR$/src/class/cdc/cdc_host.c</path>
+			<path>$TUSB_DIR$/src/class/cdc/cdc_rndis_host.c</path>
+		</group>
+		<group name="src/class/dfu">
+			<path>$TUSB_DIR$/src/class/dfu/dfu_device.c</path>
+			<path>$TUSB_DIR$/src/class/dfu/dfu_rt_device.c</path>
+		</group>
+		<group name="src/class/hid">
+			<path>$TUSB_DIR$/src/class/hid/hid_device.c</path>
+			<path>$TUSB_DIR$/src/class/hid/hid_host.c</path>
+		</group>
+		<group name="src/class/midi">
+			<path>$TUSB_DIR$/src/class/midi/midi_device.c</path>
+		</group>
+		<group name="src/class/msc">
+			<path>$TUSB_DIR$/src/class/msc/msc_device.c</path>
+			<path>$TUSB_DIR$/src/class/msc/msc_host.c</path>
+		</group>
+		<group name="src/class/net">
+			<path>$TUSB_DIR$/src/class/net/net_device.c</path>
+		</group>
+		<group name="src/class/usbtmc">
+			<path>$TUSB_DIR$/src/class/usbtmc/usbtmc_device.c</path>
+		</group>
+		<group name="src/class/vendor">
+			<path>$TUSB_DIR$/src/class/vendor/vendor_device.c</path>
+			<path>$TUSB_DIR$/src/class/vendor/vendor_host.c</path>
+		</group>
+		<group name="src">
+			<path>$TUSB_DIR$/src/tusb.c</path>
+		</group>
+		<group name="src/host">
+			<path>$TUSB_DIR$/src/host/hub.c</path>
+			<path>$TUSB_DIR$/src/host/usbh.c</path>
+			<path>$TUSB_DIR$/src/host/usbh_control.c</path>
+		</group>
+		<group name="src/portable/dialog/da146xx">
+			<path>$TUSB_DIR$/src/portable/dialog/da146xx/dcd_da146xx.c</path>
+		</group>
+		<group name="src/portable/ehci">
+			<path>$TUSB_DIR$/src/portable/ehci/ehci.c</path>
+		</group>
+		<group name="src/portable/espressif/esp32sx">
+			<path>$TUSB_DIR$/src/portable/espressif/esp32sx/dcd_esp32sx.c</path>
+		</group>
+		<group name="src/portable/microchip/samd">
+			<path>$TUSB_DIR$/src/portable/microchip/samd/dcd_samd.c</path>
+		</group>
+		<group name="src/portable/microchip/samg">
+			<path>$TUSB_DIR$/src/portable/microchip/samg/dcd_samg.c</path>
+		</group>
+		<group name="src/portable/microchip/samx7x">
+			<path>$TUSB_DIR$/src/portable/microchip/samx7x/dcd_samx7x.c</path>
+		</group>
+		<group name="src/portable/mindmotion/mm32">
+			<path>$TUSB_DIR$/src/portable/mindmotion/mm32/dcd_mm32f327x_otg.c</path>
+		</group>
+		<group name="src/portable/nordic/nrf5x">
+			<path>$TUSB_DIR$/src/portable/nordic/nrf5x/dcd_nrf5x.c</path>
+		</group>
+		<group name="src/portable/nuvoton/nuc120">
+			<path>$TUSB_DIR$/src/portable/nuvoton/nuc120/dcd_nuc120.c</path>
+		</group>
+		<group name="src/portable/nuvoton/nuc121">
+			<path>$TUSB_DIR$/src/portable/nuvoton/nuc121/dcd_nuc121.c</path>
+		</group>
+		<group name="src/portable/nuvoton/nuc505">
+			<path>$TUSB_DIR$/src/portable/nuvoton/nuc505/dcd_nuc505.c</path>
+		</group>
+		<group name="src/portable/nxp/khci">
+			<path>$TUSB_DIR$/src/portable/nxp/khci/dcd_khci.c</path>
+		</group>
+		<group name="src/portable/nxp/lpc17_40">
+			<path>$TUSB_DIR$/src/portable/nxp/lpc17_40/dcd_lpc17_40.c</path>
+			<path>$TUSB_DIR$/src/portable/nxp/lpc17_40/hcd_lpc17_40.c</path>
+		</group>
+		<group name="src/portable/nxp/lpc_ip3511">
+			<path>$TUSB_DIR$/src/portable/nxp/lpc_ip3511/dcd_lpc_ip3511.c</path>
+		</group>
+		<group name="src/portable/nxp/transdimension">
+			<path>$TUSB_DIR$/src/portable/nxp/transdimension/dcd_transdimension.c</path>
+			<path>$TUSB_DIR$/src/portable/nxp/transdimension/hcd_transdimension.c</path>
+		</group>
+		<group name="src/portable/ohci">
+			<path>$TUSB_DIR$/src/portable/ohci/ohci.c</path>
+		</group>
+		<group name="src/portable/raspberrypi/rp2040">
+			<path>$TUSB_DIR$/src/portable/raspberrypi/rp2040/dcd_rp2040.c</path>
+			<path>$TUSB_DIR$/src/portable/raspberrypi/rp2040/hcd_rp2040.c</path>
+			<path>$TUSB_DIR$/src/portable/raspberrypi/rp2040/rp2040_usb.c</path>
+		</group>
+		<group name="src/portable/renesas/usba">
+			<path>$TUSB_DIR$/src/portable/renesas/usba/dcd_usba.c</path>
+		</group>
+		<group name="src/portable/silabs/efm32">
+			<path>$TUSB_DIR$/src/portable/silabs/efm32/dcd_efm32.c</path>
+		</group>
+		<group name="src/portable/sony/cxd56">
+			<path>$TUSB_DIR$/src/portable/sony/cxd56/dcd_cxd56.c</path>
+		</group>
+		<group name="src/portable/st/stm32_fsdev">
+			<path>$TUSB_DIR$/src/portable/st/stm32_fsdev/dcd_stm32_fsdev.c</path>
+		</group>
+		<group name="src/portable/st/synopsys">
+			<path>$TUSB_DIR$/src/portable/st/synopsys/dcd_synopsys.c</path>
+		</group>
+		<group name="src/portable/template">
+			<path>$TUSB_DIR$/src/portable/template/dcd_template.c</path>
+		</group>
+		<group name="src/portable/ti/msp430x5xx">
+			<path>$TUSB_DIR$/src/portable/ti/msp430x5xx/dcd_msp430x5xx.c</path>
+		</group>
+		<group name="src/portable/valentyusb/eptri">
+			<path>$TUSB_DIR$/src/portable/valentyusb/eptri/dcd_eptri.c</path>
+		</group>
+		<group name="lib/SEGGER_RTT">
+			<path>$TUSB_DIR$/lib/SEGGER_RTT/RTT/SEGGER_RTT.c</path>
+			<path>$TUSB_DIR$/lib/SEGGER_RTT/RTT/SEGGER_RTT_printf.c</path>
+			<path>$TUSB_DIR$/lib/SEGGER_RTT/Syscalls/SEGGER_RTT_Syscalls_IAR.c</path>
+		</group>
+		<group name="bsp">
+			<path>$TUSB_DIR$/hw/bsp/board.c</path>
+		</group>
+		<group name="example">
+			<path copyTo="$PROJ_DIR$/main.c">$TUSB_DIR$/examples/device/hid_generic_inout/src/main.c</path>
+			<path copyTo="$PROJ_DIR$/tusb_config.h">$TUSB_DIR$/examples/device/hid_generic_inout/src/tusb_config.h</path>
+			<path copyTo="$PROJ_DIR$/usb_descriptors.c">$TUSB_DIR$/examples/device/hid_generic_inout/src/usb_descriptors.c</path>
+		</group>
+	</files>
+</iarProjectConnection>

+ 154 - 0
examples/device/hid_multiple_interface/iar_hid_multiple_interface.ipcf

@@ -0,0 +1,154 @@
+<?xml version="1.0" ?>
+<iarProjectConnection name="tinyusb" oneShot="true">
+	<includePath>
+		<path>$TUSB_DIR$/src</path>
+		<path>$TUSB_DIR$/lib/SEGGER_RTT/RTT</path>
+		<path>$PROJ_DIR$</path>
+		<path>$TUSB_DIR$/hw</path>
+	</includePath>
+	<files>
+		<group name="src/device">
+			<path>$TUSB_DIR$/src/device/usbd.c</path>
+			<path>$TUSB_DIR$/src/device/usbd_control.c</path>
+		</group>
+		<group name="src/common">
+			<path>$TUSB_DIR$/src/common/tusb_fifo.c</path>
+		</group>
+		<group name="src/class/audio">
+			<path>$TUSB_DIR$/src/class/audio/audio_device.c</path>
+		</group>
+		<group name="src/class/bth">
+			<path>$TUSB_DIR$/src/class/bth/bth_device.c</path>
+		</group>
+		<group name="src/class/cdc">
+			<path>$TUSB_DIR$/src/class/cdc/cdc_device.c</path>
+			<path>$TUSB_DIR$/src/class/cdc/cdc_host.c</path>
+			<path>$TUSB_DIR$/src/class/cdc/cdc_rndis_host.c</path>
+		</group>
+		<group name="src/class/dfu">
+			<path>$TUSB_DIR$/src/class/dfu/dfu_device.c</path>
+			<path>$TUSB_DIR$/src/class/dfu/dfu_rt_device.c</path>
+		</group>
+		<group name="src/class/hid">
+			<path>$TUSB_DIR$/src/class/hid/hid_device.c</path>
+			<path>$TUSB_DIR$/src/class/hid/hid_host.c</path>
+		</group>
+		<group name="src/class/midi">
+			<path>$TUSB_DIR$/src/class/midi/midi_device.c</path>
+		</group>
+		<group name="src/class/msc">
+			<path>$TUSB_DIR$/src/class/msc/msc_device.c</path>
+			<path>$TUSB_DIR$/src/class/msc/msc_host.c</path>
+		</group>
+		<group name="src/class/net">
+			<path>$TUSB_DIR$/src/class/net/net_device.c</path>
+		</group>
+		<group name="src/class/usbtmc">
+			<path>$TUSB_DIR$/src/class/usbtmc/usbtmc_device.c</path>
+		</group>
+		<group name="src/class/vendor">
+			<path>$TUSB_DIR$/src/class/vendor/vendor_device.c</path>
+			<path>$TUSB_DIR$/src/class/vendor/vendor_host.c</path>
+		</group>
+		<group name="src">
+			<path>$TUSB_DIR$/src/tusb.c</path>
+		</group>
+		<group name="src/host">
+			<path>$TUSB_DIR$/src/host/hub.c</path>
+			<path>$TUSB_DIR$/src/host/usbh.c</path>
+			<path>$TUSB_DIR$/src/host/usbh_control.c</path>
+		</group>
+		<group name="src/portable/dialog/da146xx">
+			<path>$TUSB_DIR$/src/portable/dialog/da146xx/dcd_da146xx.c</path>
+		</group>
+		<group name="src/portable/ehci">
+			<path>$TUSB_DIR$/src/portable/ehci/ehci.c</path>
+		</group>
+		<group name="src/portable/espressif/esp32sx">
+			<path>$TUSB_DIR$/src/portable/espressif/esp32sx/dcd_esp32sx.c</path>
+		</group>
+		<group name="src/portable/microchip/samd">
+			<path>$TUSB_DIR$/src/portable/microchip/samd/dcd_samd.c</path>
+		</group>
+		<group name="src/portable/microchip/samg">
+			<path>$TUSB_DIR$/src/portable/microchip/samg/dcd_samg.c</path>
+		</group>
+		<group name="src/portable/microchip/samx7x">
+			<path>$TUSB_DIR$/src/portable/microchip/samx7x/dcd_samx7x.c</path>
+		</group>
+		<group name="src/portable/mindmotion/mm32">
+			<path>$TUSB_DIR$/src/portable/mindmotion/mm32/dcd_mm32f327x_otg.c</path>
+		</group>
+		<group name="src/portable/nordic/nrf5x">
+			<path>$TUSB_DIR$/src/portable/nordic/nrf5x/dcd_nrf5x.c</path>
+		</group>
+		<group name="src/portable/nuvoton/nuc120">
+			<path>$TUSB_DIR$/src/portable/nuvoton/nuc120/dcd_nuc120.c</path>
+		</group>
+		<group name="src/portable/nuvoton/nuc121">
+			<path>$TUSB_DIR$/src/portable/nuvoton/nuc121/dcd_nuc121.c</path>
+		</group>
+		<group name="src/portable/nuvoton/nuc505">
+			<path>$TUSB_DIR$/src/portable/nuvoton/nuc505/dcd_nuc505.c</path>
+		</group>
+		<group name="src/portable/nxp/khci">
+			<path>$TUSB_DIR$/src/portable/nxp/khci/dcd_khci.c</path>
+		</group>
+		<group name="src/portable/nxp/lpc17_40">
+			<path>$TUSB_DIR$/src/portable/nxp/lpc17_40/dcd_lpc17_40.c</path>
+			<path>$TUSB_DIR$/src/portable/nxp/lpc17_40/hcd_lpc17_40.c</path>
+		</group>
+		<group name="src/portable/nxp/lpc_ip3511">
+			<path>$TUSB_DIR$/src/portable/nxp/lpc_ip3511/dcd_lpc_ip3511.c</path>
+		</group>
+		<group name="src/portable/nxp/transdimension">
+			<path>$TUSB_DIR$/src/portable/nxp/transdimension/dcd_transdimension.c</path>
+			<path>$TUSB_DIR$/src/portable/nxp/transdimension/hcd_transdimension.c</path>
+		</group>
+		<group name="src/portable/ohci">
+			<path>$TUSB_DIR$/src/portable/ohci/ohci.c</path>
+		</group>
+		<group name="src/portable/raspberrypi/rp2040">
+			<path>$TUSB_DIR$/src/portable/raspberrypi/rp2040/dcd_rp2040.c</path>
+			<path>$TUSB_DIR$/src/portable/raspberrypi/rp2040/hcd_rp2040.c</path>
+			<path>$TUSB_DIR$/src/portable/raspberrypi/rp2040/rp2040_usb.c</path>
+		</group>
+		<group name="src/portable/renesas/usba">
+			<path>$TUSB_DIR$/src/portable/renesas/usba/dcd_usba.c</path>
+		</group>
+		<group name="src/portable/silabs/efm32">
+			<path>$TUSB_DIR$/src/portable/silabs/efm32/dcd_efm32.c</path>
+		</group>
+		<group name="src/portable/sony/cxd56">
+			<path>$TUSB_DIR$/src/portable/sony/cxd56/dcd_cxd56.c</path>
+		</group>
+		<group name="src/portable/st/stm32_fsdev">
+			<path>$TUSB_DIR$/src/portable/st/stm32_fsdev/dcd_stm32_fsdev.c</path>
+		</group>
+		<group name="src/portable/st/synopsys">
+			<path>$TUSB_DIR$/src/portable/st/synopsys/dcd_synopsys.c</path>
+		</group>
+		<group name="src/portable/template">
+			<path>$TUSB_DIR$/src/portable/template/dcd_template.c</path>
+		</group>
+		<group name="src/portable/ti/msp430x5xx">
+			<path>$TUSB_DIR$/src/portable/ti/msp430x5xx/dcd_msp430x5xx.c</path>
+		</group>
+		<group name="src/portable/valentyusb/eptri">
+			<path>$TUSB_DIR$/src/portable/valentyusb/eptri/dcd_eptri.c</path>
+		</group>
+		<group name="lib/SEGGER_RTT">
+			<path>$TUSB_DIR$/lib/SEGGER_RTT/RTT/SEGGER_RTT.c</path>
+			<path>$TUSB_DIR$/lib/SEGGER_RTT/RTT/SEGGER_RTT_printf.c</path>
+			<path>$TUSB_DIR$/lib/SEGGER_RTT/Syscalls/SEGGER_RTT_Syscalls_IAR.c</path>
+		</group>
+		<group name="bsp">
+			<path>$TUSB_DIR$/hw/bsp/board.c</path>
+		</group>
+		<group name="example">
+			<path copyTo="$PROJ_DIR$/main.c">$TUSB_DIR$/examples/device/hid_multiple_interface/src/main.c</path>
+			<path copyTo="$PROJ_DIR$/tusb_config.h">$TUSB_DIR$/examples/device/hid_multiple_interface/src/tusb_config.h</path>
+			<path copyTo="$PROJ_DIR$/usb_descriptors.c">$TUSB_DIR$/examples/device/hid_multiple_interface/src/usb_descriptors.c</path>
+		</group>
+	</files>
+</iarProjectConnection>

+ 154 - 0
examples/device/midi_test/iar_midi_test.ipcf

@@ -0,0 +1,154 @@
+<?xml version="1.0" ?>
+<iarProjectConnection name="tinyusb" oneShot="true">
+	<includePath>
+		<path>$TUSB_DIR$/src</path>
+		<path>$TUSB_DIR$/lib/SEGGER_RTT/RTT</path>
+		<path>$PROJ_DIR$</path>
+		<path>$TUSB_DIR$/hw</path>
+	</includePath>
+	<files>
+		<group name="src/device">
+			<path>$TUSB_DIR$/src/device/usbd.c</path>
+			<path>$TUSB_DIR$/src/device/usbd_control.c</path>
+		</group>
+		<group name="src/common">
+			<path>$TUSB_DIR$/src/common/tusb_fifo.c</path>
+		</group>
+		<group name="src/class/audio">
+			<path>$TUSB_DIR$/src/class/audio/audio_device.c</path>
+		</group>
+		<group name="src/class/bth">
+			<path>$TUSB_DIR$/src/class/bth/bth_device.c</path>
+		</group>
+		<group name="src/class/cdc">
+			<path>$TUSB_DIR$/src/class/cdc/cdc_device.c</path>
+			<path>$TUSB_DIR$/src/class/cdc/cdc_host.c</path>
+			<path>$TUSB_DIR$/src/class/cdc/cdc_rndis_host.c</path>
+		</group>
+		<group name="src/class/dfu">
+			<path>$TUSB_DIR$/src/class/dfu/dfu_device.c</path>
+			<path>$TUSB_DIR$/src/class/dfu/dfu_rt_device.c</path>
+		</group>
+		<group name="src/class/hid">
+			<path>$TUSB_DIR$/src/class/hid/hid_device.c</path>
+			<path>$TUSB_DIR$/src/class/hid/hid_host.c</path>
+		</group>
+		<group name="src/class/midi">
+			<path>$TUSB_DIR$/src/class/midi/midi_device.c</path>
+		</group>
+		<group name="src/class/msc">
+			<path>$TUSB_DIR$/src/class/msc/msc_device.c</path>
+			<path>$TUSB_DIR$/src/class/msc/msc_host.c</path>
+		</group>
+		<group name="src/class/net">
+			<path>$TUSB_DIR$/src/class/net/net_device.c</path>
+		</group>
+		<group name="src/class/usbtmc">
+			<path>$TUSB_DIR$/src/class/usbtmc/usbtmc_device.c</path>
+		</group>
+		<group name="src/class/vendor">
+			<path>$TUSB_DIR$/src/class/vendor/vendor_device.c</path>
+			<path>$TUSB_DIR$/src/class/vendor/vendor_host.c</path>
+		</group>
+		<group name="src">
+			<path>$TUSB_DIR$/src/tusb.c</path>
+		</group>
+		<group name="src/host">
+			<path>$TUSB_DIR$/src/host/hub.c</path>
+			<path>$TUSB_DIR$/src/host/usbh.c</path>
+			<path>$TUSB_DIR$/src/host/usbh_control.c</path>
+		</group>
+		<group name="src/portable/dialog/da146xx">
+			<path>$TUSB_DIR$/src/portable/dialog/da146xx/dcd_da146xx.c</path>
+		</group>
+		<group name="src/portable/ehci">
+			<path>$TUSB_DIR$/src/portable/ehci/ehci.c</path>
+		</group>
+		<group name="src/portable/espressif/esp32sx">
+			<path>$TUSB_DIR$/src/portable/espressif/esp32sx/dcd_esp32sx.c</path>
+		</group>
+		<group name="src/portable/microchip/samd">
+			<path>$TUSB_DIR$/src/portable/microchip/samd/dcd_samd.c</path>
+		</group>
+		<group name="src/portable/microchip/samg">
+			<path>$TUSB_DIR$/src/portable/microchip/samg/dcd_samg.c</path>
+		</group>
+		<group name="src/portable/microchip/samx7x">
+			<path>$TUSB_DIR$/src/portable/microchip/samx7x/dcd_samx7x.c</path>
+		</group>
+		<group name="src/portable/mindmotion/mm32">
+			<path>$TUSB_DIR$/src/portable/mindmotion/mm32/dcd_mm32f327x_otg.c</path>
+		</group>
+		<group name="src/portable/nordic/nrf5x">
+			<path>$TUSB_DIR$/src/portable/nordic/nrf5x/dcd_nrf5x.c</path>
+		</group>
+		<group name="src/portable/nuvoton/nuc120">
+			<path>$TUSB_DIR$/src/portable/nuvoton/nuc120/dcd_nuc120.c</path>
+		</group>
+		<group name="src/portable/nuvoton/nuc121">
+			<path>$TUSB_DIR$/src/portable/nuvoton/nuc121/dcd_nuc121.c</path>
+		</group>
+		<group name="src/portable/nuvoton/nuc505">
+			<path>$TUSB_DIR$/src/portable/nuvoton/nuc505/dcd_nuc505.c</path>
+		</group>
+		<group name="src/portable/nxp/khci">
+			<path>$TUSB_DIR$/src/portable/nxp/khci/dcd_khci.c</path>
+		</group>
+		<group name="src/portable/nxp/lpc17_40">
+			<path>$TUSB_DIR$/src/portable/nxp/lpc17_40/dcd_lpc17_40.c</path>
+			<path>$TUSB_DIR$/src/portable/nxp/lpc17_40/hcd_lpc17_40.c</path>
+		</group>
+		<group name="src/portable/nxp/lpc_ip3511">
+			<path>$TUSB_DIR$/src/portable/nxp/lpc_ip3511/dcd_lpc_ip3511.c</path>
+		</group>
+		<group name="src/portable/nxp/transdimension">
+			<path>$TUSB_DIR$/src/portable/nxp/transdimension/dcd_transdimension.c</path>
+			<path>$TUSB_DIR$/src/portable/nxp/transdimension/hcd_transdimension.c</path>
+		</group>
+		<group name="src/portable/ohci">
+			<path>$TUSB_DIR$/src/portable/ohci/ohci.c</path>
+		</group>
+		<group name="src/portable/raspberrypi/rp2040">
+			<path>$TUSB_DIR$/src/portable/raspberrypi/rp2040/dcd_rp2040.c</path>
+			<path>$TUSB_DIR$/src/portable/raspberrypi/rp2040/hcd_rp2040.c</path>
+			<path>$TUSB_DIR$/src/portable/raspberrypi/rp2040/rp2040_usb.c</path>
+		</group>
+		<group name="src/portable/renesas/usba">
+			<path>$TUSB_DIR$/src/portable/renesas/usba/dcd_usba.c</path>
+		</group>
+		<group name="src/portable/silabs/efm32">
+			<path>$TUSB_DIR$/src/portable/silabs/efm32/dcd_efm32.c</path>
+		</group>
+		<group name="src/portable/sony/cxd56">
+			<path>$TUSB_DIR$/src/portable/sony/cxd56/dcd_cxd56.c</path>
+		</group>
+		<group name="src/portable/st/stm32_fsdev">
+			<path>$TUSB_DIR$/src/portable/st/stm32_fsdev/dcd_stm32_fsdev.c</path>
+		</group>
+		<group name="src/portable/st/synopsys">
+			<path>$TUSB_DIR$/src/portable/st/synopsys/dcd_synopsys.c</path>
+		</group>
+		<group name="src/portable/template">
+			<path>$TUSB_DIR$/src/portable/template/dcd_template.c</path>
+		</group>
+		<group name="src/portable/ti/msp430x5xx">
+			<path>$TUSB_DIR$/src/portable/ti/msp430x5xx/dcd_msp430x5xx.c</path>
+		</group>
+		<group name="src/portable/valentyusb/eptri">
+			<path>$TUSB_DIR$/src/portable/valentyusb/eptri/dcd_eptri.c</path>
+		</group>
+		<group name="lib/SEGGER_RTT">
+			<path>$TUSB_DIR$/lib/SEGGER_RTT/RTT/SEGGER_RTT.c</path>
+			<path>$TUSB_DIR$/lib/SEGGER_RTT/RTT/SEGGER_RTT_printf.c</path>
+			<path>$TUSB_DIR$/lib/SEGGER_RTT/Syscalls/SEGGER_RTT_Syscalls_IAR.c</path>
+		</group>
+		<group name="bsp">
+			<path>$TUSB_DIR$/hw/bsp/board.c</path>
+		</group>
+		<group name="example">
+			<path copyTo="$PROJ_DIR$/main.c">$TUSB_DIR$/examples/device/midi_test/src/main.c</path>
+			<path copyTo="$PROJ_DIR$/tusb_config.h">$TUSB_DIR$/examples/device/midi_test/src/tusb_config.h</path>
+			<path copyTo="$PROJ_DIR$/usb_descriptors.c">$TUSB_DIR$/examples/device/midi_test/src/usb_descriptors.c</path>
+		</group>
+	</files>
+</iarProjectConnection>

+ 155 - 0
examples/device/msc_dual_lun/iar_msc_dual_lun.ipcf

@@ -0,0 +1,155 @@
+<?xml version="1.0" ?>
+<iarProjectConnection name="tinyusb" oneShot="true">
+	<includePath>
+		<path>$TUSB_DIR$/src</path>
+		<path>$TUSB_DIR$/lib/SEGGER_RTT/RTT</path>
+		<path>$PROJ_DIR$</path>
+		<path>$TUSB_DIR$/hw</path>
+	</includePath>
+	<files>
+		<group name="src/device">
+			<path>$TUSB_DIR$/src/device/usbd.c</path>
+			<path>$TUSB_DIR$/src/device/usbd_control.c</path>
+		</group>
+		<group name="src/common">
+			<path>$TUSB_DIR$/src/common/tusb_fifo.c</path>
+		</group>
+		<group name="src/class/audio">
+			<path>$TUSB_DIR$/src/class/audio/audio_device.c</path>
+		</group>
+		<group name="src/class/bth">
+			<path>$TUSB_DIR$/src/class/bth/bth_device.c</path>
+		</group>
+		<group name="src/class/cdc">
+			<path>$TUSB_DIR$/src/class/cdc/cdc_device.c</path>
+			<path>$TUSB_DIR$/src/class/cdc/cdc_host.c</path>
+			<path>$TUSB_DIR$/src/class/cdc/cdc_rndis_host.c</path>
+		</group>
+		<group name="src/class/dfu">
+			<path>$TUSB_DIR$/src/class/dfu/dfu_device.c</path>
+			<path>$TUSB_DIR$/src/class/dfu/dfu_rt_device.c</path>
+		</group>
+		<group name="src/class/hid">
+			<path>$TUSB_DIR$/src/class/hid/hid_device.c</path>
+			<path>$TUSB_DIR$/src/class/hid/hid_host.c</path>
+		</group>
+		<group name="src/class/midi">
+			<path>$TUSB_DIR$/src/class/midi/midi_device.c</path>
+		</group>
+		<group name="src/class/msc">
+			<path>$TUSB_DIR$/src/class/msc/msc_device.c</path>
+			<path>$TUSB_DIR$/src/class/msc/msc_host.c</path>
+		</group>
+		<group name="src/class/net">
+			<path>$TUSB_DIR$/src/class/net/net_device.c</path>
+		</group>
+		<group name="src/class/usbtmc">
+			<path>$TUSB_DIR$/src/class/usbtmc/usbtmc_device.c</path>
+		</group>
+		<group name="src/class/vendor">
+			<path>$TUSB_DIR$/src/class/vendor/vendor_device.c</path>
+			<path>$TUSB_DIR$/src/class/vendor/vendor_host.c</path>
+		</group>
+		<group name="src">
+			<path>$TUSB_DIR$/src/tusb.c</path>
+		</group>
+		<group name="src/host">
+			<path>$TUSB_DIR$/src/host/hub.c</path>
+			<path>$TUSB_DIR$/src/host/usbh.c</path>
+			<path>$TUSB_DIR$/src/host/usbh_control.c</path>
+		</group>
+		<group name="src/portable/dialog/da146xx">
+			<path>$TUSB_DIR$/src/portable/dialog/da146xx/dcd_da146xx.c</path>
+		</group>
+		<group name="src/portable/ehci">
+			<path>$TUSB_DIR$/src/portable/ehci/ehci.c</path>
+		</group>
+		<group name="src/portable/espressif/esp32sx">
+			<path>$TUSB_DIR$/src/portable/espressif/esp32sx/dcd_esp32sx.c</path>
+		</group>
+		<group name="src/portable/microchip/samd">
+			<path>$TUSB_DIR$/src/portable/microchip/samd/dcd_samd.c</path>
+		</group>
+		<group name="src/portable/microchip/samg">
+			<path>$TUSB_DIR$/src/portable/microchip/samg/dcd_samg.c</path>
+		</group>
+		<group name="src/portable/microchip/samx7x">
+			<path>$TUSB_DIR$/src/portable/microchip/samx7x/dcd_samx7x.c</path>
+		</group>
+		<group name="src/portable/mindmotion/mm32">
+			<path>$TUSB_DIR$/src/portable/mindmotion/mm32/dcd_mm32f327x_otg.c</path>
+		</group>
+		<group name="src/portable/nordic/nrf5x">
+			<path>$TUSB_DIR$/src/portable/nordic/nrf5x/dcd_nrf5x.c</path>
+		</group>
+		<group name="src/portable/nuvoton/nuc120">
+			<path>$TUSB_DIR$/src/portable/nuvoton/nuc120/dcd_nuc120.c</path>
+		</group>
+		<group name="src/portable/nuvoton/nuc121">
+			<path>$TUSB_DIR$/src/portable/nuvoton/nuc121/dcd_nuc121.c</path>
+		</group>
+		<group name="src/portable/nuvoton/nuc505">
+			<path>$TUSB_DIR$/src/portable/nuvoton/nuc505/dcd_nuc505.c</path>
+		</group>
+		<group name="src/portable/nxp/khci">
+			<path>$TUSB_DIR$/src/portable/nxp/khci/dcd_khci.c</path>
+		</group>
+		<group name="src/portable/nxp/lpc17_40">
+			<path>$TUSB_DIR$/src/portable/nxp/lpc17_40/dcd_lpc17_40.c</path>
+			<path>$TUSB_DIR$/src/portable/nxp/lpc17_40/hcd_lpc17_40.c</path>
+		</group>
+		<group name="src/portable/nxp/lpc_ip3511">
+			<path>$TUSB_DIR$/src/portable/nxp/lpc_ip3511/dcd_lpc_ip3511.c</path>
+		</group>
+		<group name="src/portable/nxp/transdimension">
+			<path>$TUSB_DIR$/src/portable/nxp/transdimension/dcd_transdimension.c</path>
+			<path>$TUSB_DIR$/src/portable/nxp/transdimension/hcd_transdimension.c</path>
+		</group>
+		<group name="src/portable/ohci">
+			<path>$TUSB_DIR$/src/portable/ohci/ohci.c</path>
+		</group>
+		<group name="src/portable/raspberrypi/rp2040">
+			<path>$TUSB_DIR$/src/portable/raspberrypi/rp2040/dcd_rp2040.c</path>
+			<path>$TUSB_DIR$/src/portable/raspberrypi/rp2040/hcd_rp2040.c</path>
+			<path>$TUSB_DIR$/src/portable/raspberrypi/rp2040/rp2040_usb.c</path>
+		</group>
+		<group name="src/portable/renesas/usba">
+			<path>$TUSB_DIR$/src/portable/renesas/usba/dcd_usba.c</path>
+		</group>
+		<group name="src/portable/silabs/efm32">
+			<path>$TUSB_DIR$/src/portable/silabs/efm32/dcd_efm32.c</path>
+		</group>
+		<group name="src/portable/sony/cxd56">
+			<path>$TUSB_DIR$/src/portable/sony/cxd56/dcd_cxd56.c</path>
+		</group>
+		<group name="src/portable/st/stm32_fsdev">
+			<path>$TUSB_DIR$/src/portable/st/stm32_fsdev/dcd_stm32_fsdev.c</path>
+		</group>
+		<group name="src/portable/st/synopsys">
+			<path>$TUSB_DIR$/src/portable/st/synopsys/dcd_synopsys.c</path>
+		</group>
+		<group name="src/portable/template">
+			<path>$TUSB_DIR$/src/portable/template/dcd_template.c</path>
+		</group>
+		<group name="src/portable/ti/msp430x5xx">
+			<path>$TUSB_DIR$/src/portable/ti/msp430x5xx/dcd_msp430x5xx.c</path>
+		</group>
+		<group name="src/portable/valentyusb/eptri">
+			<path>$TUSB_DIR$/src/portable/valentyusb/eptri/dcd_eptri.c</path>
+		</group>
+		<group name="lib/SEGGER_RTT">
+			<path>$TUSB_DIR$/lib/SEGGER_RTT/RTT/SEGGER_RTT.c</path>
+			<path>$TUSB_DIR$/lib/SEGGER_RTT/RTT/SEGGER_RTT_printf.c</path>
+			<path>$TUSB_DIR$/lib/SEGGER_RTT/Syscalls/SEGGER_RTT_Syscalls_IAR.c</path>
+		</group>
+		<group name="bsp">
+			<path>$TUSB_DIR$/hw/bsp/board.c</path>
+		</group>
+		<group name="example">
+			<path copyTo="$PROJ_DIR$/main.c">$TUSB_DIR$/examples/device/msc_dual_lun/src/main.c</path>
+			<path copyTo="$PROJ_DIR$/msc_disk_dual.c">$TUSB_DIR$/examples/device/msc_dual_lun/src/msc_disk_dual.c</path>
+			<path copyTo="$PROJ_DIR$/tusb_config.h">$TUSB_DIR$/examples/device/msc_dual_lun/src/tusb_config.h</path>
+			<path copyTo="$PROJ_DIR$/usb_descriptors.c">$TUSB_DIR$/examples/device/msc_dual_lun/src/usb_descriptors.c</path>
+		</group>
+	</files>
+</iarProjectConnection>

+ 155 - 0
examples/device/net_lwip_webserver/iar_net_lwip_webserver.ipcf

@@ -0,0 +1,155 @@
+<?xml version="1.0" ?>
+<iarProjectConnection name="tinyusb" oneShot="true">
+	<includePath>
+		<path>$TUSB_DIR$/src</path>
+		<path>$TUSB_DIR$/lib/SEGGER_RTT/RTT</path>
+		<path>$PROJ_DIR$</path>
+		<path>$TUSB_DIR$/hw</path>
+	</includePath>
+	<files>
+		<group name="src/device">
+			<path>$TUSB_DIR$/src/device/usbd.c</path>
+			<path>$TUSB_DIR$/src/device/usbd_control.c</path>
+		</group>
+		<group name="src/common">
+			<path>$TUSB_DIR$/src/common/tusb_fifo.c</path>
+		</group>
+		<group name="src/class/audio">
+			<path>$TUSB_DIR$/src/class/audio/audio_device.c</path>
+		</group>
+		<group name="src/class/bth">
+			<path>$TUSB_DIR$/src/class/bth/bth_device.c</path>
+		</group>
+		<group name="src/class/cdc">
+			<path>$TUSB_DIR$/src/class/cdc/cdc_device.c</path>
+			<path>$TUSB_DIR$/src/class/cdc/cdc_host.c</path>
+			<path>$TUSB_DIR$/src/class/cdc/cdc_rndis_host.c</path>
+		</group>
+		<group name="src/class/dfu">
+			<path>$TUSB_DIR$/src/class/dfu/dfu_device.c</path>
+			<path>$TUSB_DIR$/src/class/dfu/dfu_rt_device.c</path>
+		</group>
+		<group name="src/class/hid">
+			<path>$TUSB_DIR$/src/class/hid/hid_device.c</path>
+			<path>$TUSB_DIR$/src/class/hid/hid_host.c</path>
+		</group>
+		<group name="src/class/midi">
+			<path>$TUSB_DIR$/src/class/midi/midi_device.c</path>
+		</group>
+		<group name="src/class/msc">
+			<path>$TUSB_DIR$/src/class/msc/msc_device.c</path>
+			<path>$TUSB_DIR$/src/class/msc/msc_host.c</path>
+		</group>
+		<group name="src/class/net">
+			<path>$TUSB_DIR$/src/class/net/net_device.c</path>
+		</group>
+		<group name="src/class/usbtmc">
+			<path>$TUSB_DIR$/src/class/usbtmc/usbtmc_device.c</path>
+		</group>
+		<group name="src/class/vendor">
+			<path>$TUSB_DIR$/src/class/vendor/vendor_device.c</path>
+			<path>$TUSB_DIR$/src/class/vendor/vendor_host.c</path>
+		</group>
+		<group name="src">
+			<path>$TUSB_DIR$/src/tusb.c</path>
+		</group>
+		<group name="src/host">
+			<path>$TUSB_DIR$/src/host/hub.c</path>
+			<path>$TUSB_DIR$/src/host/usbh.c</path>
+			<path>$TUSB_DIR$/src/host/usbh_control.c</path>
+		</group>
+		<group name="src/portable/dialog/da146xx">
+			<path>$TUSB_DIR$/src/portable/dialog/da146xx/dcd_da146xx.c</path>
+		</group>
+		<group name="src/portable/ehci">
+			<path>$TUSB_DIR$/src/portable/ehci/ehci.c</path>
+		</group>
+		<group name="src/portable/espressif/esp32sx">
+			<path>$TUSB_DIR$/src/portable/espressif/esp32sx/dcd_esp32sx.c</path>
+		</group>
+		<group name="src/portable/microchip/samd">
+			<path>$TUSB_DIR$/src/portable/microchip/samd/dcd_samd.c</path>
+		</group>
+		<group name="src/portable/microchip/samg">
+			<path>$TUSB_DIR$/src/portable/microchip/samg/dcd_samg.c</path>
+		</group>
+		<group name="src/portable/microchip/samx7x">
+			<path>$TUSB_DIR$/src/portable/microchip/samx7x/dcd_samx7x.c</path>
+		</group>
+		<group name="src/portable/mindmotion/mm32">
+			<path>$TUSB_DIR$/src/portable/mindmotion/mm32/dcd_mm32f327x_otg.c</path>
+		</group>
+		<group name="src/portable/nordic/nrf5x">
+			<path>$TUSB_DIR$/src/portable/nordic/nrf5x/dcd_nrf5x.c</path>
+		</group>
+		<group name="src/portable/nuvoton/nuc120">
+			<path>$TUSB_DIR$/src/portable/nuvoton/nuc120/dcd_nuc120.c</path>
+		</group>
+		<group name="src/portable/nuvoton/nuc121">
+			<path>$TUSB_DIR$/src/portable/nuvoton/nuc121/dcd_nuc121.c</path>
+		</group>
+		<group name="src/portable/nuvoton/nuc505">
+			<path>$TUSB_DIR$/src/portable/nuvoton/nuc505/dcd_nuc505.c</path>
+		</group>
+		<group name="src/portable/nxp/khci">
+			<path>$TUSB_DIR$/src/portable/nxp/khci/dcd_khci.c</path>
+		</group>
+		<group name="src/portable/nxp/lpc17_40">
+			<path>$TUSB_DIR$/src/portable/nxp/lpc17_40/dcd_lpc17_40.c</path>
+			<path>$TUSB_DIR$/src/portable/nxp/lpc17_40/hcd_lpc17_40.c</path>
+		</group>
+		<group name="src/portable/nxp/lpc_ip3511">
+			<path>$TUSB_DIR$/src/portable/nxp/lpc_ip3511/dcd_lpc_ip3511.c</path>
+		</group>
+		<group name="src/portable/nxp/transdimension">
+			<path>$TUSB_DIR$/src/portable/nxp/transdimension/dcd_transdimension.c</path>
+			<path>$TUSB_DIR$/src/portable/nxp/transdimension/hcd_transdimension.c</path>
+		</group>
+		<group name="src/portable/ohci">
+			<path>$TUSB_DIR$/src/portable/ohci/ohci.c</path>
+		</group>
+		<group name="src/portable/raspberrypi/rp2040">
+			<path>$TUSB_DIR$/src/portable/raspberrypi/rp2040/dcd_rp2040.c</path>
+			<path>$TUSB_DIR$/src/portable/raspberrypi/rp2040/hcd_rp2040.c</path>
+			<path>$TUSB_DIR$/src/portable/raspberrypi/rp2040/rp2040_usb.c</path>
+		</group>
+		<group name="src/portable/renesas/usba">
+			<path>$TUSB_DIR$/src/portable/renesas/usba/dcd_usba.c</path>
+		</group>
+		<group name="src/portable/silabs/efm32">
+			<path>$TUSB_DIR$/src/portable/silabs/efm32/dcd_efm32.c</path>
+		</group>
+		<group name="src/portable/sony/cxd56">
+			<path>$TUSB_DIR$/src/portable/sony/cxd56/dcd_cxd56.c</path>
+		</group>
+		<group name="src/portable/st/stm32_fsdev">
+			<path>$TUSB_DIR$/src/portable/st/stm32_fsdev/dcd_stm32_fsdev.c</path>
+		</group>
+		<group name="src/portable/st/synopsys">
+			<path>$TUSB_DIR$/src/portable/st/synopsys/dcd_synopsys.c</path>
+		</group>
+		<group name="src/portable/template">
+			<path>$TUSB_DIR$/src/portable/template/dcd_template.c</path>
+		</group>
+		<group name="src/portable/ti/msp430x5xx">
+			<path>$TUSB_DIR$/src/portable/ti/msp430x5xx/dcd_msp430x5xx.c</path>
+		</group>
+		<group name="src/portable/valentyusb/eptri">
+			<path>$TUSB_DIR$/src/portable/valentyusb/eptri/dcd_eptri.c</path>
+		</group>
+		<group name="lib/SEGGER_RTT">
+			<path>$TUSB_DIR$/lib/SEGGER_RTT/RTT/SEGGER_RTT.c</path>
+			<path>$TUSB_DIR$/lib/SEGGER_RTT/RTT/SEGGER_RTT_printf.c</path>
+			<path>$TUSB_DIR$/lib/SEGGER_RTT/Syscalls/SEGGER_RTT_Syscalls_IAR.c</path>
+		</group>
+		<group name="bsp">
+			<path>$TUSB_DIR$/hw/bsp/board.c</path>
+		</group>
+		<group name="example">
+			<path copyTo="$PROJ_DIR$/lwipopts.h">$TUSB_DIR$/examples/device/net_lwip_webserver/src/lwipopts.h</path>
+			<path copyTo="$PROJ_DIR$/main.c">$TUSB_DIR$/examples/device/net_lwip_webserver/src/main.c</path>
+			<path copyTo="$PROJ_DIR$/tusb_config.h">$TUSB_DIR$/examples/device/net_lwip_webserver/src/tusb_config.h</path>
+			<path copyTo="$PROJ_DIR$/usb_descriptors.c">$TUSB_DIR$/examples/device/net_lwip_webserver/src/usb_descriptors.c</path>
+		</group>
+	</files>
+</iarProjectConnection>

+ 155 - 0
examples/device/uac2_headset/iar_uac2_headset.ipcf

@@ -0,0 +1,155 @@
+<?xml version="1.0" ?>
+<iarProjectConnection name="tinyusb" oneShot="true">
+	<includePath>
+		<path>$TUSB_DIR$/src</path>
+		<path>$TUSB_DIR$/lib/SEGGER_RTT/RTT</path>
+		<path>$PROJ_DIR$</path>
+		<path>$TUSB_DIR$/hw</path>
+	</includePath>
+	<files>
+		<group name="src/device">
+			<path>$TUSB_DIR$/src/device/usbd.c</path>
+			<path>$TUSB_DIR$/src/device/usbd_control.c</path>
+		</group>
+		<group name="src/common">
+			<path>$TUSB_DIR$/src/common/tusb_fifo.c</path>
+		</group>
+		<group name="src/class/audio">
+			<path>$TUSB_DIR$/src/class/audio/audio_device.c</path>
+		</group>
+		<group name="src/class/bth">
+			<path>$TUSB_DIR$/src/class/bth/bth_device.c</path>
+		</group>
+		<group name="src/class/cdc">
+			<path>$TUSB_DIR$/src/class/cdc/cdc_device.c</path>
+			<path>$TUSB_DIR$/src/class/cdc/cdc_host.c</path>
+			<path>$TUSB_DIR$/src/class/cdc/cdc_rndis_host.c</path>
+		</group>
+		<group name="src/class/dfu">
+			<path>$TUSB_DIR$/src/class/dfu/dfu_device.c</path>
+			<path>$TUSB_DIR$/src/class/dfu/dfu_rt_device.c</path>
+		</group>
+		<group name="src/class/hid">
+			<path>$TUSB_DIR$/src/class/hid/hid_device.c</path>
+			<path>$TUSB_DIR$/src/class/hid/hid_host.c</path>
+		</group>
+		<group name="src/class/midi">
+			<path>$TUSB_DIR$/src/class/midi/midi_device.c</path>
+		</group>
+		<group name="src/class/msc">
+			<path>$TUSB_DIR$/src/class/msc/msc_device.c</path>
+			<path>$TUSB_DIR$/src/class/msc/msc_host.c</path>
+		</group>
+		<group name="src/class/net">
+			<path>$TUSB_DIR$/src/class/net/net_device.c</path>
+		</group>
+		<group name="src/class/usbtmc">
+			<path>$TUSB_DIR$/src/class/usbtmc/usbtmc_device.c</path>
+		</group>
+		<group name="src/class/vendor">
+			<path>$TUSB_DIR$/src/class/vendor/vendor_device.c</path>
+			<path>$TUSB_DIR$/src/class/vendor/vendor_host.c</path>
+		</group>
+		<group name="src">
+			<path>$TUSB_DIR$/src/tusb.c</path>
+		</group>
+		<group name="src/host">
+			<path>$TUSB_DIR$/src/host/hub.c</path>
+			<path>$TUSB_DIR$/src/host/usbh.c</path>
+			<path>$TUSB_DIR$/src/host/usbh_control.c</path>
+		</group>
+		<group name="src/portable/dialog/da146xx">
+			<path>$TUSB_DIR$/src/portable/dialog/da146xx/dcd_da146xx.c</path>
+		</group>
+		<group name="src/portable/ehci">
+			<path>$TUSB_DIR$/src/portable/ehci/ehci.c</path>
+		</group>
+		<group name="src/portable/espressif/esp32sx">
+			<path>$TUSB_DIR$/src/portable/espressif/esp32sx/dcd_esp32sx.c</path>
+		</group>
+		<group name="src/portable/microchip/samd">
+			<path>$TUSB_DIR$/src/portable/microchip/samd/dcd_samd.c</path>
+		</group>
+		<group name="src/portable/microchip/samg">
+			<path>$TUSB_DIR$/src/portable/microchip/samg/dcd_samg.c</path>
+		</group>
+		<group name="src/portable/microchip/samx7x">
+			<path>$TUSB_DIR$/src/portable/microchip/samx7x/dcd_samx7x.c</path>
+		</group>
+		<group name="src/portable/mindmotion/mm32">
+			<path>$TUSB_DIR$/src/portable/mindmotion/mm32/dcd_mm32f327x_otg.c</path>
+		</group>
+		<group name="src/portable/nordic/nrf5x">
+			<path>$TUSB_DIR$/src/portable/nordic/nrf5x/dcd_nrf5x.c</path>
+		</group>
+		<group name="src/portable/nuvoton/nuc120">
+			<path>$TUSB_DIR$/src/portable/nuvoton/nuc120/dcd_nuc120.c</path>
+		</group>
+		<group name="src/portable/nuvoton/nuc121">
+			<path>$TUSB_DIR$/src/portable/nuvoton/nuc121/dcd_nuc121.c</path>
+		</group>
+		<group name="src/portable/nuvoton/nuc505">
+			<path>$TUSB_DIR$/src/portable/nuvoton/nuc505/dcd_nuc505.c</path>
+		</group>
+		<group name="src/portable/nxp/khci">
+			<path>$TUSB_DIR$/src/portable/nxp/khci/dcd_khci.c</path>
+		</group>
+		<group name="src/portable/nxp/lpc17_40">
+			<path>$TUSB_DIR$/src/portable/nxp/lpc17_40/dcd_lpc17_40.c</path>
+			<path>$TUSB_DIR$/src/portable/nxp/lpc17_40/hcd_lpc17_40.c</path>
+		</group>
+		<group name="src/portable/nxp/lpc_ip3511">
+			<path>$TUSB_DIR$/src/portable/nxp/lpc_ip3511/dcd_lpc_ip3511.c</path>
+		</group>
+		<group name="src/portable/nxp/transdimension">
+			<path>$TUSB_DIR$/src/portable/nxp/transdimension/dcd_transdimension.c</path>
+			<path>$TUSB_DIR$/src/portable/nxp/transdimension/hcd_transdimension.c</path>
+		</group>
+		<group name="src/portable/ohci">
+			<path>$TUSB_DIR$/src/portable/ohci/ohci.c</path>
+		</group>
+		<group name="src/portable/raspberrypi/rp2040">
+			<path>$TUSB_DIR$/src/portable/raspberrypi/rp2040/dcd_rp2040.c</path>
+			<path>$TUSB_DIR$/src/portable/raspberrypi/rp2040/hcd_rp2040.c</path>
+			<path>$TUSB_DIR$/src/portable/raspberrypi/rp2040/rp2040_usb.c</path>
+		</group>
+		<group name="src/portable/renesas/usba">
+			<path>$TUSB_DIR$/src/portable/renesas/usba/dcd_usba.c</path>
+		</group>
+		<group name="src/portable/silabs/efm32">
+			<path>$TUSB_DIR$/src/portable/silabs/efm32/dcd_efm32.c</path>
+		</group>
+		<group name="src/portable/sony/cxd56">
+			<path>$TUSB_DIR$/src/portable/sony/cxd56/dcd_cxd56.c</path>
+		</group>
+		<group name="src/portable/st/stm32_fsdev">
+			<path>$TUSB_DIR$/src/portable/st/stm32_fsdev/dcd_stm32_fsdev.c</path>
+		</group>
+		<group name="src/portable/st/synopsys">
+			<path>$TUSB_DIR$/src/portable/st/synopsys/dcd_synopsys.c</path>
+		</group>
+		<group name="src/portable/template">
+			<path>$TUSB_DIR$/src/portable/template/dcd_template.c</path>
+		</group>
+		<group name="src/portable/ti/msp430x5xx">
+			<path>$TUSB_DIR$/src/portable/ti/msp430x5xx/dcd_msp430x5xx.c</path>
+		</group>
+		<group name="src/portable/valentyusb/eptri">
+			<path>$TUSB_DIR$/src/portable/valentyusb/eptri/dcd_eptri.c</path>
+		</group>
+		<group name="lib/SEGGER_RTT">
+			<path>$TUSB_DIR$/lib/SEGGER_RTT/RTT/SEGGER_RTT.c</path>
+			<path>$TUSB_DIR$/lib/SEGGER_RTT/RTT/SEGGER_RTT_printf.c</path>
+			<path>$TUSB_DIR$/lib/SEGGER_RTT/Syscalls/SEGGER_RTT_Syscalls_IAR.c</path>
+		</group>
+		<group name="bsp">
+			<path>$TUSB_DIR$/hw/bsp/board.c</path>
+		</group>
+		<group name="example">
+			<path copyTo="$PROJ_DIR$/main.c">$TUSB_DIR$/examples/device/uac2_headset/src/main.c</path>
+			<path copyTo="$PROJ_DIR$/tusb_config.h">$TUSB_DIR$/examples/device/uac2_headset/src/tusb_config.h</path>
+			<path copyTo="$PROJ_DIR$/usb_descriptors.c">$TUSB_DIR$/examples/device/uac2_headset/src/usb_descriptors.c</path>
+			<path copyTo="$PROJ_DIR$/usb_descriptors.h">$TUSB_DIR$/examples/device/uac2_headset/src/usb_descriptors.h</path>
+		</group>
+	</files>
+</iarProjectConnection>

+ 157 - 0
examples/device/usbtmc/iar_usbtmc.ipcf

@@ -0,0 +1,157 @@
+<?xml version="1.0" ?>
+<iarProjectConnection name="tinyusb" oneShot="true">
+	<includePath>
+		<path>$TUSB_DIR$/src</path>
+		<path>$TUSB_DIR$/lib/SEGGER_RTT/RTT</path>
+		<path>$PROJ_DIR$</path>
+		<path>$TUSB_DIR$/hw</path>
+	</includePath>
+	<files>
+		<group name="src/device">
+			<path>$TUSB_DIR$/src/device/usbd.c</path>
+			<path>$TUSB_DIR$/src/device/usbd_control.c</path>
+		</group>
+		<group name="src/common">
+			<path>$TUSB_DIR$/src/common/tusb_fifo.c</path>
+		</group>
+		<group name="src/class/audio">
+			<path>$TUSB_DIR$/src/class/audio/audio_device.c</path>
+		</group>
+		<group name="src/class/bth">
+			<path>$TUSB_DIR$/src/class/bth/bth_device.c</path>
+		</group>
+		<group name="src/class/cdc">
+			<path>$TUSB_DIR$/src/class/cdc/cdc_device.c</path>
+			<path>$TUSB_DIR$/src/class/cdc/cdc_host.c</path>
+			<path>$TUSB_DIR$/src/class/cdc/cdc_rndis_host.c</path>
+		</group>
+		<group name="src/class/dfu">
+			<path>$TUSB_DIR$/src/class/dfu/dfu_device.c</path>
+			<path>$TUSB_DIR$/src/class/dfu/dfu_rt_device.c</path>
+		</group>
+		<group name="src/class/hid">
+			<path>$TUSB_DIR$/src/class/hid/hid_device.c</path>
+			<path>$TUSB_DIR$/src/class/hid/hid_host.c</path>
+		</group>
+		<group name="src/class/midi">
+			<path>$TUSB_DIR$/src/class/midi/midi_device.c</path>
+		</group>
+		<group name="src/class/msc">
+			<path>$TUSB_DIR$/src/class/msc/msc_device.c</path>
+			<path>$TUSB_DIR$/src/class/msc/msc_host.c</path>
+		</group>
+		<group name="src/class/net">
+			<path>$TUSB_DIR$/src/class/net/net_device.c</path>
+		</group>
+		<group name="src/class/usbtmc">
+			<path>$TUSB_DIR$/src/class/usbtmc/usbtmc_device.c</path>
+		</group>
+		<group name="src/class/vendor">
+			<path>$TUSB_DIR$/src/class/vendor/vendor_device.c</path>
+			<path>$TUSB_DIR$/src/class/vendor/vendor_host.c</path>
+		</group>
+		<group name="src">
+			<path>$TUSB_DIR$/src/tusb.c</path>
+		</group>
+		<group name="src/host">
+			<path>$TUSB_DIR$/src/host/hub.c</path>
+			<path>$TUSB_DIR$/src/host/usbh.c</path>
+			<path>$TUSB_DIR$/src/host/usbh_control.c</path>
+		</group>
+		<group name="src/portable/dialog/da146xx">
+			<path>$TUSB_DIR$/src/portable/dialog/da146xx/dcd_da146xx.c</path>
+		</group>
+		<group name="src/portable/ehci">
+			<path>$TUSB_DIR$/src/portable/ehci/ehci.c</path>
+		</group>
+		<group name="src/portable/espressif/esp32sx">
+			<path>$TUSB_DIR$/src/portable/espressif/esp32sx/dcd_esp32sx.c</path>
+		</group>
+		<group name="src/portable/microchip/samd">
+			<path>$TUSB_DIR$/src/portable/microchip/samd/dcd_samd.c</path>
+		</group>
+		<group name="src/portable/microchip/samg">
+			<path>$TUSB_DIR$/src/portable/microchip/samg/dcd_samg.c</path>
+		</group>
+		<group name="src/portable/microchip/samx7x">
+			<path>$TUSB_DIR$/src/portable/microchip/samx7x/dcd_samx7x.c</path>
+		</group>
+		<group name="src/portable/mindmotion/mm32">
+			<path>$TUSB_DIR$/src/portable/mindmotion/mm32/dcd_mm32f327x_otg.c</path>
+		</group>
+		<group name="src/portable/nordic/nrf5x">
+			<path>$TUSB_DIR$/src/portable/nordic/nrf5x/dcd_nrf5x.c</path>
+		</group>
+		<group name="src/portable/nuvoton/nuc120">
+			<path>$TUSB_DIR$/src/portable/nuvoton/nuc120/dcd_nuc120.c</path>
+		</group>
+		<group name="src/portable/nuvoton/nuc121">
+			<path>$TUSB_DIR$/src/portable/nuvoton/nuc121/dcd_nuc121.c</path>
+		</group>
+		<group name="src/portable/nuvoton/nuc505">
+			<path>$TUSB_DIR$/src/portable/nuvoton/nuc505/dcd_nuc505.c</path>
+		</group>
+		<group name="src/portable/nxp/khci">
+			<path>$TUSB_DIR$/src/portable/nxp/khci/dcd_khci.c</path>
+		</group>
+		<group name="src/portable/nxp/lpc17_40">
+			<path>$TUSB_DIR$/src/portable/nxp/lpc17_40/dcd_lpc17_40.c</path>
+			<path>$TUSB_DIR$/src/portable/nxp/lpc17_40/hcd_lpc17_40.c</path>
+		</group>
+		<group name="src/portable/nxp/lpc_ip3511">
+			<path>$TUSB_DIR$/src/portable/nxp/lpc_ip3511/dcd_lpc_ip3511.c</path>
+		</group>
+		<group name="src/portable/nxp/transdimension">
+			<path>$TUSB_DIR$/src/portable/nxp/transdimension/dcd_transdimension.c</path>
+			<path>$TUSB_DIR$/src/portable/nxp/transdimension/hcd_transdimension.c</path>
+		</group>
+		<group name="src/portable/ohci">
+			<path>$TUSB_DIR$/src/portable/ohci/ohci.c</path>
+		</group>
+		<group name="src/portable/raspberrypi/rp2040">
+			<path>$TUSB_DIR$/src/portable/raspberrypi/rp2040/dcd_rp2040.c</path>
+			<path>$TUSB_DIR$/src/portable/raspberrypi/rp2040/hcd_rp2040.c</path>
+			<path>$TUSB_DIR$/src/portable/raspberrypi/rp2040/rp2040_usb.c</path>
+		</group>
+		<group name="src/portable/renesas/usba">
+			<path>$TUSB_DIR$/src/portable/renesas/usba/dcd_usba.c</path>
+		</group>
+		<group name="src/portable/silabs/efm32">
+			<path>$TUSB_DIR$/src/portable/silabs/efm32/dcd_efm32.c</path>
+		</group>
+		<group name="src/portable/sony/cxd56">
+			<path>$TUSB_DIR$/src/portable/sony/cxd56/dcd_cxd56.c</path>
+		</group>
+		<group name="src/portable/st/stm32_fsdev">
+			<path>$TUSB_DIR$/src/portable/st/stm32_fsdev/dcd_stm32_fsdev.c</path>
+		</group>
+		<group name="src/portable/st/synopsys">
+			<path>$TUSB_DIR$/src/portable/st/synopsys/dcd_synopsys.c</path>
+		</group>
+		<group name="src/portable/template">
+			<path>$TUSB_DIR$/src/portable/template/dcd_template.c</path>
+		</group>
+		<group name="src/portable/ti/msp430x5xx">
+			<path>$TUSB_DIR$/src/portable/ti/msp430x5xx/dcd_msp430x5xx.c</path>
+		</group>
+		<group name="src/portable/valentyusb/eptri">
+			<path>$TUSB_DIR$/src/portable/valentyusb/eptri/dcd_eptri.c</path>
+		</group>
+		<group name="lib/SEGGER_RTT">
+			<path>$TUSB_DIR$/lib/SEGGER_RTT/RTT/SEGGER_RTT.c</path>
+			<path>$TUSB_DIR$/lib/SEGGER_RTT/RTT/SEGGER_RTT_printf.c</path>
+			<path>$TUSB_DIR$/lib/SEGGER_RTT/Syscalls/SEGGER_RTT_Syscalls_IAR.c</path>
+		</group>
+		<group name="bsp">
+			<path>$TUSB_DIR$/hw/bsp/board.c</path>
+		</group>
+		<group name="example">
+			<path copyTo="$PROJ_DIR$/main.c">$TUSB_DIR$/examples/device/usbtmc/src/main.c</path>
+			<path copyTo="$PROJ_DIR$/main.h">$TUSB_DIR$/examples/device/usbtmc/src/main.h</path>
+			<path copyTo="$PROJ_DIR$/tusb_config.h">$TUSB_DIR$/examples/device/usbtmc/src/tusb_config.h</path>
+			<path copyTo="$PROJ_DIR$/usbtmc_app.c">$TUSB_DIR$/examples/device/usbtmc/src/usbtmc_app.c</path>
+			<path copyTo="$PROJ_DIR$/usbtmc_app.h">$TUSB_DIR$/examples/device/usbtmc/src/usbtmc_app.h</path>
+			<path copyTo="$PROJ_DIR$/usb_descriptors.c">$TUSB_DIR$/examples/device/usbtmc/src/usb_descriptors.c</path>
+		</group>
+	</files>
+</iarProjectConnection>

+ 155 - 0
examples/device/webusb_serial/iar_webusb_serial.ipcf

@@ -0,0 +1,155 @@
+<?xml version="1.0" ?>
+<iarProjectConnection name="tinyusb" oneShot="true">
+	<includePath>
+		<path>$TUSB_DIR$/src</path>
+		<path>$TUSB_DIR$/lib/SEGGER_RTT/RTT</path>
+		<path>$PROJ_DIR$</path>
+		<path>$TUSB_DIR$/hw</path>
+	</includePath>
+	<files>
+		<group name="src/device">
+			<path>$TUSB_DIR$/src/device/usbd.c</path>
+			<path>$TUSB_DIR$/src/device/usbd_control.c</path>
+		</group>
+		<group name="src/common">
+			<path>$TUSB_DIR$/src/common/tusb_fifo.c</path>
+		</group>
+		<group name="src/class/audio">
+			<path>$TUSB_DIR$/src/class/audio/audio_device.c</path>
+		</group>
+		<group name="src/class/bth">
+			<path>$TUSB_DIR$/src/class/bth/bth_device.c</path>
+		</group>
+		<group name="src/class/cdc">
+			<path>$TUSB_DIR$/src/class/cdc/cdc_device.c</path>
+			<path>$TUSB_DIR$/src/class/cdc/cdc_host.c</path>
+			<path>$TUSB_DIR$/src/class/cdc/cdc_rndis_host.c</path>
+		</group>
+		<group name="src/class/dfu">
+			<path>$TUSB_DIR$/src/class/dfu/dfu_device.c</path>
+			<path>$TUSB_DIR$/src/class/dfu/dfu_rt_device.c</path>
+		</group>
+		<group name="src/class/hid">
+			<path>$TUSB_DIR$/src/class/hid/hid_device.c</path>
+			<path>$TUSB_DIR$/src/class/hid/hid_host.c</path>
+		</group>
+		<group name="src/class/midi">
+			<path>$TUSB_DIR$/src/class/midi/midi_device.c</path>
+		</group>
+		<group name="src/class/msc">
+			<path>$TUSB_DIR$/src/class/msc/msc_device.c</path>
+			<path>$TUSB_DIR$/src/class/msc/msc_host.c</path>
+		</group>
+		<group name="src/class/net">
+			<path>$TUSB_DIR$/src/class/net/net_device.c</path>
+		</group>
+		<group name="src/class/usbtmc">
+			<path>$TUSB_DIR$/src/class/usbtmc/usbtmc_device.c</path>
+		</group>
+		<group name="src/class/vendor">
+			<path>$TUSB_DIR$/src/class/vendor/vendor_device.c</path>
+			<path>$TUSB_DIR$/src/class/vendor/vendor_host.c</path>
+		</group>
+		<group name="src">
+			<path>$TUSB_DIR$/src/tusb.c</path>
+		</group>
+		<group name="src/host">
+			<path>$TUSB_DIR$/src/host/hub.c</path>
+			<path>$TUSB_DIR$/src/host/usbh.c</path>
+			<path>$TUSB_DIR$/src/host/usbh_control.c</path>
+		</group>
+		<group name="src/portable/dialog/da146xx">
+			<path>$TUSB_DIR$/src/portable/dialog/da146xx/dcd_da146xx.c</path>
+		</group>
+		<group name="src/portable/ehci">
+			<path>$TUSB_DIR$/src/portable/ehci/ehci.c</path>
+		</group>
+		<group name="src/portable/espressif/esp32sx">
+			<path>$TUSB_DIR$/src/portable/espressif/esp32sx/dcd_esp32sx.c</path>
+		</group>
+		<group name="src/portable/microchip/samd">
+			<path>$TUSB_DIR$/src/portable/microchip/samd/dcd_samd.c</path>
+		</group>
+		<group name="src/portable/microchip/samg">
+			<path>$TUSB_DIR$/src/portable/microchip/samg/dcd_samg.c</path>
+		</group>
+		<group name="src/portable/microchip/samx7x">
+			<path>$TUSB_DIR$/src/portable/microchip/samx7x/dcd_samx7x.c</path>
+		</group>
+		<group name="src/portable/mindmotion/mm32">
+			<path>$TUSB_DIR$/src/portable/mindmotion/mm32/dcd_mm32f327x_otg.c</path>
+		</group>
+		<group name="src/portable/nordic/nrf5x">
+			<path>$TUSB_DIR$/src/portable/nordic/nrf5x/dcd_nrf5x.c</path>
+		</group>
+		<group name="src/portable/nuvoton/nuc120">
+			<path>$TUSB_DIR$/src/portable/nuvoton/nuc120/dcd_nuc120.c</path>
+		</group>
+		<group name="src/portable/nuvoton/nuc121">
+			<path>$TUSB_DIR$/src/portable/nuvoton/nuc121/dcd_nuc121.c</path>
+		</group>
+		<group name="src/portable/nuvoton/nuc505">
+			<path>$TUSB_DIR$/src/portable/nuvoton/nuc505/dcd_nuc505.c</path>
+		</group>
+		<group name="src/portable/nxp/khci">
+			<path>$TUSB_DIR$/src/portable/nxp/khci/dcd_khci.c</path>
+		</group>
+		<group name="src/portable/nxp/lpc17_40">
+			<path>$TUSB_DIR$/src/portable/nxp/lpc17_40/dcd_lpc17_40.c</path>
+			<path>$TUSB_DIR$/src/portable/nxp/lpc17_40/hcd_lpc17_40.c</path>
+		</group>
+		<group name="src/portable/nxp/lpc_ip3511">
+			<path>$TUSB_DIR$/src/portable/nxp/lpc_ip3511/dcd_lpc_ip3511.c</path>
+		</group>
+		<group name="src/portable/nxp/transdimension">
+			<path>$TUSB_DIR$/src/portable/nxp/transdimension/dcd_transdimension.c</path>
+			<path>$TUSB_DIR$/src/portable/nxp/transdimension/hcd_transdimension.c</path>
+		</group>
+		<group name="src/portable/ohci">
+			<path>$TUSB_DIR$/src/portable/ohci/ohci.c</path>
+		</group>
+		<group name="src/portable/raspberrypi/rp2040">
+			<path>$TUSB_DIR$/src/portable/raspberrypi/rp2040/dcd_rp2040.c</path>
+			<path>$TUSB_DIR$/src/portable/raspberrypi/rp2040/hcd_rp2040.c</path>
+			<path>$TUSB_DIR$/src/portable/raspberrypi/rp2040/rp2040_usb.c</path>
+		</group>
+		<group name="src/portable/renesas/usba">
+			<path>$TUSB_DIR$/src/portable/renesas/usba/dcd_usba.c</path>
+		</group>
+		<group name="src/portable/silabs/efm32">
+			<path>$TUSB_DIR$/src/portable/silabs/efm32/dcd_efm32.c</path>
+		</group>
+		<group name="src/portable/sony/cxd56">
+			<path>$TUSB_DIR$/src/portable/sony/cxd56/dcd_cxd56.c</path>
+		</group>
+		<group name="src/portable/st/stm32_fsdev">
+			<path>$TUSB_DIR$/src/portable/st/stm32_fsdev/dcd_stm32_fsdev.c</path>
+		</group>
+		<group name="src/portable/st/synopsys">
+			<path>$TUSB_DIR$/src/portable/st/synopsys/dcd_synopsys.c</path>
+		</group>
+		<group name="src/portable/template">
+			<path>$TUSB_DIR$/src/portable/template/dcd_template.c</path>
+		</group>
+		<group name="src/portable/ti/msp430x5xx">
+			<path>$TUSB_DIR$/src/portable/ti/msp430x5xx/dcd_msp430x5xx.c</path>
+		</group>
+		<group name="src/portable/valentyusb/eptri">
+			<path>$TUSB_DIR$/src/portable/valentyusb/eptri/dcd_eptri.c</path>
+		</group>
+		<group name="lib/SEGGER_RTT">
+			<path>$TUSB_DIR$/lib/SEGGER_RTT/RTT/SEGGER_RTT.c</path>
+			<path>$TUSB_DIR$/lib/SEGGER_RTT/RTT/SEGGER_RTT_printf.c</path>
+			<path>$TUSB_DIR$/lib/SEGGER_RTT/Syscalls/SEGGER_RTT_Syscalls_IAR.c</path>
+		</group>
+		<group name="bsp">
+			<path>$TUSB_DIR$/hw/bsp/board.c</path>
+		</group>
+		<group name="example">
+			<path copyTo="$PROJ_DIR$/main.c">$TUSB_DIR$/examples/device/webusb_serial/src/main.c</path>
+			<path copyTo="$PROJ_DIR$/tusb_config.h">$TUSB_DIR$/examples/device/webusb_serial/src/tusb_config.h</path>
+			<path copyTo="$PROJ_DIR$/usb_descriptors.c">$TUSB_DIR$/examples/device/webusb_serial/src/usb_descriptors.c</path>
+			<path copyTo="$PROJ_DIR$/usb_descriptors.h">$TUSB_DIR$/examples/device/webusb_serial/src/usb_descriptors.h</path>
+		</group>
+	</files>
+</iarProjectConnection>

+ 155 - 0
examples/host/cdc_msc_hid/iar_cdc_msc_hid.ipcf

@@ -0,0 +1,155 @@
+<?xml version="1.0" ?>
+<iarProjectConnection name="tinyusb" oneShot="true">
+	<includePath>
+		<path>$TUSB_DIR$/src</path>
+		<path>$TUSB_DIR$/lib/SEGGER_RTT/RTT</path>
+		<path>$PROJ_DIR$</path>
+		<path>$TUSB_DIR$/hw</path>
+	</includePath>
+	<files>
+		<group name="src/device">
+			<path>$TUSB_DIR$/src/device/usbd.c</path>
+			<path>$TUSB_DIR$/src/device/usbd_control.c</path>
+		</group>
+		<group name="src/common">
+			<path>$TUSB_DIR$/src/common/tusb_fifo.c</path>
+		</group>
+		<group name="src/class/audio">
+			<path>$TUSB_DIR$/src/class/audio/audio_device.c</path>
+		</group>
+		<group name="src/class/bth">
+			<path>$TUSB_DIR$/src/class/bth/bth_device.c</path>
+		</group>
+		<group name="src/class/cdc">
+			<path>$TUSB_DIR$/src/class/cdc/cdc_device.c</path>
+			<path>$TUSB_DIR$/src/class/cdc/cdc_host.c</path>
+			<path>$TUSB_DIR$/src/class/cdc/cdc_rndis_host.c</path>
+		</group>
+		<group name="src/class/dfu">
+			<path>$TUSB_DIR$/src/class/dfu/dfu_device.c</path>
+			<path>$TUSB_DIR$/src/class/dfu/dfu_rt_device.c</path>
+		</group>
+		<group name="src/class/hid">
+			<path>$TUSB_DIR$/src/class/hid/hid_device.c</path>
+			<path>$TUSB_DIR$/src/class/hid/hid_host.c</path>
+		</group>
+		<group name="src/class/midi">
+			<path>$TUSB_DIR$/src/class/midi/midi_device.c</path>
+		</group>
+		<group name="src/class/msc">
+			<path>$TUSB_DIR$/src/class/msc/msc_device.c</path>
+			<path>$TUSB_DIR$/src/class/msc/msc_host.c</path>
+		</group>
+		<group name="src/class/net">
+			<path>$TUSB_DIR$/src/class/net/net_device.c</path>
+		</group>
+		<group name="src/class/usbtmc">
+			<path>$TUSB_DIR$/src/class/usbtmc/usbtmc_device.c</path>
+		</group>
+		<group name="src/class/vendor">
+			<path>$TUSB_DIR$/src/class/vendor/vendor_device.c</path>
+			<path>$TUSB_DIR$/src/class/vendor/vendor_host.c</path>
+		</group>
+		<group name="src">
+			<path>$TUSB_DIR$/src/tusb.c</path>
+		</group>
+		<group name="src/host">
+			<path>$TUSB_DIR$/src/host/hub.c</path>
+			<path>$TUSB_DIR$/src/host/usbh.c</path>
+			<path>$TUSB_DIR$/src/host/usbh_control.c</path>
+		</group>
+		<group name="src/portable/dialog/da146xx">
+			<path>$TUSB_DIR$/src/portable/dialog/da146xx/dcd_da146xx.c</path>
+		</group>
+		<group name="src/portable/ehci">
+			<path>$TUSB_DIR$/src/portable/ehci/ehci.c</path>
+		</group>
+		<group name="src/portable/espressif/esp32sx">
+			<path>$TUSB_DIR$/src/portable/espressif/esp32sx/dcd_esp32sx.c</path>
+		</group>
+		<group name="src/portable/microchip/samd">
+			<path>$TUSB_DIR$/src/portable/microchip/samd/dcd_samd.c</path>
+		</group>
+		<group name="src/portable/microchip/samg">
+			<path>$TUSB_DIR$/src/portable/microchip/samg/dcd_samg.c</path>
+		</group>
+		<group name="src/portable/microchip/samx7x">
+			<path>$TUSB_DIR$/src/portable/microchip/samx7x/dcd_samx7x.c</path>
+		</group>
+		<group name="src/portable/mindmotion/mm32">
+			<path>$TUSB_DIR$/src/portable/mindmotion/mm32/dcd_mm32f327x_otg.c</path>
+		</group>
+		<group name="src/portable/nordic/nrf5x">
+			<path>$TUSB_DIR$/src/portable/nordic/nrf5x/dcd_nrf5x.c</path>
+		</group>
+		<group name="src/portable/nuvoton/nuc120">
+			<path>$TUSB_DIR$/src/portable/nuvoton/nuc120/dcd_nuc120.c</path>
+		</group>
+		<group name="src/portable/nuvoton/nuc121">
+			<path>$TUSB_DIR$/src/portable/nuvoton/nuc121/dcd_nuc121.c</path>
+		</group>
+		<group name="src/portable/nuvoton/nuc505">
+			<path>$TUSB_DIR$/src/portable/nuvoton/nuc505/dcd_nuc505.c</path>
+		</group>
+		<group name="src/portable/nxp/khci">
+			<path>$TUSB_DIR$/src/portable/nxp/khci/dcd_khci.c</path>
+		</group>
+		<group name="src/portable/nxp/lpc17_40">
+			<path>$TUSB_DIR$/src/portable/nxp/lpc17_40/dcd_lpc17_40.c</path>
+			<path>$TUSB_DIR$/src/portable/nxp/lpc17_40/hcd_lpc17_40.c</path>
+		</group>
+		<group name="src/portable/nxp/lpc_ip3511">
+			<path>$TUSB_DIR$/src/portable/nxp/lpc_ip3511/dcd_lpc_ip3511.c</path>
+		</group>
+		<group name="src/portable/nxp/transdimension">
+			<path>$TUSB_DIR$/src/portable/nxp/transdimension/dcd_transdimension.c</path>
+			<path>$TUSB_DIR$/src/portable/nxp/transdimension/hcd_transdimension.c</path>
+		</group>
+		<group name="src/portable/ohci">
+			<path>$TUSB_DIR$/src/portable/ohci/ohci.c</path>
+		</group>
+		<group name="src/portable/raspberrypi/rp2040">
+			<path>$TUSB_DIR$/src/portable/raspberrypi/rp2040/dcd_rp2040.c</path>
+			<path>$TUSB_DIR$/src/portable/raspberrypi/rp2040/hcd_rp2040.c</path>
+			<path>$TUSB_DIR$/src/portable/raspberrypi/rp2040/rp2040_usb.c</path>
+		</group>
+		<group name="src/portable/renesas/usba">
+			<path>$TUSB_DIR$/src/portable/renesas/usba/dcd_usba.c</path>
+		</group>
+		<group name="src/portable/silabs/efm32">
+			<path>$TUSB_DIR$/src/portable/silabs/efm32/dcd_efm32.c</path>
+		</group>
+		<group name="src/portable/sony/cxd56">
+			<path>$TUSB_DIR$/src/portable/sony/cxd56/dcd_cxd56.c</path>
+		</group>
+		<group name="src/portable/st/stm32_fsdev">
+			<path>$TUSB_DIR$/src/portable/st/stm32_fsdev/dcd_stm32_fsdev.c</path>
+		</group>
+		<group name="src/portable/st/synopsys">
+			<path>$TUSB_DIR$/src/portable/st/synopsys/dcd_synopsys.c</path>
+		</group>
+		<group name="src/portable/template">
+			<path>$TUSB_DIR$/src/portable/template/dcd_template.c</path>
+		</group>
+		<group name="src/portable/ti/msp430x5xx">
+			<path>$TUSB_DIR$/src/portable/ti/msp430x5xx/dcd_msp430x5xx.c</path>
+		</group>
+		<group name="src/portable/valentyusb/eptri">
+			<path>$TUSB_DIR$/src/portable/valentyusb/eptri/dcd_eptri.c</path>
+		</group>
+		<group name="lib/SEGGER_RTT">
+			<path>$TUSB_DIR$/lib/SEGGER_RTT/RTT/SEGGER_RTT.c</path>
+			<path>$TUSB_DIR$/lib/SEGGER_RTT/RTT/SEGGER_RTT_printf.c</path>
+			<path>$TUSB_DIR$/lib/SEGGER_RTT/Syscalls/SEGGER_RTT_Syscalls_IAR.c</path>
+		</group>
+		<group name="bsp">
+			<path>$TUSB_DIR$/hw/bsp/board.c</path>
+		</group>
+		<group name="example">
+			<path copyTo="$PROJ_DIR$/hid_app.c">$TUSB_DIR$/examples/host/cdc_msc_hid/src/hid_app.c</path>
+			<path copyTo="$PROJ_DIR$/main.c">$TUSB_DIR$/examples/host/cdc_msc_hid/src/main.c</path>
+			<path copyTo="$PROJ_DIR$/msc_app.c">$TUSB_DIR$/examples/host/cdc_msc_hid/src/msc_app.c</path>
+			<path copyTo="$PROJ_DIR$/tusb_config.h">$TUSB_DIR$/examples/host/cdc_msc_hid/src/tusb_config.h</path>
+		</group>
+	</files>
+</iarProjectConnection>

+ 154 - 0
examples/host/hid_controller/iar_hid_controller.ipcf

@@ -0,0 +1,154 @@
+<?xml version="1.0" ?>
+<iarProjectConnection name="tinyusb" oneShot="true">
+	<includePath>
+		<path>$TUSB_DIR$/src</path>
+		<path>$TUSB_DIR$/lib/SEGGER_RTT/RTT</path>
+		<path>$PROJ_DIR$</path>
+		<path>$TUSB_DIR$/hw</path>
+	</includePath>
+	<files>
+		<group name="src/device">
+			<path>$TUSB_DIR$/src/device/usbd.c</path>
+			<path>$TUSB_DIR$/src/device/usbd_control.c</path>
+		</group>
+		<group name="src/common">
+			<path>$TUSB_DIR$/src/common/tusb_fifo.c</path>
+		</group>
+		<group name="src/class/audio">
+			<path>$TUSB_DIR$/src/class/audio/audio_device.c</path>
+		</group>
+		<group name="src/class/bth">
+			<path>$TUSB_DIR$/src/class/bth/bth_device.c</path>
+		</group>
+		<group name="src/class/cdc">
+			<path>$TUSB_DIR$/src/class/cdc/cdc_device.c</path>
+			<path>$TUSB_DIR$/src/class/cdc/cdc_host.c</path>
+			<path>$TUSB_DIR$/src/class/cdc/cdc_rndis_host.c</path>
+		</group>
+		<group name="src/class/dfu">
+			<path>$TUSB_DIR$/src/class/dfu/dfu_device.c</path>
+			<path>$TUSB_DIR$/src/class/dfu/dfu_rt_device.c</path>
+		</group>
+		<group name="src/class/hid">
+			<path>$TUSB_DIR$/src/class/hid/hid_device.c</path>
+			<path>$TUSB_DIR$/src/class/hid/hid_host.c</path>
+		</group>
+		<group name="src/class/midi">
+			<path>$TUSB_DIR$/src/class/midi/midi_device.c</path>
+		</group>
+		<group name="src/class/msc">
+			<path>$TUSB_DIR$/src/class/msc/msc_device.c</path>
+			<path>$TUSB_DIR$/src/class/msc/msc_host.c</path>
+		</group>
+		<group name="src/class/net">
+			<path>$TUSB_DIR$/src/class/net/net_device.c</path>
+		</group>
+		<group name="src/class/usbtmc">
+			<path>$TUSB_DIR$/src/class/usbtmc/usbtmc_device.c</path>
+		</group>
+		<group name="src/class/vendor">
+			<path>$TUSB_DIR$/src/class/vendor/vendor_device.c</path>
+			<path>$TUSB_DIR$/src/class/vendor/vendor_host.c</path>
+		</group>
+		<group name="src">
+			<path>$TUSB_DIR$/src/tusb.c</path>
+		</group>
+		<group name="src/host">
+			<path>$TUSB_DIR$/src/host/hub.c</path>
+			<path>$TUSB_DIR$/src/host/usbh.c</path>
+			<path>$TUSB_DIR$/src/host/usbh_control.c</path>
+		</group>
+		<group name="src/portable/dialog/da146xx">
+			<path>$TUSB_DIR$/src/portable/dialog/da146xx/dcd_da146xx.c</path>
+		</group>
+		<group name="src/portable/ehci">
+			<path>$TUSB_DIR$/src/portable/ehci/ehci.c</path>
+		</group>
+		<group name="src/portable/espressif/esp32sx">
+			<path>$TUSB_DIR$/src/portable/espressif/esp32sx/dcd_esp32sx.c</path>
+		</group>
+		<group name="src/portable/microchip/samd">
+			<path>$TUSB_DIR$/src/portable/microchip/samd/dcd_samd.c</path>
+		</group>
+		<group name="src/portable/microchip/samg">
+			<path>$TUSB_DIR$/src/portable/microchip/samg/dcd_samg.c</path>
+		</group>
+		<group name="src/portable/microchip/samx7x">
+			<path>$TUSB_DIR$/src/portable/microchip/samx7x/dcd_samx7x.c</path>
+		</group>
+		<group name="src/portable/mindmotion/mm32">
+			<path>$TUSB_DIR$/src/portable/mindmotion/mm32/dcd_mm32f327x_otg.c</path>
+		</group>
+		<group name="src/portable/nordic/nrf5x">
+			<path>$TUSB_DIR$/src/portable/nordic/nrf5x/dcd_nrf5x.c</path>
+		</group>
+		<group name="src/portable/nuvoton/nuc120">
+			<path>$TUSB_DIR$/src/portable/nuvoton/nuc120/dcd_nuc120.c</path>
+		</group>
+		<group name="src/portable/nuvoton/nuc121">
+			<path>$TUSB_DIR$/src/portable/nuvoton/nuc121/dcd_nuc121.c</path>
+		</group>
+		<group name="src/portable/nuvoton/nuc505">
+			<path>$TUSB_DIR$/src/portable/nuvoton/nuc505/dcd_nuc505.c</path>
+		</group>
+		<group name="src/portable/nxp/khci">
+			<path>$TUSB_DIR$/src/portable/nxp/khci/dcd_khci.c</path>
+		</group>
+		<group name="src/portable/nxp/lpc17_40">
+			<path>$TUSB_DIR$/src/portable/nxp/lpc17_40/dcd_lpc17_40.c</path>
+			<path>$TUSB_DIR$/src/portable/nxp/lpc17_40/hcd_lpc17_40.c</path>
+		</group>
+		<group name="src/portable/nxp/lpc_ip3511">
+			<path>$TUSB_DIR$/src/portable/nxp/lpc_ip3511/dcd_lpc_ip3511.c</path>
+		</group>
+		<group name="src/portable/nxp/transdimension">
+			<path>$TUSB_DIR$/src/portable/nxp/transdimension/dcd_transdimension.c</path>
+			<path>$TUSB_DIR$/src/portable/nxp/transdimension/hcd_transdimension.c</path>
+		</group>
+		<group name="src/portable/ohci">
+			<path>$TUSB_DIR$/src/portable/ohci/ohci.c</path>
+		</group>
+		<group name="src/portable/raspberrypi/rp2040">
+			<path>$TUSB_DIR$/src/portable/raspberrypi/rp2040/dcd_rp2040.c</path>
+			<path>$TUSB_DIR$/src/portable/raspberrypi/rp2040/hcd_rp2040.c</path>
+			<path>$TUSB_DIR$/src/portable/raspberrypi/rp2040/rp2040_usb.c</path>
+		</group>
+		<group name="src/portable/renesas/usba">
+			<path>$TUSB_DIR$/src/portable/renesas/usba/dcd_usba.c</path>
+		</group>
+		<group name="src/portable/silabs/efm32">
+			<path>$TUSB_DIR$/src/portable/silabs/efm32/dcd_efm32.c</path>
+		</group>
+		<group name="src/portable/sony/cxd56">
+			<path>$TUSB_DIR$/src/portable/sony/cxd56/dcd_cxd56.c</path>
+		</group>
+		<group name="src/portable/st/stm32_fsdev">
+			<path>$TUSB_DIR$/src/portable/st/stm32_fsdev/dcd_stm32_fsdev.c</path>
+		</group>
+		<group name="src/portable/st/synopsys">
+			<path>$TUSB_DIR$/src/portable/st/synopsys/dcd_synopsys.c</path>
+		</group>
+		<group name="src/portable/template">
+			<path>$TUSB_DIR$/src/portable/template/dcd_template.c</path>
+		</group>
+		<group name="src/portable/ti/msp430x5xx">
+			<path>$TUSB_DIR$/src/portable/ti/msp430x5xx/dcd_msp430x5xx.c</path>
+		</group>
+		<group name="src/portable/valentyusb/eptri">
+			<path>$TUSB_DIR$/src/portable/valentyusb/eptri/dcd_eptri.c</path>
+		</group>
+		<group name="lib/SEGGER_RTT">
+			<path>$TUSB_DIR$/lib/SEGGER_RTT/RTT/SEGGER_RTT.c</path>
+			<path>$TUSB_DIR$/lib/SEGGER_RTT/RTT/SEGGER_RTT_printf.c</path>
+			<path>$TUSB_DIR$/lib/SEGGER_RTT/Syscalls/SEGGER_RTT_Syscalls_IAR.c</path>
+		</group>
+		<group name="bsp">
+			<path>$TUSB_DIR$/hw/bsp/board.c</path>
+		</group>
+		<group name="example">
+			<path copyTo="$PROJ_DIR$/hid_app.c">$TUSB_DIR$/examples/host/hid_controller/src/hid_app.c</path>
+			<path copyTo="$PROJ_DIR$/main.c">$TUSB_DIR$/examples/host/hid_controller/src/main.c</path>
+			<path copyTo="$PROJ_DIR$/tusb_config.h">$TUSB_DIR$/examples/host/hid_controller/src/tusb_config.h</path>
+		</group>
+	</files>
+</iarProjectConnection>

+ 147 - 0
tools/iar.ipcf

@@ -0,0 +1,147 @@
+<?xml version="1.0"?>
+<iarProjectConnection name="tinyusb" oneShot="true">
+
+	<includePath>
+		<path>$TUSB_DIR$/src</path>
+        <path>$TUSB_DIR$/lib/SEGGER_RTT/RTT</path>
+        <path>$PROJ_DIR$</path>
+	</includePath>
+	<files>
+		<group name="src/device">
+			<path>$TUSB_DIR$/src/device/usbd.c</path>
+			<path>$TUSB_DIR$/src/device/usbd_control.c</path>
+		</group>
+		<group name="src/common">
+			<path>$TUSB_DIR$/src/common/tusb_fifo.c</path>
+		</group>
+		<group name="src/class/audio">
+			<path>$TUSB_DIR$/src/class/audio/audio_device.c</path>
+		</group>
+		<group name="src/class/bth">
+			<path>$TUSB_DIR$/src/class/bth/bth_device.c</path>
+		</group>
+		<group name="src/class/cdc">
+			<path>$TUSB_DIR$/src/class/cdc/cdc_device.c</path>
+			<path>$TUSB_DIR$/src/class/cdc/cdc_host.c</path>
+			<path>$TUSB_DIR$/src/class/cdc/cdc_rndis_host.c</path>
+		</group>
+		<group name="src/class/dfu">
+			<path>$TUSB_DIR$/src/class/dfu/dfu_device.c</path>
+			<path>$TUSB_DIR$/src/class/dfu/dfu_rt_device.c</path>
+		</group>
+		<group name="src/class/hid">
+			<path>$TUSB_DIR$/src/class/hid/hid_device.c</path>
+			<path>$TUSB_DIR$/src/class/hid/hid_host.c</path>
+		</group>
+		<group name="src/class/midi">
+			<path>$TUSB_DIR$/src/class/midi/midi_device.c</path>
+		</group>
+		<group name="src/class/msc">
+			<path>$TUSB_DIR$/src/class/msc/msc_device.c</path>
+			<path>$TUSB_DIR$/src/class/msc/msc_host.c</path>
+		</group>
+		<group name="src/class/net">
+			<path>$TUSB_DIR$/src/class/net/net_device.c</path>
+		</group>
+		<group name="src/class/usbtmc">
+			<path>$TUSB_DIR$/src/class/usbtmc/usbtmc_device.c</path>
+		</group>
+		<group name="src/class/vendor">
+			<path>$TUSB_DIR$/src/class/vendor/vendor_device.c</path>
+			<path>$TUSB_DIR$/src/class/vendor/vendor_host.c</path>
+		</group>
+        <group name="src">
+            <path>$TUSB_DIR$/src/tusb.c</path>
+        </group>
+		<group name="src/host">
+			<path>$TUSB_DIR$/src/host/hub.c</path>
+			<path>$TUSB_DIR$/src/host/usbh.c</path>
+			<path>$TUSB_DIR$/src/host/usbh_control.c</path>
+		</group>
+		<group name="src/portable/dialog/da146xx">
+			<path>$TUSB_DIR$/src/portable/dialog/da146xx/dcd_da146xx.c</path>
+		</group>
+		<group name="src/portable/ehci">
+			<path>$TUSB_DIR$/src/portable/ehci/ehci.c</path>
+		</group>
+		<group name="src/portable/espressif/esp32sx">
+			<path>$TUSB_DIR$/src/portable/espressif/esp32sx/dcd_esp32sx.c</path>
+		</group>
+		<group name="src/portable/microchip/samd">
+			<path>$TUSB_DIR$/src/portable/microchip/samd/dcd_samd.c</path>
+		</group>
+		<group name="src/portable/microchip/samg">
+			<path>$TUSB_DIR$/src/portable/microchip/samg/dcd_samg.c</path>
+		</group>
+		<group name="src/portable/microchip/samx7x">
+			<path>$TUSB_DIR$/src/portable/microchip/samx7x/dcd_samx7x.c</path>
+		</group>
+		<group name="src/portable/mindmotion/mm32">
+			<path>$TUSB_DIR$/src/portable/mindmotion/mm32/dcd_mm32f327x_otg.c</path>
+		</group>
+		<group name="src/portable/nordic/nrf5x">
+			<path>$TUSB_DIR$/src/portable/nordic/nrf5x/dcd_nrf5x.c</path>
+		</group>
+		<group name="src/portable/nuvoton/nuc120">
+			<path>$TUSB_DIR$/src/portable/nuvoton/nuc120/dcd_nuc120.c</path>
+		</group>
+		<group name="src/portable/nuvoton/nuc121">
+			<path>$TUSB_DIR$/src/portable/nuvoton/nuc121/dcd_nuc121.c</path>
+		</group>
+		<group name="src/portable/nuvoton/nuc505">
+			<path>$TUSB_DIR$/src/portable/nuvoton/nuc505/dcd_nuc505.c</path>
+		</group>
+		<group name="src/portable/nxp/khci">
+			<path>$TUSB_DIR$/src/portable/nxp/khci/dcd_khci.c</path>
+		</group>
+		<group name="src/portable/nxp/lpc17_40">
+			<path>$TUSB_DIR$/src/portable/nxp/lpc17_40/dcd_lpc17_40.c</path>
+			<path>$TUSB_DIR$/src/portable/nxp/lpc17_40/hcd_lpc17_40.c</path>
+		</group>
+		<group name="src/portable/nxp/lpc_ip3511">
+			<path>$TUSB_DIR$/src/portable/nxp/lpc_ip3511/dcd_lpc_ip3511.c</path>
+		</group>
+		<group name="src/portable/nxp/transdimension">
+			<path>$TUSB_DIR$/src/portable/nxp/transdimension/dcd_transdimension.c</path>
+			<path>$TUSB_DIR$/src/portable/nxp/transdimension/hcd_transdimension.c</path>
+		</group>
+		<group name="src/portable/ohci">
+			<path>$TUSB_DIR$/src/portable/ohci/ohci.c</path>
+		</group>
+		<group name="src/portable/raspberrypi/rp2040">
+			<path>$TUSB_DIR$/src/portable/raspberrypi/rp2040/dcd_rp2040.c</path>
+			<path>$TUSB_DIR$/src/portable/raspberrypi/rp2040/hcd_rp2040.c</path>
+			<path>$TUSB_DIR$/src/portable/raspberrypi/rp2040/rp2040_usb.c</path>
+		</group>
+		<group name="src/portable/renesas/usba">
+			<path>$TUSB_DIR$/src/portable/renesas/usba/dcd_usba.c</path>
+		</group>
+		<group name="src/portable/silabs/efm32">
+			<path>$TUSB_DIR$/src/portable/silabs/efm32/dcd_efm32.c</path>
+		</group>
+		<group name="src/portable/sony/cxd56">
+			<path>$TUSB_DIR$/src/portable/sony/cxd56/dcd_cxd56.c</path>
+		</group>
+		<group name="src/portable/st/stm32_fsdev">
+			<path>$TUSB_DIR$/src/portable/st/stm32_fsdev/dcd_stm32_fsdev.c</path>
+		</group>
+		<group name="src/portable/st/synopsys">
+			<path>$TUSB_DIR$/src/portable/st/synopsys/dcd_synopsys.c</path>
+		</group>
+		<group name="src/portable/template">
+			<path>$TUSB_DIR$/src/portable/template/dcd_template.c</path>
+		</group>
+		<group name="src/portable/ti/msp430x5xx">
+			<path>$TUSB_DIR$/src/portable/ti/msp430x5xx/dcd_msp430x5xx.c</path>
+		</group>
+		<group name="src/portable/valentyusb/eptri">
+			<path>$TUSB_DIR$/src/portable/valentyusb/eptri/dcd_eptri.c</path>
+		</group>
+        <group name="lib/SEGGER_RTT">
+			<path>$TUSB_DIR$/lib/SEGGER_RTT/RTT/SEGGER_RTT.c</path>
+            <path>$TUSB_DIR$/lib/SEGGER_RTT/RTT/SEGGER_RTT_printf.c</path>
+            <path>$TUSB_DIR$/lib/SEGGER_RTT/Syscalls/SEGGER_RTT_Syscalls_IAR.c</path>
+		</group>
+    </files>
+    
+</iarProjectConnection>

+ 51 - 0
tools/iar_gen.py

@@ -0,0 +1,51 @@
+#!/usr/bin/python3
+
+import os
+import xml.dom.minidom as XML
+
+# Read base configuration
+base = ""
+with open("iar.ipcf") as f:
+    base = f.read()
+
+# Enumerate all device/host examples
+dir_1 = os.listdir("../examples")
+for dir_2 in dir_1:
+    if os.path.isdir("../examples/{}".format(dir_2)):
+        print(dir_2)
+        examples = os.listdir("../examples/{}".format(dir_2))
+        for example in examples:
+            if os.path.isdir("../examples/{}/{}".format(dir_2, example)):
+                print("../examples/{}/{}".format(dir_2, example))
+                conf = XML.parseString(base)
+                files = conf.getElementsByTagName("files")[0]
+                inc   = conf.getElementsByTagName("includePath")[0]
+                # Add bsp inc
+                path = conf.createElement('path')
+                path_txt = conf.createTextNode("$TUSB_DIR$/hw")
+                path.appendChild(path_txt)
+                inc.appendChild(path)
+                # Add board.c/.h
+                grp = conf.createElement('group')
+                grp.setAttribute("name", "bsp")
+                path = conf.createElement('path')
+                path_txt = conf.createTextNode("$TUSB_DIR$/hw/bsp/board.c")
+                path.appendChild(path_txt)
+                grp.appendChild(path)
+                files.appendChild(grp)
+                # Add example's .c/.h
+                grp = conf.createElement('group')
+                grp.setAttribute("name", "example")
+                for file in os.listdir("../examples/{}/{}/src".format(dir_2, example)):
+                    if file.endswith(".c") or file.endswith(".h"):
+                        path = conf.createElement('path')
+                        path.setAttribute("copyTo", "$PROJ_DIR$/{}".format(file))
+                        path_txt = conf.createTextNode("$TUSB_DIR$/examples/{0}/{1}/src/{2}".format(dir_2, example, file))
+                        path.appendChild(path_txt)
+                        grp.appendChild(path)
+                files.appendChild(grp)
+                cfg_str = conf.toprettyxml()
+                cfg_str = '\n'.join([s for s in cfg_str.splitlines() if s.strip()])
+                #print(cfg_str)
+                with open("../examples/{0}/{1}/iar_{1}.ipcf".format(dir_2, example), 'w') as f:
+                    f.write(cfg_str)