Open thejpster opened 4 years ago
Might also involve rust-lang/rust#27731 so we can get rid of (some) of the inline asm / pre-compiled objects.
This is not needed for 1.0 since it doesn't change the public API
Easy (breaking) improvements to do before 1.0:
const-fn
feature#[cfg]
d out depending on the targetOther 1.0-quality things that I'd like to see:
take
/steal
API (and maybe improve that API)inline-asm
feature is unstable (semver-exempt) and nightly-onlyThis is also blocked on sound MMIO. Currently we use volatile-register
here. As #184 mentions, there's also a public dependency on aligned
that we should get rid of (or also bring to 1.0).
I'd really want to see cortex-m move to using svd2rust-generated API for accessing the Cortex-M peripherals, i.e. a cortex-m-pac crate that cortex-m depends on and adds the HAL API. I've made some progress towards generating a suitable set of SVD files already and plan to finish it fairly soon.
I'd really want to see cortex-m move to using svd2rust-generated API for accessing the Cortex-M peripherals, i.e. a cortex-m-pac crate that cortex-m depends on and adds the HAL API. I've made some progress towards generating a suitable set of SVD files already and plan to finish it fairly soon.
Yeah, this would likely fundamentally change our public API so if we are ever going to do it, pre 1.0 is best.
Also:
#[deprecated]
unsound APIs (I expect we'll publish 0.7 before 1.0, so it would be good to do all breaking changes there)I'd add:
With the new CriticalSection type interrupt::free()
should pass CriticalSection
by value instead of by reference.
@adamgreig any updates on the svd2rust generation? Is there a tracking issue for it?
So this is embeded-hal 1.0 incompatibility? Was working on updating my dependencies and found that cortext-m was relying on embedded-hal v0.2.7
, so having embdedded-hal v1.0.0
is not possible if we want to use cortext-m atm? If I'm understanding correctly?
cortex-m currently uses embedded-hal 0.2, but it's not a problem to have both embedded-hal 0.2 and 1.0 in a project at the same time. That way you can use embedded-hal 1.0 and all the drivers and HALs that use it at the same time as using cortex-m.
Part of https://github.com/rust-embedded/wg/issues/383
Might also involve https://github.com/rust-lang/rust/issues/27731 so we can get rid of (some) of the inline asm / pre-compiled objects.
const-fn
feature#[deprecated]
APIs#[cfg]
d out depending on the target#[non_exhaustive]
where it makes sensePeripherals::steal()
API, or redesign that API (https://github.com/rust-embedded/cortex-m/issues/186)inline-asm
feature is completely unstable and semver-exempt#[doc(cfg(X))]
where possible)bare-metal
1.0 (one released)