profile
viewpoint

stm32-rs/stm32f4xx-hal 139

A Rust embedded-hal HAL for all MCUs in the STM32 F4 family

stm32-rs/stm32-eth 51

Embedded Ethernet driver in Rust

thalesfragoso/at28c-rs 21

Firmware and CLI utility to program AT28C EEPROM chips

ra-kete/dma-poc 13

Experiments with safe DMA abstractions in Rust

thalesfragoso/esb 9

Rust implementation of Nordic's Enhanced ShockBurst communication protocol

cs2dsb/stm32f4xx-hal 0

A Rust embedded-hal HAL for all MCUs in the STM32 F4 family

thalesfragoso/bare-metal 0

Abstractions common to microcontrollers

thalesfragoso/book 0

Documentation on how to use the Rust Programming Language to develop firmware for bare metal (microcontroller) devices

thalesfragoso/cortex-m 0

Low level access to Cortex-M processors

pull request commentrust-embedded/cortex-m

Deprecate msp::write

I think we're good to merge this now. Could you add a changelog entry please?

jonas-schievink

comment created time in 3 hours

Pull request review commentrust-embedded/cortex-m

Deprecate msp::write

 pub fn read() -> u32 {  /// Writes `bits` to the CPU register #[inline]+#[deprecated = "calling this function invokes Undefined Behavior"]
#[deprecated = "calling this function invokes Undefined Behavior, consider asm::bootstrap as an alternative"]
jonas-schievink

comment created time in 3 hours

delete branch rust-embedded/cortex-m

delete branch : new-asm

delete time in 4 hours

PR merged rust-embedded/cortex-m

Expose __syscall and add new bootstrap method S-waiting-on-review T-cortex-m

We added __syscall in the new inline asm, but did not expose it in the crate API, and the cortex-m-semihosting crate can't use it directly because the pre-built binaries would contain duplicate symbols (#271). This PR renames it to __sh_syscall (since we could imagine other different syscalls; this one is explicitly semihosting with the bkpt 0xAB) and exposes it in cortex_m::asm::sh_syscall.

This PR also adds the new methods discussed in #297 to permit sound bootstrapping, either from an MSP and RV or a vector table address.

+74 -3

2 comments

18 changed files

adamgreig

pr closed time in 4 hours

push eventrust-embedded/cortex-m

Adam Greig

commit sha 4a1c82fe37e05223951595648a74792cdc3c2179

Expose __syscall and add new bootstrap method

view details

Adam Greig

commit sha 3a3a812f53d9bb66f3fe042a514f813734eac4c6

Update pre-built binaries

view details

Adam Greig

commit sha 3b184eaa0abf147d607f918985bdffd6abe31a51

asm.bootstrap: only set CONTROL.SPSEL, mark as divergent

view details

Adam Greig

commit sha 155dd567d875fe8a911e694a3297988ce343fc70

Update src/asm.rs Co-authored-by: Jonas Schievink <jonasschievink@gmail.com>

view details

Adam Greig

commit sha 64842461ba4caa384487ae52cbe15a4f3834b4b4

Update CHANGELOG.md Co-authored-by: Jonas Schievink <jonasschievink@gmail.com>

view details

bors[bot]

commit sha 038396e6f944fb8697e2d4ecbd88cfca9d16b90e

Merge #299 299: Expose __syscall and add new bootstrap method r=jonas-schievink a=adamgreig We added `__syscall` in the new inline asm, but did not expose it in the crate API, and the cortex-m-semihosting crate can't use it directly because the pre-built binaries would contain duplicate symbols (#271). This PR renames it to `__sh_syscall` (since we could imagine other different syscalls; this one is explicitly semihosting with the `bkpt 0xAB`) and exposes it in `cortex_m::asm::sh_syscall`. This PR also adds the new methods discussed in #297 to permit sound bootstrapping, either from an MSP and RV or a vector table address. Co-authored-by: Adam Greig <adam@adamgreig.com>

view details

push time in 4 hours

delete branch rust-embedded/cortex-m

delete branch : staging.tmp

delete time in 4 hours

push eventrust-embedded/cortex-m

Adam Greig

commit sha 4a1c82fe37e05223951595648a74792cdc3c2179

Expose __syscall and add new bootstrap method

view details

Adam Greig

commit sha 3a3a812f53d9bb66f3fe042a514f813734eac4c6

Update pre-built binaries

view details

Adam Greig

commit sha 3b184eaa0abf147d607f918985bdffd6abe31a51

asm.bootstrap: only set CONTROL.SPSEL, mark as divergent

view details

Adam Greig

commit sha 155dd567d875fe8a911e694a3297988ce343fc70

Update src/asm.rs Co-authored-by: Jonas Schievink <jonasschievink@gmail.com>

view details

Adam Greig

commit sha 64842461ba4caa384487ae52cbe15a4f3834b4b4

Update CHANGELOG.md Co-authored-by: Jonas Schievink <jonasschievink@gmail.com>

view details

bors[bot]

commit sha 038396e6f944fb8697e2d4ecbd88cfca9d16b90e

Merge #299 299: Expose __syscall and add new bootstrap method r=jonas-schievink a=adamgreig We added `__syscall` in the new inline asm, but did not expose it in the crate API, and the cortex-m-semihosting crate can't use it directly because the pre-built binaries would contain duplicate symbols (#271). This PR renames it to `__sh_syscall` (since we could imagine other different syscalls; this one is explicitly semihosting with the `bkpt 0xAB`) and exposes it in `cortex_m::asm::sh_syscall`. This PR also adds the new methods discussed in #297 to permit sound bootstrapping, either from an MSP and RV or a vector table address. Co-authored-by: Adam Greig <adam@adamgreig.com>

view details

push time in 4 hours

push eventrust-embedded/cortex-m

Adam Greig

commit sha 4a1c82fe37e05223951595648a74792cdc3c2179

Expose __syscall and add new bootstrap method

view details

Adam Greig

commit sha 3a3a812f53d9bb66f3fe042a514f813734eac4c6

Update pre-built binaries

view details

Adam Greig

commit sha 3b184eaa0abf147d607f918985bdffd6abe31a51

asm.bootstrap: only set CONTROL.SPSEL, mark as divergent

view details

Adam Greig

commit sha 155dd567d875fe8a911e694a3297988ce343fc70

Update src/asm.rs Co-authored-by: Jonas Schievink <jonasschievink@gmail.com>

view details

Adam Greig

commit sha 64842461ba4caa384487ae52cbe15a4f3834b4b4

Update CHANGELOG.md Co-authored-by: Jonas Schievink <jonasschievink@gmail.com>

view details

bors[bot]

commit sha 0029295595e317007aa6d44e76f9c747d659a2a3

[ci skip][skip ci][skip netlify] -bors-staging-tmp-299

view details

push time in 4 hours

create barnchrust-embedded/cortex-m

branch : staging.tmp

created branch time in 4 hours

push eventrust-embedded/cortex-m

Adam Greig

commit sha 64842461ba4caa384487ae52cbe15a4f3834b4b4

Update CHANGELOG.md Co-authored-by: Jonas Schievink <jonasschievink@gmail.com>

view details

push time in 4 hours

Pull request review commentrust-embedded/cortex-m

Expose __syscall and add new bootstrap method

 and this project adheres to [Semantic Versioning](http://semver.org/).  ## [Unreleased] +### Added++- New assembly methods `asm::sh_syscall`, `asm::bootstrap`, and
- New assembly methods `asm::semihosting_syscall`, `asm::bootstrap`, and
adamgreig

comment created time in 4 hours

PR opened jonas-schievink/rubble

support nrf52811
+23 -3

0 comment

10 changed files

pr created time in 4 hours

push eventrust-embedded/cortex-m

Adam Greig

commit sha 155dd567d875fe8a911e694a3297988ce343fc70

Update src/asm.rs Co-authored-by: Jonas Schievink <jonasschievink@gmail.com>

view details

push time in 4 hours

Pull request review commentrust-embedded/cortex-m

Expose __syscall and add new bootstrap method

 pub fn ttat(addr: *mut u32) -> u32 { pub unsafe fn bx_ns(addr: u32) {     call_asm!(__bxns(addr: u32)); }++/// Semihosting syscall.+///+/// This method is used by cortex-m-semihosting to provide semihosting syscalls.+#[inline]+pub unsafe fn sh_syscall(nr: u32, arg: u32) -> u32 {

Since this is public API, maybe a clearer name would be appropriate?

pub unsafe fn semihosting_syscall(nr: u32, arg: u32) -> u32 {
adamgreig

comment created time in 4 hours

delete branch rust-embedded/cortex-m

delete branch : update-sh-changelog

delete time in 5 hours

PR merged rust-embedded/cortex-m

Update c-m-sh changelog for 0.3.7 S-waiting-on-review T-cortex-m
+16 -0

2 comments

1 changed file

adamgreig

pr closed time in 5 hours

push eventrust-embedded/cortex-m

Adam Greig

commit sha 64f936c64edf5ad127490cddac727dd39246edf2

Update c-m-sh changelog for 0.3.7

view details

bors[bot]

commit sha d34b1ce3eda92777ba9bafe2fca96e1985ec6d72

Merge #302 302: Update c-m-sh changelog for 0.3.7 r=jonas-schievink a=adamgreig Co-authored-by: Adam Greig <adam@adamgreig.com>

view details

push time in 5 hours

issue commentrust-embedded/cortex-m

Version 0.3.6 is not semver-compatible

Thanks @adamgreig for your very fast reaction!

samueltardieu

comment created time in 5 hours

delete branch rust-embedded/cortex-m

delete branch : staging.tmp

delete time in 5 hours

push eventrust-embedded/cortex-m

Adam Greig

commit sha 64f936c64edf5ad127490cddac727dd39246edf2

Update c-m-sh changelog for 0.3.7

view details

bors[bot]

commit sha d34b1ce3eda92777ba9bafe2fca96e1985ec6d72

Merge #302 302: Update c-m-sh changelog for 0.3.7 r=jonas-schievink a=adamgreig Co-authored-by: Adam Greig <adam@adamgreig.com>

view details

push time in 5 hours

push eventrust-embedded/cortex-m

Adam Greig

commit sha 64f936c64edf5ad127490cddac727dd39246edf2

Update c-m-sh changelog for 0.3.7

view details

bors[bot]

commit sha f431a2b3f8188cb78a98d19d3b653d404a8a986e

[ci skip][skip ci][skip netlify] -bors-staging-tmp-302

view details

push time in 5 hours

create barnchrust-embedded/cortex-m

branch : staging.tmp

created branch time in 5 hours

issue closedrust-embedded/cortex-m

Version 0.3.6 is not semver-compatible

The prototype of hprintln!() has changed somewhere between 0.3.3 and 0.3.6, version should be bumped to "0.4.x".

I had the experience today. Some of my students had imported a few days ago a library skeleton containing a dependency over "0.3.3" or any compatible version, and the code uses hprintln!().unwrap(). Everything worked fine and it created a Cargo.lock depending on 0.3.3 for their application.

Some other students imported the same code today, and since they didn't have a Cargo.lock yet one got created with the highest compatible version, i.e. "0.3.6". Unfortunately, the code containing hprintln!().unwrap() now doesn't compile anymore.

closed time in 5 hours

samueltardieu

issue commentrust-embedded/cortex-m

Version 0.3.6 is not semver-compatible

This should be fixed by 0.3.7 which is now released. Sorry for the disruption!

samueltardieu

comment created time in 5 hours

pull request commentrust-embedded/cortex-m

Update c-m-sh changelog for 0.3.7

r? @thalesfragoso

(rust-highfive has picked a reviewer for you, use r? to override)

adamgreig

comment created time in 5 hours

push eventrust-embedded/cortex-m

Adam Greig

commit sha 3b184eaa0abf147d607f918985bdffd6abe31a51

asm.bootstrap: only set CONTROL.SPSEL, mark as divergent

view details

push time in 5 hours

push eventrust-embedded/cortex-m

Adam Greig

commit sha 64f936c64edf5ad127490cddac727dd39246edf2

Update c-m-sh changelog for 0.3.7

view details

push time in 5 hours

more