看到uvc的程序更新了可以打印描述符的功能又做了下尝试,发现新的问题
运行log
Code: Select all
PS S:\Work\ESP\esp-iot-solution\examples\usb\host\usb_camera_wifi_transfer> idf.py monitor
Executing action: monitor
Serial port COM9
Connecting....
Detecting chip type... Unsupported detection protocol, switching and trying again...
Detecting chip type... ESP32-S2
Running idf_monitor in directory s:\work\esp\esp-iot-solution\examples\usb\host\usb_camera_wifi_transfer
Executing "S:\Work\ESP\TOOLS\python_env\idf4.4_py3.8_env\Scripts\python.exe S:\Work\ESP\IDF4.4\tools/idf_monitor.py -p COM9 -b 115200 --toolchain-prefix xtensa-esp32s2-elf- --target esp32s2 s:\work\esp\esp-iot-solution\examples\usb\host\usb_camera_wifi_transfer\build\uvc_mjpeg_wifi.elf -m 'S:\Work\ESP\TOOLS\python_env\idf4.4_py3.8_env\Scripts\python.exe' 'S:\Work\ESP\IDF4.4\tools\idf.py'"...
�[0;33m--- WARNING: GDB cannot open serial ports accessed as COMx�[0m
�[0;33m--- Using \\.\COM9 instead...�[0m
�[0;33m--- idf_monitor on \\.\COM9 115200 ---�[0m
--- Quit: Ctrl+] | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H ---
ESP-ROM:esp32s2-rc4-20191025
Build:Oct 25 2019
rst:0x1 (POWERON),boot:0x8 (SPI_FAST_FLASH_BOOT)
SPIWP:0xee
mode:DIO, clock div:1
load:0x3ffe6100,len:0x177c
load:0x4004c000,len:0xa48
load:0x40050000,len:0x2e58
entry 0x4004c204
I (21) boot: ESP-IDF v4.4-367-gc29343eb94-dirty 2nd stage bootloader
I (21) boot: compile time 09:10:59
I (21) boot: chip revision: 0
I (26) boot.esp32s2: SPI Speed : 80MHz
I (30) boot.esp32s2: SPI Mode : DIO
I (35) boot.esp32s2: SPI Flash Size : 2MB
I (40) boot: Enabling RNG early entropy source...
I (45) boot: Partition Table:
I (49) boot: ## Label Usage Type ST Offset Length
I (56) boot: 0 nvs WiFi data 01 02 00009000 00006000
I (64) boot: 1 phy_init RF data 01 01 0000f000 00001000
I (71) boot: 2 factory factory app 00 00 00010000 00100000
I (78) boot: End of partition table
I (83) esp_image: segment 0: paddr=00010020 vaddr=3f000020 size=0abd4h ( 43988) map
I (100) esp_image: segment 1: paddr=0001abfc vaddr=3ffbf2f0 size=01d44h ( 7492) load
I (102) esp_image: segment 2: paddr=0001c948 vaddr=40024000 size=036d0h ( 14032) load
I (111) esp_image: segment 3: paddr=00020020 vaddr=40080020 size=18a38h (100920) map
I (137) esp_image: segment 4: paddr=00038a60 vaddr=400276d0 size=07c14h ( 31764) load
I (145) esp_image: segment 5: paddr=0004067c vaddr=50000000 size=00010h ( 16) load
I (150) boot: Loaded app from partition at offset 0x10000
I (151) boot: Disabling RNG early entropy source...
I (165) cache: Instruction cache : size 8KB, 4Ways, cache line size 32Byte
I (165) cache: Data cache : size 8KB, 4Ways, cache line size 32Byte
I (169) spiram: Found 16MBit SPI RAM device
I (174) spiram: SPI RAM mode: sram 40m
I (178) spiram: PSRAM initialized, cache is in normal (1-core) mode.
I (185) cpu_start: Pro cpu up.
I (599) spi�ff������f���I�5�memory test OK
D (599) efuse: In EFUSE_BLK2__DATA4_REG is used 3 bits starting with 4 bit
D (608) clk: RTC_SLOW_CLK calibration value: 5702702
I (616) cpu_start: Pro cpu start user code
I (616) cpu_start: cpu freq: 240000000
I (616) cpu_start: Application information:
I (621) cpu_start: Project name: uvc_mjpeg_wifi
I (626) cpu_start: App version: 14d9f9b-dirty
I (632) cpu_start: Compile time: Mar 22 2022 14:22:25
I (638) cpu_start: ELF file SHA256: 62cd7214c6e5c367...
I (644) cpu_start: ESP-IDF: v4.4-367-gc29343eb94-dirty
D (650) memory_layout: Checking 5 reserved memory ranges:
D (656) memory_layout: Reserved memory range 0x3f500000 - 0x3ff80000
D (662) memory_layout: Reserved memory range 0x3ff9e000 - 0x3ff9e000
D (669) memory_layout: Reserved memory range 0x3ffb4000 - 0x3ffbf2e4
D (675) memory_layout: Reserved memory range 0x3ffbf2f0 - 0x3ffc1958
D (682) memory_layout: Reserved memory range 0x3ffffa10 - 0x40000000
D (688) memory_layout: Building list of available memory regions:
D (694) memory_layout: Available memory region 0x3ffc1958 - 0x3ffc4000
D (701) memory_layout: Available memory region 0x3ffc4000 - 0x3ffc8000
D (707) memory_layout: Available memory region 0x3ffc8000 - 0x3ffcc000
D (714) memory_layout: Available memory region 0x3ffcc000 - 0x3ffd0000
D (721) memory_layout: Available memory region 0x3ffd0000 - 0x3ffd4000
D (727) memory_layout: Available memory region 0x3ffd4000 - 0x3ffd8000
D (734) memory_layout: Available memory region 0x3ffd8000 - 0x3ffdc000
D (740) memory_layout: Available memory region 0x3ffdc000 - 0x3ffe0000
D (747) memory_layout: Available memory region 0x3ffe0000 - 0x3ffe4000
D (754) memory_layout: Available memory region 0x3ffe4000 - 0x3ffe8000
D (760) memory_layout: Available memory region 0x3ffe8000 - 0x3ffec000
D (767) memory_layout: Available memory region 0x3ffec000 - 0x3fff0000
D (773) memory_layout: Available memory region 0x3fff0000 - 0x3fff4000
D (780) memory_layout: Available memory region 0x3fff4000 - 0x3fff8000
D (787) memory_layout: Available memory region 0x3fff8000 - 0x3fffc000
D (793) memory_layout: Available memory region 0x3fffc000 - 0x3ffffa10
D (800) memory_layout: Available memory region 0x3ff9e000 - 0x3ffa0000
I (806) heap_init: Initializing. RAM available for dynamic allocation:
D (814) heap_init: New heap initialised at 0x3ffc1958
I (819) heap_init: At 3FFC1958 len 0003A6A8 (233 KiB): DRAM
I (825) heap_init: At 3FFFC000 len 00003A10 (14 KiB): DRAM
D (831) heap_init: New heap initialised at 0x3ff9e000
I (836) heap_init: At 3FF9E000 len 00002000 (8 KiB): RTCRAM
I (843) spiram: Adding pool of 2048K of external SPI memory to heap allocator
D (851) FLASH_HAL: extra_dummy: 0
D (854) spi_flash: trying chip: issi
D (857) spi_flash: trying chip: gd
D (861) spi_flash: trying chip: mxic
D (865) spi_flash: trying chip: winbond
D (868) spi_flash: trying chip: boya
D (872) spi_flash: trying chip: th
D (876) spi_flash: trying chip: generic
I (879) spi_flash: detected chip: generic
I (884) spi_flash: flash io: dio
W (888) spi_flash: Detected size(4096k) larger than the size in the binary image header(2048k). Using the size in the binary image header.
D (901) cpu_start: calling init function: 0x40081388
0x40081388: esp_ota_init_app_elf_sha256 at S:/Work/ESP/IDF4.4/components/app_update/esp_app_desc.c:68
D (906) intr_alloc: Connected src 73 to int 10 (cpu 0)
D (911) intr_alloc: Connected src 28 to int 2 (cpu 0)
I (916) cpu_start: Starting scheduler on PRO CPU.
D (922) heap_init: New heap initialised at 0x3fffc000
I (927) spiram: Reserving pool of 32K of internal memory for DMA/internal allocations
D (935) intr_alloc: Connected src 17 to int 3 (cpu 0)
I (940) UVC_STREAM: UVC Streaming Config Succeed
D (946) UVC_STREAM: urb alloced
D (949) UVC_STREAM: urb alloced
D (952) UVC_STREAM: urb alloced
D (955) UVC_STREAM: urb alloced
D (1008) intr_alloc: Connected src 48 to int 19 (cpu 0)
I (1008) UVC_STREAM: UVC Streaming Starting
I (1008) uvc_demo: uvc streaming successed!
I (1038) UVC_STREAM: Port=1 init succeed
I (1038) UVC_STREAM: Waitting USB Connection
I (1288) UVC_STREAM: line 358 HCD_PORT_EVENT_CONNECTION
I (1288) UVC_STREAM: Resetting Port
I (1348) UVC_STREAM: Setting Port FIFO
I (1348) UVC_STREAM: Getting Port Speed
I (1348) UVC_STREAM: Port speed = 1
I (1350) UVC_STREAM: USB Speed: full-speed
D (1355) UVC_STREAM: urb alloced
I (1358) UVC_STREAM: Set Device Addr = 1
D (1373) UVC_STREAM: Got expected pipe_handle and event
I (1373) UVC_STREAM: Set Device Addr Done
D (1373) UVC_STREAM: urb free
D (1375) UVC_STREAM: urb alloced
I (1379) UVC_STREAM: get short config desc
D (1391) UVC_STREAM: Got expected pipe_handle and event
I (1391) UVC_STREAM: get config desc, actual_num_bytes:16
I (1395) UVC_STREAM: get full config desc
D (1421) UVC_STREAM: Got expected pipe_handle and event
I (1421) UVC_STREAM: get full config desc, actual_num_bytes:459
*** Configuration descriptor ***
bLength 9
bDescriptorType 2
wTotalLength 451
bNumInterfaces 2
bConfigurationValue 1
iConfiguration 0
bmAttributes 0x80
bMaxPower 500mA
*** Interface descriptor ***
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 0x0
iInterface 4
bcdUVC 100
*** Extension Unit Descriptor unsupported, skipping... ***
*** Endpoint descriptor ***
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 0x3 INT
wMaxPacketSize 16
bInterval 8
*** Interface descriptor ***
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 0x0
iInterface 4
*** Class-specific VS Interface Descriptor ***
bNumFormats 2
*** VS Format MJPEG Descriptor ***
bFormatIndex 0x1
bDefaultFrameIndex 1
*** VS MJPEG Frame Descriptor ***
bFrameIndex 0x1
wWidth 320
wHeigh 240
dwMaxVideoFrameBufSize 230400
FrameInterval[0] 500000
*** VS MJPEG Frame Descriptor ***
bFrameIndex 0x2
wWidth 176
wHeigh 144
dwMaxVideoFrameBufSize 76032
FrameInterval[0] 500000
*** VS MJPEG Frame Descriptor ***
bFrameIndex 0x3
wWidth 160
wHeigh 120
dwMaxVideoFrameBufSize 57600
FrameInterval[0] 500000
*** Interface descriptor ***
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 1
bNumEndpoints 1
bInterfaceClass 0x0
iInterface 4
*** Endpoint descriptor ***
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 0x5 ISOC
wMaxPacketSize 800
bInterval 1
*** Interface descriptor ***
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 2
bNumEndpoints 1
bInterfaceClass 0x0
iInterface 4
*** Endpoint descriptor ***
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 0x5 ISOC
wMaxPacketSize 700
bInterval 1
*** Interface descriptor ***
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 3
bNumEndpoints 1
bInterfaceClass 0x0
iInterface 4
*** Endpoint descriptor ***
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 0x5 ISOC
wMaxPacketSize 512
bInterval 1
*** Interface descriptor ***
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 4
bNumEndpoints 1
bInterfaceClass 0x0
iInterface 4
*** Endpoint descriptor ***
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 0x5 ISOC
wMaxPacketSize 192
bInterval 1
D (1645) UVC_STREAM: urb free
D (1648) UVC_STREAM: urb alloced
I (1651) UVC_STREAM: Set Device Configuration = 1
D (1657) UVC_STREAM: Got expected pipe_handle and event
I (1662) UVC_STREAM: Set Device Configuration Done
D (1667) UVC_STREAM: urb free
D (1670) UVC_STREAM: urb alloced
I (1674) UVC_STREAM: SET_CUR Probe
D (1679) UVC_STREAM: Got expected pipe_handle and event
I (1683) UVC_STREAM: SET_CUR Probe Done
I (1688) UVC_STREAM: GET_CUR Probe
D (1693) UVC_STREAM: Got expected pipe_handle and event
bmHint: 0001
bFormatIndex: 1
bFrameIndex: 3
dwFrameInterval: 500000
wKeyFrameRate: 0
wPFrameRate: 0
wCompQuality: 0
wCompWindowSize: 0
wDelay: 0
dwMaxVideoFrameSize: 57600
dwMaxPayloadTransferSize: 800
dwClockFrequency: 0
bmFramingInfo: 0
bPreferredVersion: 0
bMinVersion: 0
bMaxVersion: 0
bInterfaceNumber: 0
I (1725) UVC_STREAM: GET_CUR Probe Done, actual_num_bytes:34
I (1732) UVC_STREAM: SET_CUR COMMIT
D (1737) UVC_STREAM: Got expected pipe_handle and event
I (1741) UVC_STREAM: SET_CUR COMMIT Done
D (1746) UVC_STREAM: urb free
D (1749) UVC_STREAM: urb alloced
I (1752) UVC_STREAM: Set Device Interface = 1, Alt = 4
D (1758) UVC_STREAM: Got expected pipe_handle and event
I (1763) UVC_STREAM: Set Device Interface Done
D (1768) UVC_STREAM: urb free
I (1771) UVC_STREAM: Sample processing task started
I (1827) UVC_STREAM: Camera Start Streaming
D (1827) UVC_STREAM: urb context update
D (1827) UVC_STREAM: urb context update
D (1828) UVC_STREAM: urb context update
D (1832) UVC_STREAM: urb context update
W (2622) UVC_STREAM: line 677 Pipe: iso HCD_PIPE_EVENT_ERROR_OVERFLOW
uvc描述符配置
Code: Select all
#define DESCRIPTOR_CONFIGURATION_INDEX 0x01
#define DESCRIPTOR_FORMAT_MJPEG_INDEX 0x01
#define DEMO_FRAME_INDEX 0x03
#define DEMO_FRAME_WIDTH 160
#define DEMO_FRAME_HEIGHT 120
#define DEMO_FRAME_INTERVAL 500000
#define DEMO_XFER_BUFFER_SIZE (20 * 1024)
#define DESCRIPTOR_STREAM_INTERFACE_INDEX 0x01
#define DESCRIPTOR_STREAM_ISOC_ENDPOINT_ADDR 0x82
#define DEMO_ISOC_INTERFACE_ALT 0x04
#define DEMO_ISOC_EP_MPS 192
运行报错HCD_PIPE_EVENT_ERROR_OVERFLOW,是因为MPS>512,但是我是按描述符配置的ALT=4 MPS=192,请问该如何配置MPS的大小?