Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Прошивка Rust-программы в Raspberry Pi Pico 2

После сборки программы у нас появится ELF-файл, готовый к прошивке.

Для отладочной сборки (cargo build) файл находится здесь:

./target/thumbv8m.main-none-eabihf/debug/pico-from-scratch

Для релизной сборки (cargo build --release) — здесь:

./target/thumbv8m.main-none-eabihf/release/pico-from-scratch

Чтобы загрузить программу на Pico, мы воспользуемся инструментом Picotool. Вот команда для прошивки нашей программы:

#![allow(unused)]
fn main() {
picotool load -u -v -x -t elf ./target/thumbv8m.main-none-eabihf/debug/pico-from-scratch
}

Вот что делает каждый флаг:

  • -u — режим обновления (записываются только изменившиеся данные)
  • -v — проверить, что всё записано корректно
  • -x — запустить программу сразу после загрузки
  • -t elf — сообщает picotool, что мы используем ELF-файл

Команда cargo run

Каждый раз вводить эту длинную команду утомительно. Упростим её, обновив файл .cargo/config.toml. Мы можем настроить Cargo так, чтобы при запуске cargo run он автоматически использовал picotool:

[target.thumbv8m.main-none-eabihf]
runner = "picotool load -u -v -x -t elf"

Теперь достаточно ввести:

cargo run --release

# или

cargo run

и программа будет прошита и запущена на Pico.

Пока что ничего на самом деле не прошьётся. Нам не хватает одного важного шага.