Прошивка
Нет, речь не о самом быстром человеке на планете. Мы говорим о записи нашего бинарного файла в микроконтроллер и его запуске.
Для этого мы воспользуемся полезным инструментом — espflash. Есть и другие инструменты, например probe-rs, но пока будем придерживаться espflash.
Прошить программу и открыть монитор можно такой командой:
#![allow(unused)]
fn main() {
espflash flash --monitor --chip esp32 ./target/xtensa-esp32-none-elf/debug/std_to_no_std
}
Cargo run
Каждый раз вводить такую длинную команду неудобно. Упростим себе жизнь, обновив файл .cargo/config.toml. Мы можем сказать Cargo автоматически использовать espflash при выполнении cargo run.
Добавьте этот раздел в .cargo/config.toml:
[target.xtensa-esp32-none-elf]
runner = "espflash flash --monitor --chip esp32"
Теперь достаточно ввести:
cargo run --release
и программа будет прошита и запущена на ESP32.
Уф… Мы начали с бинарного файла для стандартной библиотеки и превратили его в бинарный файл no_std для ESP32. Наконец-то мы видим, как мигает светодиод.
К счастью, проходить всю эту настройку при каждом создании нового проекта не придётся. Именно поэтому такие инструменты, как esp-generate (или cargo-generate), так полезны во встраиваемом программировании: они настраивают все сложные части, чтобы можно было сразу перейти к написанию кода.