Rust on BBC micro:bit using Windows
I’ve decided to try how the BBC micro:bit and Rust play together when using Windows as a development machine. My setup is made of Window 10 (Enterprise 64-bit, but that should not make any difference at all). Additionally, I’ve installed Rust from here.
Then in my command prompt (I’m using regular
cmd.exe), I’ve brought Cargo binaries into PATH:
set PATH=c:\windows;c:\windows\system32; %USERPROFILE%\.cargo\bin
Then, I’ve added Rust’s nightly channel, ade it default one, as well as additional target I would need for
micro:bit - a
rustup install nightly rustup default nightly rustup target install thumbv6m-none-eabi
Eventually, I’ve downloaded ZIP’ped variant of [GCC Arm cross-compilers] (https://developer.arm.com/open-source/gnu-toolchain/gnu-rm/downloads). Version for 32-bit was the only available, but that’s OK, would not make a difference.
I’ve extracted it to my
C: drive and and brought into PATH as well:
set PATH=%PATH%;"C:\ArmCompilers\7 2017-q4-major\bin"; set PATH=%PATH%;"C:\ArmCompilers\7 2017-q4-major\arm-none-eabi\bin"
I’ve took my blinky example I come previosly and gave it a go:
cargo build --release Compiling cc v1.0.17 Compiling vcell v0.1.0 Compiling aligned v0.2.0 Compiling bare-metal v0.2.0 Compiling nrf51 v0.5.0 Compiling r0 v0.2.2 Compiling nb v0.1.1 Compiling void v1.0.2 Compiling cast v0.2.2 Compiling panic-abort v0.2.0 Compiling volatile-register v0.2.0 Compiling embedded-hal v0.2.1 Compiling cortex-m v0.5.2 Compiling cortex-m-rt v0.5.1 Compiling nrf51-hal v0.5.1 Compiling microbit v0.5.4 Compiling microbit-blinky v0.1.0 ... Finished release [optimized] target(s) in 29.96s
Voilà! All compiles nicely. No surprises with extraction of the HEX file too:
arm-none-eabi-objcopy -O ihex target\thumbv6m-none-eabi\release\microbit-blinky out.hex
So I can now send the
out.hex produced to my BBC micro:bit board.
It is mounted in my system as F: drive, so the command is:
copy out.hex F:\
And there it is. New program started and flashes the LED.
Windows and Rust and microbit crate played all well, no surprises, straightforward experience.