-
Notifications
You must be signed in to change notification settings - Fork 197
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Async API #635
base: master
Are you sure you want to change the base?
Async API #635
Conversation
44e6126
to
f6c11cf
Compare
bf2dd1b
to
e576e7f
Compare
8b5faa7
to
6bf9569
Compare
6d1d419
to
82d24dc
Compare
a14220c
to
299e6a9
Compare
* Working async timer driver implementation for thumbv6m and thumbv7em targets
Adapt to new peripherals declarations
Merge the addition of embedded-hal v1.0 from upstream
|
||
#[inline] | ||
fn buffer_len(&self) -> usize { | ||
1 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
why 1?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So the SERCOM peripherals expect all data to be read/written to the same register address. In the case of a transmission, it then may add it to an internal buffer, after which the data is transmitted (the reverse happens for receive transactions). Therefore the DMA transfer must direct all the incoming/outgoing data to the same memory address, regardless of the transaction length.
I'm sorry this sat so long. I'm pretty sure my feather m0 board is busted after I wired up a battery to it backwards. Would you mind porting more of the examples to metro m4 so I can get a better feel for this? |
Of course! The feather_m0 examples are ported to metro_m4. Unfortunately they aren't yet using |
implementations I always thought that construct was a bit weird
Provide APIs to use some peripherals using
async/await
.HAL features
One new feature is added to the HAL:
async
MSRV
This PR bumps the HAL MSRV to rustc 1.75. However everything compiles on stable.
Peripherals implemented
Todo
Examples
Some examples are provided for
feather_m0
(and a few formetro_m4
). Some more examples will be added in time, perhaps in a follow-up PR.