rtic/book/ru/src/by-example/new.md
2019-02-11 21:40:53 +01:00

2.6 KiB
Raw Blame History

Создание нового проекта

Теперь, когда Вы изучили основные возможности фреймворка RTFM, Вы можете попробовать его использовать на Вашем оборудовании следуя этим инструкциям.

  1. Создайте экземпляр из шаблона cortex-m-quickstart.
$ # например используя `cargo-generate`
$ cargo generate \
    --git https://github.com/rust-embedded/cortex-m-quickstart \
    --name app

$ # следуйте остальным инструкциям
  1. Добавьте крейт устройства, сгенерированный с помощью svd2rust v0.14.x, или библиотеку отладочной платы, у которой в зависимостях одно из устройств. Убедитесь, что опция rt крейта включена.

В этом примере я покажу использование крейта устройства lm3s6965. Эта библиотека не имеет Cargo-опции rt; эта опция всегда включена.

Этот крейт устройства предоставляет линковочный скрипт с макетом памяти целевого устройства, поэтому memory.x и build.rs не нужно удалять.

$ cargo add lm3s6965 --vers 0.1.3

$ rm memory.x build.rs
  1. Добавьте библиотеку cortex-m-rtfm как зависимость, и если необходимо, включите опцию timer-queue.
$ cargo add cortex-m-rtfm --allow-prerelease --upgrade=none
  1. Напишите программу 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
  1. Соберите его, загрузите в микроконтроллер и запустите.
$ # ПРИМЕЧАНИЕ: Я раскомментировал опцию `runner` в `.cargo/config`
$ cargo run
{{#include ../../../../ci/expected/init.run}}```