Создание нового проекта
Теперь, когда Вы изучили основные возможности фреймворка RTFM, Вы можете попробовать его использовать на Вашем оборудовании следуя этим инструкциям.
- Создайте экземпляр из шаблона
cortex-m-quickstart.
$ # например используя `cargo-generate`
$ cargo generate \
--git https://github.com/rust-embedded/cortex-m-quickstart \
--name app
$ # следуйте остальным инструкциям
- Добавьте крейт устройства, сгенерированный с помощью
svd2rustv0.14.x, или библиотеку отладочной платы, у которой в зависимостях одно из устройств. Убедитесь, что опцияrtкрейта включена.
В этом примере я покажу использование крейта устройства lm3s6965.
Эта библиотека не имеет Cargo-опции rt; эта опция всегда включена.
Этот крейт устройства предоставляет линковочный скрипт с макетом памяти
целевого устройства, поэтому memory.x и build.rs не нужно удалять.
$ cargo add lm3s6965 --vers 0.1.3
$ rm memory.x build.rs
- Добавьте библиотеку
cortex-m-rtfmкак зависимость, и если необходимо, включите опциюtimer-queue.
$ cargo add cortex-m-rtfm --allow-prerelease --upgrade=none
- Напишите программу RTFM.
Здесь я буду использовать пример init из библиотеки cortex-m-rtfm.
$ curl \
-L https://github.com/japaric/cortex-m-rtfm/raw/v0.4.0-beta.1/examples/init.rs \
> src/main.rs
Этот пример зависит от библиотеки panic-semihosting:
$ cargo add panic-semihosting
- Соберите его, загрузите в микроконтроллер и запустите.
$ # ПРИМЕЧАНИЕ: Я раскомментировал опцию `runner` в `.cargo/config`
$ cargo run
init