PackageTrack
Sign in Get early access

cortex-m

Low level access to Cortex-M processors

0.7.9 12M downloads/mo #2762 most downloaded on crates.io rust-embedded/cortex-m

What this package is like to depend on

Last release 5 days ago

19 Aug 2026

Ships unpredictably

gaps range from 8 days to 3.6 years

Most releases are documented

notes for 39 of 47 stable releases

11 versions withdrawn

withdrawn after publishing

10 years old

59 releases · first in 2016

2 releases in the last 12 months

see the full history below

Release timeline

59 releases · Sep 2016 to Aug 2026
2017 2018 2019 2020 2021 2022 2023 2024 2025 2026
Release Pre-release Withdrawn

Releases

latest 59
  1. 0.7.9 19 Aug 2026
    Release notes

    Fixed

    • SCB::enable_icache and SCB::enable_dcache now build the CCR address with movw/movt instead of ldr =, fixing "out of range pc-relative fixup value" errors when the asm block is inlined into a large function.
    • The basepri, basepri_max and faultmask register modules are now available (as stubs) when compiling for non-Cortex-M (host) targets. This was accidentally removed in v0.7.8.
    Open source →
  2. 0.7.8 04 Aug 2026
    Release notes

    Soundness fix (breaking change)

    The singleton! macro now requires the user to supply a critical-section implementation. The previous behavior was to disable interrupts in the current core, which is unsound on multicore chips. By using critical-section the user can set the implementation that's sound for their chip.

    Not supplying an implementation will result in a linker error like rust-lld: error: undefined symbol: _critical_section_1_0_acquire.

    To supply one, do either one of:

    • For single-core chips running in privileged mode, enable feature critical-section-single-core in the cortex-m crate. This implementation disables interrupts in the current core and is equivalent to the behavior in previous versions.
    • For other chips, enable a suitable implementation that ensures locking across cores. They are typically supplied by HAL crates with a feature named critical-section-impl or similar.

    Library crates generally should not enable a critical section implementation, only the end user (who is building the final binary) should.

    Deprecated

    • The inline-asm feature is now a currently a no-op, will be removed in a future major version

    Changed

    • Updated to edition 2024.
    • MSRV is 1.85 to match cortex-m-rt crate
    • Add enter_unprivileged function to switch to unprivileged mode (on the Process Stack, or PSP)
    • Updated references from 'Cortex-M Team' to 'Arm Team'
    • Add ITNS field to NVIC peripheral.
    • Expose more bits from within SCR.
    • Refactor asm code to remove need for very old nightly toolchain. Everything is now compiled with the default toolchain.
    • The code should be clippy clean on all supported configurations now.
    • Add embedded-hal 1.0 delays.
    • Changed number of cycles performed in asm::delay() to guarantee that the number of CPU cycles consumed is always at least the number of cycles requested, even on Cortex-M7 platforms with dual issue. For other CPUs the number of cycles is likely to be twice as long as before.

    Fixed

    • SCB::vect_active() now reads ICSR with a volatile access, preventing the load from being narrowed to a byte read that faults on word-only ICSR models.
    Open source →
  3. 0.7.7 04 Jan 2023
    Release notes

    What's Changed

    • cortex-m v0.7.7: add documentation for critical-section-single-core by @adamgreig in #458

    Full Changelog: v0.7.6...v0.7.7

    Open source →
    Release notes
    • Add missing documentation for critical-section-single-core feature added in v0.7.6.
    Open source →
  4. 0.7.6 13 Aug 2022
    Release notes

    What's Changed

    New Contributors

    Full Changelog: c-m-rt-v0.7.5...c-m-rt-v0.7.6

    Open source →
    Release notes

    v0.7.6 - 2022-08-12

    • Added critical-section-single-core feature which provides an implementation for the critical-section crate for single-core systems, based on disabling all interrupts. (#448)
    Open source →
    Release notes
    • Added critical-section-single-core feature which provides an implementation for the critical-section crate for single-core systems, based on disabling all interrupts. (#448)
    Open source →
  5. 0.7.5 31 May 2022
    Release notes

    Deprecated

    • the ptr() function on all peripherals register blocks in favor of the associated constant PTR (#386).

    Changed

    • The inline-asm feature no longer requires a nightly Rust compiler, but does require Rust 1.59 or above.

    Fixed

    • Fixed singleton!() statics sometimes ending up in .data instead of .bss (#364, #380). (Backported from upcoming 0.8 release).
    Open source →
  6. 0.7.4 02 Jan 2022
    Release notes

    Added

    • Added support for additional DWT counters (#349)
      • CPI counter
      • Exception overhead counter
      • LSU counter
      • Folded-instruction counter
    • Added DWT.set_cycle_count (#347).
    • Added support for the Cortex-M7 TCM and cache access control registers. There is a feature cm7 to enable access to these (#352).
    • Add derives for serde, Hash, and PartialOrd to VectActive behind feature gates for host-platform use (#363).
    • Support host platforms besides x86_64 (#369).
    • Added delay::Delay::with_source, a constructor that lets you specify the SysTick clock source (#374).

    Fixed

    • Fix incorrect AIRCR PRIGROUP mask (#338, #339).
    • Fix nightly users of inline-asm breaking now that the asm macro is removed from the prelude (#372).

    Deprecated

    • DWT::get_cycle_count has been deprecated in favor of DWT::cycle_count. This change was made for consistency with the C-GETTER convention. (#349)
    Open source →
  7. 0.7.3 03 Jul 2021
    Release notes

    Fixed

    • Fixed compilation for native targets on non-x86 host systems (#336, #337).

    Added

    • The Delay struct now offers direct delay_us() and delay_ms() methods without having to go through the embedded-hal traits (#344).
    Open source →
  8. 0.7.2 07 Mar 2021
    Release notes

    Fixed

    • Fixed a bug where calling asm::delay() with an argument of 0 or 1 would underflow, leading to a very long delay.
    Open source →
  9. 0.7.1 25 Jan 2021
    Release notes

    Added

    • New assembly methods asm::semihosting_syscall, asm::bootstrap, and asm::bootload.

    Deprecated

    • msp::write has been deprecated in favor of asm::bootstrap. It was not possible to use msp::write without causing Undefined Behavior, so all existing users are encouraged to migrate.

    Fixed

    • Fixed a bug in asm::delay which could lead to incorrect codegen and infinite loops.
    • Improved timing guarantees of asm::delay on multiple-issue CPU cores.
    • Additional compiler fences added to inline assembly where necessary.
    • Fixed DWARF debug information in pre-built assembly binaries.
    Open source →
  10. 0.7.0 10 Nov 2020
    Release notes

    Added

    • New InterruptNumber trait is now required on interrupt arguments to the various NVIC functions, replacing the previous use of Nr from bare-metal. For backwards compatibility, InterruptNumber is implemented for types which are Nr + Copy, but this will be removed in a future version.
    • Associated const PTR is introduced to Core Peripherals to eventually replace the existing ptr() API.
    • A delay driver based on SysTick.
    • You can now use LTO to inline assembly calls, even on stable Rust. See the asm/lib.rs documentation for more details.
    • Initial ARMv8-M MPU support
    • ICTR and ACTLR registers added
    • Support for the Security Attribution Unit on ARMv8-M

    Changed

    • Previously, asm calls without the inline-asm feature enabled used pre-built objects which were built by a GCC compiler, while inline-asm enabled the use of llvm_asm! calls. The asm system has been replaced with a new technique which generates Rust static libs for stable calling, and uses the new asm! macro with inline-asm. See the asm/lib.rs documentation for more details.
    • Cache enabling now uses an assembly sequence to ensure correctness.
    • ptr() methods are now const.

    Breaking Changes

    • SCB::invalidate_dcache and related methods are now unsafe, see #188
    • Peripherals struct is now non-exhaustive, so fields may be added in future non-breaking changes
    • Removed aligned dependency
    • Removed const-fn feature
    • Removed previously deprecated APIs
      • NVIC::clear_pending
      • NVIC::disable
      • NVIC::enable
      • NVIC::set_pending
      • SCB::system_reset
    • Removed basepri, basepri_max, and faultmask registers from thumbv8m.base
    Open source →
  11. 0.6.7 26 Jan 2021
    Release notes

    Fixed

    • Fixed missing peripheral::itm reexport.
    Open source →
  12. 0.6.6 25 Jan 2021
    Release notes

    Fixed

    • Fixed missing ITM reexport on thumbv8m.base targets.
    Open source →
  13. 0.6.5 24 Jan 2021
    Release notes

    Changed

    • This release is forwards-compatible with cortex-m 0.7, and depends on and re-exports many types from that version. Both 0.6.5 and 0.7 may co-exist in a build.
    Open source →
  14. 0.6.5-alpha 18 Jan 2021 pre-release

    Nothing published for this version

  15. 0.6.4 26 Oct 2020
    Release notes

    Changed

    • MSRV bumped to 1.36.0 due to aligned dependency.

    Fixed

    • Drop AT&T syntax from inline asm, which was causing miscompilations with newer versions of the compiler.
    Open source →
  16. 0.6.3 20 Jul 2020
    Release notes

    Added

    • Initial Cortex-M Security Extension support for armv8m
    • UDF intrinsic
    • Methods to enable/disable exceptions in SCB

    Fixed

    • Fix bug in asm::delay not updating status clobber flags
    • Swapped to llvm_asm! to support inline assembly on new nightlies
    • Our precompiled assembly routines have additional debug information
    • ITM is_fifo_ready improved to support armv8
    • Cache enabling moved to pre-built assembly routines to prevent possible undefined behaviour
    Open source →
  17. 0.6.2 13 Jan 2020
    Release notes

    Added

    • Allow writing to the CONTROL register via register::control::write
    • Add DWT::unlock() for a safe way to unlock the DWT

    Deprecation

    • Deprecated incorrectly included registers (BASPRI, BASEPRI_MAX, FAULTMASK) on thumbv8.base
    Open source →
  18. 0.6.1 21 Aug 2019
    Release notes

    Fixed

    • Better Debug, PartialEq and Eq for more types
    • The delay function is fixed for Cortex-M0 MCUs

    Added

    • Static version of system_reset as system_reset2
    • Now uses links = "cortex-m" to not link multiple versions of the crate
    • Masking of the NVIC is added NVIC::{mask,unmask}
    • Now Rust 2018 edition
    • {M,P}SPLIM access is now possible on ARMv8-M

    Deprecation

    • system_reset is deprecated in favor of sys_reset
    Open source →
  19. 0.6.0 13 Mar 2019
    Release notes

    Fixed

    • Fix numerous registers which were incorrectly included for thumbv6
    • SHCRS renamed to SHCSR in SCB

    Added

    • Support for ARMv8-M (thumbv8.base and thumbv8.main)

    • SCB gained methods to set and clear SLEEPONEXIT bit

    • NVIC gained STIR register and methods to request an interrupt

    • DCB gained methods to check if debugger is attached

    Open source →
  20. 0.5.11 01 Feb 2021

    Nothing published for this version

  21. 0.5.10 29 Apr 2019

    Nothing published for this version

  22. 0.5.9 28 Apr 2019 withdrawn

    Nothing published for this version

  23. 0.5.8 27 Oct 2018
    Release notes

    Added

    • SCB gained methods to set, clear and check the pending state of the PendSV exception.

    • SCB gained methods to set, clear and check the pending state of the SysTick exception.

    • SCB gained methods to set and get the priority of system handlers like SVCall and SysTick.

    • NVIC gained static methods, pend and unpend, to set and clear the pending state of interrupts.

    Changed

    • The NVIC.{clear,set}_pending methods have been deprecated in favor of NVIC::{unpend,pend}.
    Open source →
  24. 0.5.7 06 Sep 2018
    Release notes

    Added

    • DCB::enable_trace() and DCB::disable_trace()

    Changed

    • iprintln! no longer depends on iprint!. cortex_m::iprintln! will work even if cortex_m::iprint has not been imported.
    Open source →
  25. 0.5.6 27 Aug 2018
    Release notes

    Fixed

    • Removed duplicated symbols from binary blobs

    • The check-blobs.sh script

    Open source →
  26. 0.5.5 27 Aug 2018 withdrawn
    Release notes

    Changed

    • This crate no longer depends on arm-none-eabi-gcc.
    Open source →
  27. 0.5.4 12 Aug 2018
    Release notes

    Added

    • A method to trigger a system reset. See SCB.system_reset.

    Fixed

    • Made the VTOR register (see peripheral::SCB) available on thumbv6m-none-eabi. This register is present on Cortex-M0+, but not on Cortex-M0.

    • Linking with LLD by marking all external assembly functions as .thumb_func. See https://bugs.llvm.org/show_bug.cgi?id=38435 for details.

    Open source →
  28. 0.5.3 02 Aug 2018
    Release notes

    Fixed

    • Don't assemble basepri*.s and faultmask.s for ARMv6-M. This fix the build when using clang as the assembler.
    Open source →
  29. 0.5.2 18 May 2018
    Release notes

    Added

    • SCB gained a pair of safe methods to set / clear the DEEPSLEEP bit.

    • asm::delay, delay loops whose execution time doesn't depend on the optimization level.

    Open source →
  30. 0.5.1 13 May 2018
    Release notes

    Added

    • An opt-in "const-fn" feature that makes Mutex.new constructor into a const fn. This feature requires a nightly toolchain.
    Open source →
  31. 0.5.0 11 May 2018
    Release notes

    Added

    • DebugMonitor and SecureFault variants to the Exception enumeration.

    • An optional "inline-asm" feature

    Changed

    • [breaking-change] This crate now requires arm-none-eabi-gcc to be installed and available in $PATH when built with the "inline-asm" feature disabled (which is disabled by default).

    • [breaking-change] The register::{apsr,lr,pc} modules are now behind the "inline-asm" feature.

    • [breaking-change] Some variants of the Exception enumeration are no longer available on thumbv6m-none-eabi. See API docs for details.

    • [breaking-change] Several of the variants of the Exception enumeration have been renamed to match the CMSIS specification.

    • [breaking-change] fixed typo in shcrs field of scb::RegisterBlock; it was previously named shpcrs.

    • [breaking-change] removed several fields from scb::RegisterBlock on ARMv6-M. These registers are not available on that sub-architecture.

    • [breaking-change] changed the type of scb::RegisterBlock.shpr from RW<u8> to RW<u32> on ARMv6-M. These registers are word accessible only on that sub-architecture.

    • [breaking-change] renamed the mmar field of scb::RegisterBlock to mmfar to match the CMSIS name.

    • [breaking-change] removed the iabr field from scb::RegisterBlock on ARMv6-M. This register is not available on that sub-architecture.

    • [breaking-change] removed several fields from cpuid::RegisterBlock on ARMv6-M. These registers are not available on that sub-architecture.

    • [breaking-change] The Mutex.new constructor is not a const fn by default. To make it a const fn you have to opt into the "const-fn" feature, which was added in v0.5.1, and switch to a nightly compiler.

    Removed

    • [breaking-change] The exception module has been removed. A replacement for Exception::active can be found in SCB::vect_active. A modified version exception::Exception can be found in the peripheral::scb module.
    Open source →
  32. 0.4.3 25 Jan 2018
    Release notes

    Changed

    • The initial value of a singleton! no longer needs to be evaluable in const context; it can now be a value computed at runtime, or even a capture of some other local variable.
    Open source →
  33. 0.4.2 17 Jan 2018
    Release notes

    Fixed

    • Added a missing Send implementation to all the peripherals.
    Open source →
  34. 0.4.1 16 Jan 2018
    Release notes

    Changed

    • peripheral::Peripherals is now re-exported at the root of the crate.
    Open source →
  35. 0.4.0 15 Jan 2018
    Release notes

    Added

    • Formatter and Flush Control register (FFCR) accessor to the TPIU register block.

    • A singleton! macro that creates mutable reference to a statically allocated variable.

    • A Cargo feature, cm7-r0p1, to work around a silicon erratum that affects writes to BASEPRI on Cortex-M7 r0p1 devices.

    Changed

    • [breaking-change] All peripherals are now exposed as scoped singletons and they need to be taken into scope to become accessible.

    • [breaking-change] The signatures of methods exposed by peripheral proxies have changed to better match the new scoped singletons semantics.

    • All the thin wrappers around assembly instructions now panic when executed on non-ARM devices.

    Removed

    • [breaking-change] APIs specific to ARMv7-M (peripheral::{cbp, fpb, fpu, itm, tpiu}, itm) when compiling for thumb6m-none-eabi.
    Open source →
  36. 0.3.1 20 Jul 2017
    Release notes

    Changed

    • {basepri,basepri_max}::write are now compiler barriers for the same reason that interrupt::{disable,enable} are: they are used to create critical sections.
    Open source →
  37. 0.3.0 07 Jul 2017
    Release notes

    Changed

    • [breaking-change] Renamed StackedRergisters to ExceptionFrame to better reflect the ARM documentation.

    • [breaking-change] Renamed the variants of Exception to better match the ARM documentation.

    • [breaking-change] Renamed Exception::current to Exception::active and changed the signature to return None when no exception is being serviced.

    • Moved bits non specific to the Cortex-M architecture into the bare-metal crate with the goal of sharing code between this crate and crates tailored for other (microcontroller) architectures.

    Removed

    • [breaking-change] The ctxt module along with the exception "tokens" in the exception module. The cortex-m-rt crate v0.3.0 provides a more ergonomic mechanism to add state to interrupts / exceptions; replace your uses of Local with that.

    • [breaking-change] default_handler, DEFAULT_HANDLERS and Handlers from the exception module as well as Reserved from the root of the crate. cortex-m-rt v0.3.0 provides a mechanism to override exceptions and the default exception handler. Change your use of these Handlers and others to that.

    Fixed

    • interrupt::{enable,disable} are now compiler barriers. The compiler should not reorder code around these function calls for memory safety; that is the case now.
    Open source →
  38. 0.2.12 21 Sep 2017

    Nothing published for this version

  39. 0.2.11 17 Jun 2017
    Release notes

    Added

    • An API to maintain the different caches (DCache, ICache) on Cortex M7 devices.

    Fixed

    • the definition of the ehprint! macro.
    • the implementation of the FPU API.
    Open source →
  40. 0.2.10 05 Jun 2017
    Release notes

    Added

    • Functions for the instructions DMB, ISB and DSB

    Changed

    • All the functions in the asm module are now inline(always)
    Open source →
  41. 0.2.9 31 May 2017
    Release notes

    Fixed

    • A bug in itm::write_all where it would ignore the length of the buffer and serialize contents that come after the buffer.
    Open source →
  42. 0.2.8 30 May 2017 withdrawn
    Release notes

    Added

    • An itm::write_aligned function to write 4 byte aligned buffers to an ITM port. This function is faster than itm::write_all for small buffers but requires the buffer to be aligned.
    Open source →
  43. 0.2.7 23 May 2017
    Release notes

    Added

    • Dwt.enable_cycle_counter
    Open source →
  44. 0.2.6 08 May 2017
    Release notes

    Fixed

    • [breaking-change]. MEMORY UNSAFETY. Mutex could be used as a channel to send interrupt tokens from one interrupt to other thus breaking the context Local abstraction. See reproduction case below. This has been fixed by making Mutex Sync only if the protected data is Send.
    #![feature(const_fn)]
    #![feature(used)]
    #![no_std]
    
    use core::cell::RefCell;
    
    use cortex_m::ctxt::Local;
    use cortex_m::interrupt::Mutex;
    use stm32f30x::interrupt::{self, Exti0, Exti1};
    
    fn main() {
        // ..
    
        // trigger exti0
        // then trigger exti0 again
    }
    
    static CHANNEL: Mutex<RefCell<Option<Exti0>>> = Mutex::new(RefCell::new(None));
    // Supposedly task *local* data
    static LOCAL: Local<i32, Exti0> = Local::new(0);
    
    extern "C" fn exti0(mut ctxt: Exti0) {
        static FIRST: Local<bool, Exti0> = Local::new(true);
    
        let first = *FIRST.borrow(&ctxt);
    
        // toggle
        if first {
            *FIRST.borrow_mut(&mut ctxt) = false;
        }
    
        if first {
            cortex_m::interrupt::free(
                |cs| {
                    let channel = CHANNEL.borrow(cs);
    
                    // BAD: transfer interrupt token to another interrupt
                    *channel.borrow_mut() = Some(ctxt);
                },
            );
    
            return;
        }
        let _local = LOCAL.borrow_mut(&mut ctxt);
    
        // ..
    
        // trigger exti1 here
    
        // ..
    
        // `LOCAL` mutably borrowed up to this point
    }
    
    extern "C" fn exti1(_ctxt: Exti1) {
        cortex_m::interrupt::free(|cs| {
            let channel = CHANNEL.borrow(cs);
            let mut channel = channel.borrow_mut();
    
            if let Some(mut other_task) = channel.take() {
                // BAD: `exti1` has access to `exti0`'s interrupt token
                // so it can now mutably access local while `exti0` is also using it
                let _local = LOCAL.borrow_mut(&mut other_task);
            }
        });
    }
    
    #[allow(dead_code)]
    #[used]
    #[link_section = ".rodata.interrupts"]
    static INTERRUPTS: interrupt::Handlers = interrupt::Handlers {
        Exti0: exti0,
        Exti1: exti1,
        ..interrupt::DEFAULT_HANDLERS
    };
    
    Open source →
  45. 0.2.5 07 May 2017 withdrawn
    Release notes

    Added

    • Higher level API for the SysTick and FPU peripherals

    Fixed

    • [breaking-change]. MEMORY UNSAFETY. interrupt::enable was safe to call inside an interrupt::free critical section thus breaking the preemption protection. The interrupt::enable method is now unsafe.
    Open source →
  46. 0.2.4 20 Apr 2017 withdrawn
    Release notes

    Fixed

    • [breaking-change]. MEMORY UNSAFETY. interrupt::free leaked the critical section making it possible to access a Mutex when interrupts are enabled (see below). This has been fixed by changing the signature of interrupt::free.
    static FOO: Mutex<bool> = Mutex::new(false);
    
    fn main() {
        let cs = cortex_m::interrupt::free(|cs| cs);
        // interrupts are enabled at this point
        let foo = FOO.borrow(&cs);
    }
    
    Open source →
  47. 0.2.3 12 Apr 2017 withdrawn
    Release notes

    Fixed

    • [breaking-change]. MEMORY UNSAFETY. Some concurrency models that use "partial" critical sections (cf. BASEPRI) can be broken by changing the priority of interrupts or by changing BASEPRI in some scenarios. For this reason NVIC.set_priority and register::basepri::write are now unsafe.
    Open source →
  48. 0.2.2 08 Apr 2017 withdrawn
    Release notes

    Fixed

    • [breaking-change]. MEMORY UNSAFETY. The Mutex.borrow_mut method has been removed as it can be used to bypass Rust's borrow checker and get, for example, two mutable references to the same data.
    static FOO: Mutex<bool> = Mutex::new(false);
    
    fn main() {
        cortex_m::interrupt::free(|mut cs1| {
            cortex_m::interrupt::free(|mut cs2| {
                let foo: &mut bool = FOO.borrow_mut(&mut cs1);
                let and_foo: &mut bool = FOO.borrow_mut(&mut cs2);
            });
        });
    }
    
    Open source →
  49. 0.2.1 12 Mar 2017 withdrawn
    Release notes

    Changed

    • The default exception handler now identifies the exception that's being serviced.
    Open source →
  50. 0.2.0 12 Mar 2017 withdrawn
    Release notes

    Added

    • Semihosting functionality in the semihosting module.

    • exception::Handlers struct that represent the section of the vector table that contains the exception handlers.

    • A default exception handler

    • A high level API for the NVIC peripheral.

    • Context local data.

    • borrow/borrow_mut methods to Mutex that replace lock.

    • API and macros to send bytes / (formatted) strings through ITM

    Changed

    • [breaking-change] StackFrame has been renamed to StackedRegisters and moved into the exceptions module.

    • [breaking-change] Core peripherals can now be modified via a &- reference and are no longer Sync.

    • [breaking-change] interrupt::free's closure now includes a critical section token, CriticalSection.

    • [breaking-change] the core register API has been revamped for type safety.

    • The safety of assembly wrappers like wfi and interrupt::free has been reviewed. In many cases, the functions are no longer unsafe.

    • [breaking-change] bkpt! has been turned into a function. It no longer accepts an immediate value.

    Removed

    • vector_table and its associated struct, VectorTable. It's not a good idea to give people a simple way to call the exception handlers.

    • Mutex's lock method as it's unsound. You could use it to get multiple &mut - references to the wrapped data.

    Open source →
  51. 0.1.8 17 Aug 2018

    Nothing published for this version

  52. 0.1.7 21 Sep 2017

    Nothing published for this version

  53. 0.1.6 22 Jan 2017
    Release notes

    Added

    • Exception a enumeration of the kind of exceptions the processor can service. There's also a Exception::current constructor that returns the Exception that's currently being serviced.
    Open source →
  54. 0.1.5 19 Nov 2016

    Nothing published for this version

  55. 0.1.4 15 Oct 2016

    Nothing published for this version

  56. 0.1.3 04 Oct 2016

    Nothing published for this version

  57. 0.1.2 04 Oct 2016
    Release notes

    Fixed

    • Read/write Operations on registers (lr, cr, msp, etc.) which were reversed.
    Open source →
  58. 0.1.1 03 Oct 2016 withdrawn
    Release notes

    Changed

    • Small, non user visible change to make this crate compile further for $HOST (e.g. x86_64) with the goal of making it possible to test, on the HOST, downstream crates that depend on this one.
    Open source →
  59. 0.1.0 28 Sep 2016 withdrawn
    Release notes

    Added

    • Functions to access core peripherals like NVIC, SCB and SysTick.
    • Functions to access core registers like CONTROL, MSP and PSR.
    • Functions to enable/disable interrupts
    • Functions to get the vector table
    • Wrappers over miscellaneous instructions like bkpt
    Open source →

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive