rust-embedded / cortex-m

Low level access to Cortex-M processors
Apache License 2.0
826 stars 150 forks source link

Ship a 1.0 release #183

Open thejpster opened 4 years ago

thejpster commented 4 years ago

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.

jonas-schievink commented 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

jonas-schievink commented 4 years ago

Easy (breaking) improvements to do before 1.0:

Other 1.0-quality things that I'd like to see:

This 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).

adamgreig commented 4 years ago

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.

thejpster commented 4 years ago

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.

jonas-schievink commented 4 years ago

Also:

adamgreig commented 4 years ago

I'd add:

Disasm commented 4 years ago

With the new CriticalSection type interrupt::free() should pass CriticalSection by value instead of by reference.

tmplt commented 2 years ago

@adamgreig any updates on the svd2rust generation? Is there a tracking issue for it?

Gryhyphen commented 5 days ago

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?

adamgreig commented 5 days ago

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.