feat: implement dsi, ltdc, otm8009 display
feat: implement cdc application layer, fix enumeration
feat: add rx data callback, increase tx fifo size
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
chore: update pin, exti, delay
fix: fifo has to be volatile
feat: implement usb devicd cdc descriptors, init, setup
feat: move all sending instructions to generic send functions
fix: make sure to error if endpoint id not found in interrupt
This generally shouldn't happen,
but it needs to be ensured that the
memory at incorrect place won't be read
or written to!
Otherwise there could be undefined behavior!
This would possibly write to the fifos,
meaning the data the usb sends could be
different than what the application intended!
feat: implement most of enumeration
feat: receive setup packets
feat: add registers, pin, exti, usb_device skeleton