feat: allow skipping queue for larger memory moves
feat: allow reading larger packets without data loss
chore: move firmware to firmware/ folder
feat: implement application for receiving images
feat: implement cdc application layer, fix enumeration
fix: correctly send functional descriptor
The functional descriptor was not sent correctly,
specifically, it was pointed to its address,
instead of the pointer itself. That meant bunch
of irrelevant stuff was sent instead.
feat: use task_result to indicate blocking
There should be no spin loops inside of the
interrupts, so this change removes them,
and instead uses a result system that has
WOULD_BLOCK result. When this result is returned,
it is expected there was no side-effect and the
function can safely be reran later.
feat: implement enumeration fully
docs: add documentation comments to most functions
feat: implement usb devicd cdc descriptors, init, setup