mirror of
https://github.com/hathach/tinyusb.git
synced 2026-08-18 02:53:35 +00:00
edpt_schedule_packets() advanced xfer->buffer past each armed EP0
chunk, so the OUT-complete handler invalidated the cache at the
ADVANCED pointer: one line past the received data. The CPU then read
stale cached bytes instead of the DMA'd packet, and the misplaced
invalidate discarded a dirty line of whatever variable follows the
buffer - random neighbor corruption on every control-OUT data stage.
Found by usbtest ctrl_out (cases 14/21) on espressif_p4_function_ev
with DMA enabled, the first DWC2 target combining buffer DMA with a
data cache: usbd control state wedged after the first control write
(every later request stalled), and one build layout panicked in the
usbd memcpy with a wild pointer.
Rework the EP0 chunk bookkeeping so xfer->buffer always points at the
un-consumed position: the arm no longer advances it; instead the EP0
re-arm paths advance past each completed (full) chunk, invalidating it
first on the OUT side. The final OUT completion invalidates exactly
the received bytes of its last chunk, taken from DOEPDMA ("incremented
on every AHB transaction", databook 7.1.83 - the same semantics the
SETUP path relies on) before dma_setup_prepare() re-targets it. EP0
chunking state (ep0_pending) is now also dropped on bus reset and on
a new SETUP, so a stale latched completion can no longer re-arm EP0
DMA from dead state. No behavior change for targets without dcache.
While root-causing, the FIFO layout was cross-checked against the
DWC2 databook/programming guide v4.20a: the existing GDFIFOCFG
programming (EPInfoBaseAddr = otg_dfifo_depth - 2*ep_count, one SPRAM
word per endpoint direction for buffer DMA) is conformant and needs
no change; the P4 HS instance's reset GDFIFOCFG (0x03800400) merely
reflects a scatter/gather-sized EP_LOC_CNT of 128 that buffer DMA
does not need.
With the fix in place, enable the usbtest battery on the espressif
fleet: tools/build.py allowlists device/usbtest (a plain IDF component
like board_test/video_capture) and both espressif boards' only-lists
gain device/usbtest. Also re-enable device/usbtest on mimxrt1015_evk:
its skip predated the dcd_ci_hs stale-ACTIVE-overlay fix (already on
this branch), which cured the battery that previously killed the
uPD720201 host controller twice (2026-07-11 ROM fw, 2026-07-13 case 27
on fw 2.0.2.6); rig-validated 30/30 three consecutive runs.
Validated on rig (all 30/30): espressif_p4_function_ev(-DMA) (was
22/30 under DMA), espressif_s3_devkitm(-DMA), stm32f723disco(-DMA),
mimxrt1015_evk; p4/s3 slave-mode unaffected (DMA-only code path);
compile-checked stm32h743nucleo +TUD DMA, stm32f407disco,
stm32l476disco (device ports currently on the dead hub).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017TQZrFfU3K4Y198aLsUpBC
623 lines
21 KiB
JSON
623 lines
21 KiB
JSON
{
|
|
"boards": [
|
|
{
|
|
"name": "ek_tm4c123gxl",
|
|
"uid": "010105186C60A110",
|
|
"tests": {
|
|
"device": true,
|
|
"host": false,
|
|
"dual": false
|
|
},
|
|
"flasher": {
|
|
"name": "lm4flash",
|
|
"uid": "0E205D19",
|
|
"args": "-v"
|
|
}
|
|
},
|
|
{
|
|
"name": "espressif_p4_function_ev",
|
|
"uid": "6055F9F98715",
|
|
"variant": [
|
|
{ "name": "espressif_p4_function_ev", "flags": "" },
|
|
{ "name": "espressif_p4_function_ev-DMA", "flags": "-DCFG_TUD_DWC2_DMA_ENABLE=1 -DCFG_TUH_DWC2_DMA_ENABLE=1" }
|
|
],
|
|
"tests": {
|
|
"comment": "espressif fleet build = IDF/FreeRTOS examples plus the IDF-buildable bare-metal-style ones tools/build.py allowlists (board_test, usbtest, video_capture)",
|
|
"only": [
|
|
"device/cdc_msc_freertos",
|
|
"device/hid_composite_freertos",
|
|
"device/audio_test_freertos",
|
|
"device/usbtest",
|
|
"host/device_info",
|
|
"host/msc_file_explorer_freertos"
|
|
],
|
|
"dev_attached": [
|
|
{
|
|
"vid_pid": "1a86_55d4",
|
|
"serial": "52D2002427",
|
|
"is_cdc": true
|
|
},
|
|
{
|
|
"vid_pid": "21c4_0cc7",
|
|
"serial": "900058944CB80A53",
|
|
"is_msc": true,
|
|
"block_size": 512,
|
|
"block_count": 60620800,
|
|
"msc_inquiry": "Lexar USB Flash Drive PMAP"
|
|
}
|
|
]
|
|
},
|
|
"flasher": {
|
|
"name": "esptool",
|
|
"uid": "4ea4f48f6bc3ee11bbb9d00f9e1b1c54",
|
|
"args": "-b 1500000",
|
|
"comment": "use --force for ESP32-P4 v0.1"
|
|
},
|
|
"comment": "Use TS3USB30 mux to test both device and host"
|
|
},
|
|
{
|
|
"name": "espressif_s3_devkitm",
|
|
"uid": "84F703C084E4",
|
|
"variant": [
|
|
{ "name": "espressif_s3_devkitm", "flags": "" },
|
|
{ "name": "espressif_s3_devkitm-DMA", "flags": "-DCFG_TUD_DWC2_DMA_ENABLE=1 -DCFG_TUH_DWC2_DMA_ENABLE=1" }
|
|
],
|
|
"tests": {
|
|
"only": [
|
|
"device/cdc_msc_freertos",
|
|
"device/hid_composite_freertos",
|
|
"device/audio_test_freertos",
|
|
"device/usbtest",
|
|
"host/device_info",
|
|
"host/msc_file_explorer_freertos"
|
|
],
|
|
"dev_attached": [
|
|
{
|
|
"vid_pid": "1a86_55d4",
|
|
"serial": "52D2005402",
|
|
"is_cdc": true
|
|
},
|
|
{
|
|
"vid_pid": "048d_04d2",
|
|
"serial": "\u0409",
|
|
"is_msc": true,
|
|
"block_size": 512,
|
|
"block_count": 30720000,
|
|
"msc_inquiry": "General UDisk 5.00",
|
|
"comment": "General UDisk reports iSerialNumber=U+0409"
|
|
}
|
|
]
|
|
},
|
|
"flasher": {
|
|
"name": "esptool",
|
|
"uid": "3ea619acd1cdeb11a0a0b806e93fd3f1",
|
|
"args": "-b 1500000"
|
|
},
|
|
"comment": "Use TS3USB30 mux to test both device and host"
|
|
},
|
|
{
|
|
"name": "feather_nrf52840_express",
|
|
"uid": "1F0479CD0F764471",
|
|
"tests": {
|
|
"device": true,
|
|
"host": false,
|
|
"dual": false
|
|
},
|
|
"flasher": {
|
|
"name": "jlink",
|
|
"uid": "681295394",
|
|
"args": "-device nrf52840_xxaa"
|
|
}
|
|
},
|
|
{
|
|
"name": "max32666fthr",
|
|
"uid": "0C81464124010B20FF0A08CC2C",
|
|
"tests": {
|
|
"device": true,
|
|
"host": false,
|
|
"dual": false
|
|
},
|
|
"flasher": {
|
|
"name": "openocd_adi",
|
|
"uid": "E6614C311B597D32",
|
|
"args": "-f interface/cmsis-dap.cfg -f target/max32665.cfg"
|
|
}
|
|
},
|
|
{
|
|
"name": "metro_m4_express",
|
|
"uid": "9995AD485337433231202020FF100A34",
|
|
"build": {
|
|
"args": [
|
|
"MAX3421_HOST=1"
|
|
]
|
|
},
|
|
"tests": {
|
|
"device": true,
|
|
"host": false,
|
|
"dual": true,
|
|
"skip": ["device/audio_test_freertos"],
|
|
"dev_attached": [
|
|
{
|
|
"vid_pid": "067b_2303",
|
|
"serial": "0",
|
|
"is_cdc": true
|
|
}
|
|
],
|
|
"comment": "pl23x; audio_test_freertos skipped: samd51 iso-IN capture fails (arecord EIO)"
|
|
},
|
|
"flasher": {
|
|
"name": "jlink",
|
|
"uid": "123456",
|
|
"args": "-device ATSAMD51J19"
|
|
}
|
|
},
|
|
{
|
|
"name": "mimxrt1015_evk",
|
|
"uid": "DC28F865D2111D228D00B0543A70463C",
|
|
"tests": {
|
|
"device": true,
|
|
"host": false,
|
|
"dual": false
|
|
},
|
|
"flasher": {
|
|
"name": "jlink",
|
|
"uid": "000726284213",
|
|
"args": "-device MIMXRT1015DAF5A"
|
|
}
|
|
},
|
|
{
|
|
"name": "mimxrt1064_evk",
|
|
"uid": "BAE96FB95AFA6DBB8F00005002001200",
|
|
"tests": {
|
|
"skip": ["host/cdc_msc_hid"],
|
|
"comment-cdc-echo": "CH9102+Lexar bundle (moved here from stm32f723disco) mounts fine but echo returns nothing - TX-RX loopback jumper likely lost in the move; re-check wiring then re-enable",
|
|
"device": true,
|
|
"host": true,
|
|
"dual": true,
|
|
"dev_attached": [
|
|
{
|
|
"vid_pid": "1a86_55d4",
|
|
"serial": "52D2003414",
|
|
"is_cdc": true
|
|
},
|
|
{
|
|
"vid_pid": "21c4_0cc7",
|
|
"serial": "90005893730A1A63",
|
|
"is_msc": true,
|
|
"block_size": 512,
|
|
"block_count": 60620800,
|
|
"msc_inquiry": "Lexar USB Flash Drive PMAP"
|
|
}
|
|
]
|
|
},
|
|
"flasher": {
|
|
"name": "jlink",
|
|
"uid": "000725299165",
|
|
"args": "-device MIMXRT1064xxx6A"
|
|
}
|
|
},
|
|
{
|
|
"name": "lpcxpresso11u37",
|
|
"uid": "17121919",
|
|
"tests": {
|
|
"device": true,
|
|
"host": false,
|
|
"dual": false
|
|
},
|
|
"flasher": {
|
|
"name": "jlink",
|
|
"uid": "000724441579",
|
|
"args": "-device LPC11U37/401"
|
|
}
|
|
},
|
|
{
|
|
"name": "ra4m1_ek",
|
|
"uid": "152E163038303131393346E46F26574B",
|
|
"tests": {
|
|
"device": true,
|
|
"host": false,
|
|
"dual": false
|
|
},
|
|
"flasher": {
|
|
"name": "jlink",
|
|
"uid": "000831174392",
|
|
"args": "-device R7FA4M1AB"
|
|
}
|
|
},
|
|
{
|
|
"name": "raspberry_pi_pico",
|
|
"uid": "E6614C311B764A37",
|
|
"variant": [
|
|
{ "name": "raspberry_pi_pico", "flags": "-DCFG_TUH_RPI_PIO_USB=1" }
|
|
],
|
|
"tests": {
|
|
"device": true,
|
|
"host": true,
|
|
"dual": true,
|
|
"skip": ["host/cdc_msc_hid", "host/device_info", "host/msc_file_explorer", "host/msc_file_explorer_freertos", "dual/host_info_to_device_cdc"],
|
|
"comment-skip": "PIO-USB host port enumerates nothing since the board moves (CH340+UDisk bundle unplugged or unpowered) - re-attach the bundle then drop these skips",
|
|
"dev_attached": [
|
|
{
|
|
"vid_pid": "1a86_7523",
|
|
"serial": "0",
|
|
"is_cdc": true,
|
|
"comment": "ch34x"
|
|
},
|
|
{
|
|
"vid_pid": "048d_04d2",
|
|
"serial": "\u0409",
|
|
"is_msc": true,
|
|
"block_size": 512,
|
|
"block_count": 30720000,
|
|
"msc_inquiry": "General UDisk 5.00",
|
|
"comment": "General UDisk reports iSerialNumber=U+0409"
|
|
}
|
|
]
|
|
},
|
|
"flasher": {
|
|
"name": "openocd",
|
|
"uid": "E6614103E72C1D2F",
|
|
"args": "-f interface/cmsis-dap.cfg -f target/rp2040.cfg -c \"adapter speed 5000\""
|
|
}
|
|
},
|
|
{
|
|
"name": "raspberry_pi_pico_w",
|
|
"uid": "E6614864D35DAE36",
|
|
"tests": {
|
|
"device": false,
|
|
"host": true,
|
|
"dual": false,
|
|
"dev_attached": [
|
|
{
|
|
"vid_pid": "1a86_55d4",
|
|
"serial": "52D2002694",
|
|
"is_cdc": true
|
|
},
|
|
{
|
|
"vid_pid": "2008_2018",
|
|
"serial": "O20070925A002746",
|
|
"is_msc": true,
|
|
"block_size": 512,
|
|
"block_count": 4124152,
|
|
"msc_inquiry": "USB2.0 Flash Disk 2.10"
|
|
}
|
|
]
|
|
},
|
|
"flasher": {
|
|
"name": "openocd",
|
|
"uid": "E6633861A3819D38",
|
|
"args": "-f interface/cmsis-dap.cfg -f target/rp2040.cfg -c \"adapter speed 5000\""
|
|
},
|
|
"comment": "Test native host"
|
|
},
|
|
{
|
|
"name": "raspberry_pi_pico2",
|
|
"uid": "560AE75E1C7152C9",
|
|
"tests": {
|
|
"device": false,
|
|
"host": true,
|
|
"dual": false,
|
|
"dev_attached": [
|
|
{
|
|
"vid_pid": "0951_1603",
|
|
"serial": "820000000000000045B46338",
|
|
"is_msc": true,
|
|
"block_size": 512,
|
|
"block_count": 3987456,
|
|
"msc_inquiry": "Kingston DataTraveler 2.0 1.00"
|
|
}
|
|
]
|
|
},
|
|
"flasher": {
|
|
"name": "openocd",
|
|
"uid": "E6633861A3978538",
|
|
"args": "-f interface/cmsis-dap.cfg -f target/rp2350.cfg -c \"adapter speed 5000\""
|
|
}
|
|
},
|
|
{
|
|
"name": "adafruit_fruit_jam",
|
|
"uid": "2B0DC7A45781189E",
|
|
"tests": {
|
|
"device": true,
|
|
"host": true,
|
|
"dual": true,
|
|
"dev_attached": [
|
|
{
|
|
"vid_pid": "0403_6001",
|
|
"serial": "0",
|
|
"is_cdc": true
|
|
},
|
|
{
|
|
"vid_pid": "058f_6387",
|
|
"serial": "A8BEE062633D",
|
|
"is_msc": true,
|
|
"block_size": 512,
|
|
"block_count": 7639040,
|
|
"msc_inquiry": "Generic Flash Disk 8.07"
|
|
}
|
|
]
|
|
},
|
|
"flasher": {
|
|
"name": "openocd",
|
|
"uid": "E663AC91D3359B38",
|
|
"args": "-f interface/cmsis-dap.cfg -f target/rp2350.cfg -c \"adapter speed 5000\""
|
|
}
|
|
},
|
|
{
|
|
"name": "stm32f072disco",
|
|
"uid": "3A001A001357364230353532",
|
|
"tests": {
|
|
"device": true,
|
|
"host": false,
|
|
"dual": false
|
|
},
|
|
"flasher": {
|
|
"name": "jlink",
|
|
"uid": "779541626",
|
|
"args": "-device stm32f072rb"
|
|
},
|
|
"comment": "2x16 access scheme with 1KB USB SRAM"
|
|
},
|
|
{
|
|
"name": "stm32f407disco",
|
|
"uid": "30001A000647313332353735",
|
|
"tests": {
|
|
"device": true,
|
|
"host": false,
|
|
"dual": false
|
|
},
|
|
"flasher": {
|
|
"name": "jlink",
|
|
"uid": "000773661813",
|
|
"args": "-device stm32f407vg"
|
|
}
|
|
},
|
|
{
|
|
"name": "stm32f723disco",
|
|
"uid": "460029001951373031313335",
|
|
"variant": [
|
|
{ "name": "stm32f723disco", "flags": "" },
|
|
{ "name": "stm32f723disco-DMA", "flags": "-DCFG_TUH_DWC2_DMA_ENABLE=1" }
|
|
],
|
|
"tests": {
|
|
"device": true,
|
|
"host": true,
|
|
"dual": false,
|
|
"dev_attached": [
|
|
{
|
|
"vid_pid": "10c4_ea60",
|
|
"serial": "0001",
|
|
"is_cdc": true,
|
|
"comment": "cp2102"
|
|
},
|
|
{
|
|
"vid_pid": "21c4_0cc7",
|
|
"serial": "900058874D871F66",
|
|
"is_msc": true,
|
|
"block_size": 512,
|
|
"block_count": 60620800,
|
|
"msc_inquiry": "Lexar USB Flash Drive PMAP"
|
|
}
|
|
]
|
|
},
|
|
"flasher": {
|
|
"name": "jlink",
|
|
"uid": "000776606156",
|
|
"args": "-device stm32f723ie"
|
|
},
|
|
"comment": "Device port0 FS (slave only), Host port1 HS with DMA"
|
|
},
|
|
{
|
|
"name": "stm32h743nucleo",
|
|
"uid": "110018000951383432343236",
|
|
"variant": [
|
|
{ "name": "stm32h743nucleo", "flags": "" },
|
|
{ "name": "stm32h743nucleo-DMA", "flags": "-DCFG_TUD_DWC2_DMA_ENABLE=1 -DCFG_TUH_DWC2_DMA_ENABLE=1" }
|
|
],
|
|
"tests": {
|
|
"device": true,
|
|
"host": false,
|
|
"dual": false
|
|
},
|
|
"flasher": {
|
|
"name": "openocd",
|
|
"uid": "004C00343137510F39383538",
|
|
"args": "-f interface/stlink.cfg -f target/stm32h7x.cfg"
|
|
}
|
|
},
|
|
{
|
|
"name": "stm32g0b1nucleo",
|
|
"uid": "4D0038000450434E37343120",
|
|
"tests": {
|
|
"device": true,
|
|
"host": false,
|
|
"dual": false
|
|
},
|
|
"flasher": {
|
|
"name": "openocd",
|
|
"uid": "066FFF495087534867063844",
|
|
"args": "-f interface/stlink.cfg -f target/stm32g0x.cfg"
|
|
},
|
|
"comment": "32-bit scheme, 2KB USB SRAM"
|
|
},
|
|
{
|
|
"name": "stm32l476disco",
|
|
"uid": "3C0050001150334258343920",
|
|
"tests": {
|
|
"device": true,
|
|
"host": false,
|
|
"dual": false
|
|
},
|
|
"flasher": {
|
|
"name": "jlink",
|
|
"uid": "777632258",
|
|
"args": "-device STM32L476VG"
|
|
}
|
|
},
|
|
{
|
|
"name": "stm32u083nucleo",
|
|
"uid": "300044000D5036394E373620",
|
|
"tests": {
|
|
"device": true,
|
|
"host": false,
|
|
"dual": false
|
|
},
|
|
"flasher": {
|
|
"name": "stlink",
|
|
"uid": "0668FF575457657187061314"
|
|
}
|
|
},
|
|
{
|
|
"name": "nanoch32v203",
|
|
"uid": "CDAB277B0FBC03E339E339E3",
|
|
"toolchain": "riscv-gcc",
|
|
"variant": [
|
|
{"name": "nanoch32v203-fsdev", "defines": ["RHPORT_DEVICE=0"]},
|
|
{"name": "nanoch32v203-usbfs", "defines": ["RHPORT_DEVICE=1"]}
|
|
],
|
|
"tests": {
|
|
"device": true,
|
|
"host": false,
|
|
"dual": false
|
|
},
|
|
"flasher": {
|
|
"name": "openocd_wch",
|
|
"uid": "EBCA8F0670AF",
|
|
"args": ""
|
|
}
|
|
},
|
|
{
|
|
"name": "ch32v103r_r1_1v0",
|
|
"uid": "CDAB3E8749BC54EF0F410025",
|
|
"toolchain": "riscv-gcc",
|
|
"tests": {
|
|
"device": true,
|
|
"host": false,
|
|
"dual": false
|
|
},
|
|
"flasher": {
|
|
"name": "openocd_wch",
|
|
"uid": "BC4954081051",
|
|
"args": ""
|
|
}
|
|
},
|
|
{
|
|
"name": "ch32v307v_r1_1v0",
|
|
"uid": "DE6B3E263B3857CAFFFFFFFF",
|
|
"toolchain": "riscv-gcc",
|
|
"variant": [
|
|
{"name": "ch32v307v_r1_1v0-usbhs", "defines": ["SPEED=high"]},
|
|
{"name": "ch32v307v_r1_1v0-usbfs", "defines": ["SPEED=full"]}
|
|
],
|
|
"tests": {
|
|
"device": true,
|
|
"host": false,
|
|
"dual": false
|
|
},
|
|
"flasher": {
|
|
"name": "openocd_wch",
|
|
"uid": "BC5DA47360D0",
|
|
"args": ""
|
|
}
|
|
},
|
|
{
|
|
"name": "ch582m_evt",
|
|
"uid": "D443627B5450",
|
|
"toolchain": "riscv-gcc",
|
|
"tests": {
|
|
"device": true,
|
|
"host": false,
|
|
"dual": false
|
|
},
|
|
"flasher": {
|
|
"name": "openocd_wch",
|
|
"uid": "7FD88F0604B5",
|
|
"args": ""
|
|
}
|
|
},
|
|
{
|
|
"name": "nrf5340dk",
|
|
"uid": "78E60E166B5F88BE",
|
|
"tests": {
|
|
"device": true,
|
|
"host": false,
|
|
"dual": false,
|
|
"skip": ["device/cdc_msc_freertos", "device/audio_test_freertos"],
|
|
"comment": "board new to HIL: FreeRTOS examples hardfault (UFSR=INVPC) at first task launch on the CM33_NTZ port - pre-existing upstream issue, non-FreeRTOS examples and usbtest pass; fix separately"
|
|
},
|
|
"flasher": {
|
|
"name": "jlink",
|
|
"uid": "001050076405",
|
|
"args": "-device NRF5340_XXAA_APP"
|
|
}
|
|
},
|
|
{
|
|
"name": "nrf54lm20dk",
|
|
"uid": "899C3DE5B0F4D5CA",
|
|
"tests": {
|
|
"device": true,
|
|
"host": false,
|
|
"dual": false,
|
|
"skip": ["device/audio_test_freertos"],
|
|
"comment": "board new to HIL: audio_test_freertos never reaches dcd_init (FreeRTOS itself runs; cdc_msc_freertos and usbtest pass) - example-level issue on nRF54L, fix separately"
|
|
},
|
|
"flasher": {
|
|
"name": "jlink",
|
|
"uid": "1051856258",
|
|
"args": "-device NRF54LM20A_M33"
|
|
}
|
|
}
|
|
],
|
|
"boards-skip": [
|
|
{
|
|
"name": "ra6m5_ek",
|
|
"uid": "8419032D32363657364EF4622D294B4E",
|
|
"tests": {
|
|
"device": true,
|
|
"host": false,
|
|
"dual": false,
|
|
"skip": ["device/cdc_msc_throughput", "device/msc_dual_lun"],
|
|
"comment": "MSC writes wedge the uPD720201 host (URBs queued, zero wire activity, bus-15 ctrl xfers time out until the device's URBs are killed); reproduced identically with master firmware - device side armed+BUF and exonerated. MSC reads and usbtest bulk (15.8 MB/s) are fine"
|
|
},
|
|
"flasher": {
|
|
"name": "jlink",
|
|
"uid": "000831915224",
|
|
"args": "-device R7FA6M5BH"
|
|
}
|
|
},
|
|
{
|
|
"name": "ra8m1_ek",
|
|
"uid": "797D142D36345030364E1737922E4B4E",
|
|
"comment": "USBHS bring-up pending (HS chirp completes digitally but terminations never switch; FS-forced build passed usbtest 30/30). Parked until fixed",
|
|
"tests": {
|
|
"device": true,
|
|
"host": false,
|
|
"dual": false
|
|
},
|
|
"flasher": {
|
|
"name": "jlink",
|
|
"uid": "001083115236",
|
|
"args": "-device R7FA8M1AH"
|
|
}
|
|
},
|
|
{
|
|
"name": "stm32f769disco",
|
|
"uid": "21002F000F51363531383437",
|
|
"variant": [
|
|
{ "name": "stm32f769disco", "flags": "" },
|
|
{ "name": "stm32f769disco-DMA", "flags": "-DCFG_TUD_DWC2_DMA_ENABLE=1 -DCFG_TUH_DWC2_DMA_ENABLE=1" }
|
|
],
|
|
"tests": {
|
|
"device": true,
|
|
"host": false,
|
|
"dual": false
|
|
},
|
|
"flasher": {
|
|
"name": "jlink",
|
|
"uid": "000778170924",
|
|
"args": "-device stm32f769ni"
|
|
}
|
|
}
|
|
]
|
|
}
|