From e02128bd4d9d2716b55be5db3dccb18f92f01e9c Mon Sep 17 00:00:00 2001 From: Brian Cully Date: Sun, 4 Aug 2019 15:33:03 -0400 Subject: Initial commit --- TODO.org | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 TODO.org (limited to 'TODO.org') diff --git a/TODO.org b/TODO.org new file mode 100644 index 0000000..710b509 --- /dev/null +++ b/TODO.org @@ -0,0 +1,37 @@ +* Documentation + - README.md + - Literally every trait and method. + +* Use channel for interrupt -> task messages. +Currently we use a static mut which holds the latest event. This was +done for expediency to try and get somethnig working and this was +working in Arduino. It's also massively wrong in the general case and +overflowing with race conditions. + +A channel will allow us to deterministically walk events and make sure +everything's ordered properly. + +* Clean up pipe descriptor stuff. +There's a bunch of unsafe functions that can be made safe. + +* Some SVD patches needed for SAMD21/51. +There's a lot of `unsafe` code where there shouldn't be, because the +SVD files are lacking. + +* Stop passing millis function around. +This is horrible, but currently necessary because there are places +where we need to loop on a timer at it needs to be +hardware-independent. + +If the USB host library can be made asynchronouse, we could instead +pass a current timestamp around and use that for delays where +necessary. + +As a last resort, there's a countdown timer trait in embedded-hal that +may be useful. + +* Tighten up timings on requests. +There are a few timer checks on USB requests, but not necessarily of +the right duration nor subdivided correctly. For instance, the +setup-with-data cycle has requirements on total duration as well as +per-packet duration, but currently we're only using the total. -- cgit v1.2.3