Skip to content

ht32 usb assertion fixes#3

Open
lactide wants to merge 4 commits into
pok3r-custom:masterfrom
lactide:ht32_usb_assertion_fixes
Open

ht32 usb assertion fixes#3
lactide wants to merge 4 commits into
pok3r-custom:masterfrom
lactide:ht32_usb_assertion_fixes

Conversation

@lactide

@lactide lactide commented Jul 24, 2019

Copy link
Copy Markdown

Without those changes i got some usb assertions when running with an AHB clock frequncy of 24MHz on my main development machine.

It seems like endpoint events should be ignored if there was also a reset event, otherwise the next "real" endpoint event will lead to an "already transmitting/receiving" assertion.

Except for the setup packet handling, the ep0 endpoint is identical, so i moved the setup handling also to the handling for all endpoints.

The late address set mode worked better for me, otherwise i did get one dmesg line on FreeBSD or Linux.

By handling the usb in interrupts first, some usb assertions (wrong ep0 state) were gone as well.

lactide added 4 commits August 2, 2019 19:07
Otherwise the first request after a reset was stalled.

dmesg messages that are gone now:
FreeBSD (after `usbconfig power_off/power_on`)
"usb_alloc_device: set address 5 failed (USB_ERR_STALLED, ignored)"
Linux (during boot)
"device descriptor read/64, error -32"
Otherwise different assertions are triggered in the ChibiOS usb
state machine like "EP0 state machine error" or
"usbStartTransmit: already transmitting"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant