diff options
author | Brian Cully <bjc@kublai.com> | 2019-08-04 15:23:19 -0400 |
---|---|---|
committer | Brian Cully <bjc@kublai.com> | 2019-08-04 15:23:19 -0400 |
commit | 61a14f84d12229eb565f7bde5846289e45813fb6 (patch) | |
tree | 42a6c0b2971059dab5e4126962b3755f4392cf79 /samd21-host | |
parent | 51817e4a713caf06160486e5734845008e53bae7 (diff) | |
download | samd21-demo-61a14f84d12229eb565f7bde5846289e45813fb6.tar.gz samd21-demo-61a14f84d12229eb565f7bde5846289e45813fb6.zip |
Reorg TODO into sub-crates.traitify
Diffstat (limited to 'samd21-host')
-rw-r--r-- | samd21-host/TODO.org | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/samd21-host/TODO.org b/samd21-host/TODO.org new file mode 100644 index 0000000..bb8b5b0 --- /dev/null +++ b/samd21-host/TODO.org @@ -0,0 +1,34 @@ +* 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. |