This repository contains a set of minimal Rust crates to blink LEDs on popular development boards.
These crates have no dependencies, and use hard-coded constants for register addresses. They are also compiled with opt-level="s" to simplify the compiled code and to eliminate the dependency on compiler_builtins.
See Bobbin CLI for a Rust-based command line utility for building and deploying these applications.
Build and Deploy
In most cases, once you have Bobbin CLI and the required prerequisites for your board installed, you should be
cd into the directory for your board and
bobbin load to build and load the binary.
$ bobbin load Compiling nucleo-f429zi v0.1.0 (file:///home/bobbin/bobbin-blinky/nucleo-f429zi) Finished dev [optimized + debuginfo] target(s) in 0.12 secs text data bss dec hex filename 148 0 4 152 98 target/thumbv7em-none-eabihf/debug/nucleo-f429zi Loading target/thumbv7em-none-eabihf/debug/nucleo-f429zi Complete Successfully flashed device Loader Load Complete $
In some cases, you may need to use
bobbin run to start your application after loading it.
If you get errors or the board simply doesn't blink, here's a good list of things to check:
- Make sure you have the most recent version of Bobbin CLI by running
cargo install bobbin-cli --force.
bobbin checkto see the versions of the prerequisites that Bobbin CLI can find. You may need to install newer versions of these prerequisites.
- The next most likely cause is the firmware for the on-board debugger if your board has one. You may wish to review Bobbin CLI - Development Board Firmware for an overview of the situation and links to updated versions.