this post was submitted on 05 Oct 2024
228 points (99.6% liked)
Programmer Humor
19623 readers
84 users here now
Welcome to Programmer Humor!
This is a place where you can post jokes, memes, humor, etc. related to programming!
For sharing awful code theres also Programming Horror.
Rules
- Keep content in english
- No advertisements
- Posts must be related to programming or programmer topics
founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
Actually it's both, there's polling with a timeout interrupt if an incoming urb hasn't been processed quickly.
https://crlab.ece.ucr.edu/usbgps/ohci_uhci.html
This way you can take them in batches at regular intervals.
It makes sense given that even microcontrollers (which are a lot simpler than microprocessors) have dedicated hardware doing the send/receive part of the work which is independent of the processing core and will only fire interrupts if the send or receive buffers reach an empty state.
This way of doing things was already usual before USB for things like I2C, Serial and SPI and whilst the USB protocol is significantly more complex, the same kind of design was also used for it.