mciantyre / teensy4-rs

Rust support for the Teensy 4
Apache License 2.0
291 stars 32 forks source link

De-couple SysTick and USB; support USB and RTIC #91

Closed mciantyre closed 3 years ago

mciantyre commented 3 years ago

The PR separates the USB and SysTick drivers, so we can use USB CDC logging and I/O without running SysTick. Before this PR, the USB driver depended on SysTick for timing a polling loop. With this PR, the USB driver no longer depends on SysTick, and we can use these BSP features independently.

The PR addresses the limitations noted in #66 and #64. Now that we can use USB without SysTick, we can use the USB module with RTIC. The PR adds two RTIC examples that use USB for logging and direct CDC I/O.

The PR includes breaking changes throughout the USB interface. These changes should support BSP power-users who want to understand USB read / write events. The changes also make USB peripheral ownership explicit in user programs, and reduce the responsibility of the BSP. See the CHANGELOG for the specific breakages and migration tips.

This PR supersedes #66.

mciantyre commented 3 years ago

bors try

bors[bot] commented 3 years ago

try

Build succeeded:

mciantyre commented 3 years ago

bors try

bors[bot] commented 3 years ago

try

Build succeeded:

mciantyre commented 3 years ago

bors r+

bors[bot] commented 3 years ago

Build succeeded!

And happy new year! 🎉