3.2. Example - Building the blink program for AVR

This shell snippet shows an example that will build the LED blinking example for AVR.

# fetch and prepare the blink crate (only needs to be done once).
$ git clone https://github.com/avr-rust/blink.git
$ cd blink
$ rustup override set nightly

# compile the blink crate to an ELF file targeting atmega328p.
$ cargo build -Z build-std=core --target avr-atmega328p.json --release

After compilation, the final ELF executable will be available at target/avr-atmega328p/release/blink.elf, ready to be flashed to a device or ran inside a simulator.

$ file target/avr-atmega328p/release/blink.elf
target/avr-atmega328p/release/blink.elf: ELF 32-bit LSB executable, Atmel AVR 8-bit, version 1 (SYSV), statically linked, with debug_info, not stripped

Other AVR microcontroller models may be targeted by simply copying and modifying avr-atmega328p.json.