Skip to content
Snippets Groups Projects
  • Micah Elizabeth Scott's avatar
    54c93a60
    New interrupt-driven USB packet processing implementation · 54c93a60
    Micah Elizabeth Scott authored
    This moves all RX packet processing into interrupt context, removing the queueing bottleneck that previous firmwares experienced. Before this change, we could handle at most ~3 packets before they would start NAK'ing due to lack of buffer space until the next main loop iteration pulled additional packets into the fbNew buffer. Now packets can immediately go into fbNew unless there's a pending frame finalization. This vastly improves the efficiency of the USB protocol, and we need far fewer NAKs.
    54c93a60
    History
    New interrupt-driven USB packet processing implementation
    Micah Elizabeth Scott authored
    This moves all RX packet processing into interrupt context, removing the queueing bottleneck that previous firmwares experienced. Before this change, we could handle at most ~3 packets before they would start NAK'ing due to lack of buffer space until the next main loop iteration pulled additional packets into the fbNew buffer. Now packets can immediately go into fbNew unless there's a pending frame finalization. This vastly improves the efficiency of the USB protocol, and we need far fewer NAKs.