diff options
Diffstat (limited to 'book/ru/src/by-example/new.md')
| -rw-r--r-- | book/ru/src/by-example/new.md | 45 |
1 files changed, 31 insertions, 14 deletions
diff --git a/book/ru/src/by-example/new.md b/book/ru/src/by-example/new.md index cba84c1..fcf5237 100644 --- a/book/ru/src/by-example/new.md +++ b/book/ru/src/by-example/new.md @@ -16,19 +16,19 @@ $ cargo generate \ $ # следуйте остальным инструкциям ``` -2. Добавьте крейт устройства, сгенерированный с помощью [`svd2rust`] **v0.14.x**, -или библиотеку отладочной платы, у которой в зависимостях одно из устройств. +2. Добавьте крейт доступа к периферии (PAC), сгенерированный с помощью[`svd2rust`] + **v0.14.x**, или крейт отладочной платы, у которой в зависимостях один из таких PAC'ов. Убедитесь, что опция `rt` крейта включена. [`svd2rust`]: https://crates.io/crates/svd2rust -В этом примере я покажу использование крейта устройства [`lm3s6965`]. +В этом примере я буду использовать крейт устройства [`lm3s6965`]. Эта библиотека не имеет Cargo-опции `rt`; эта опция всегда включена. [`lm3s6965`]: https://crates.io/crates/lm3s6965 Этот крейт устройства предоставляет линковочный скрипт с макетом памяти -целевого устройства, поэтому `memory.x` и `build.rs` не нужно удалять. +целевого устройства, поэтому `memory.x` и `build.rs` нужно удалить. ``` console $ cargo add lm3s6965 --vers 0.1.3 @@ -36,24 +36,40 @@ $ cargo add lm3s6965 --vers 0.1.3 $ rm memory.x build.rs ``` -3. Добавьте библиотеку `cortex-m-rtic` как зависимость, и если необходимо, -включите опцию `timer-queue`. +3. Добавьте крейт `cortex-m-rtic` как зависимость. ``` console -$ cargo add cortex-m-rtic --allow-prerelease --upgrade=none +$ cargo add cortex-m-rtic --allow-prerelease ``` -4. Напишите программу RTIC. +4. Напишите свою RTIC программу. -Здесь я буду использовать пример `init` из библиотеки `cortex-m-rtic`. +Здесь я буду использовать пример `init` из крейта `cortex-m-rtic`. + +Примеры находтся в папке `examples`, а содержание `init.rs` показано здесь: ``` console -$ curl \ - -L https://github.com/japaric/cortex-m-rtic/raw/v0.4.0-beta.1/examples/init.rs \ - > src/main.rs +{{#include ../../../../examples/init.rs}} +``` + +Пример `init` использует устройство `lm3s6965`. Не забудьте настроить аргумент `device` +в атрибуте макроса app так, чтобы он соответствовал пути к PAC-крейту, если он отличается, +а также добавить перифериб и другие аргументы если необходимо. +Несмотря на то, что в программе могут использоваться псевдонимы типов, +здесь необходимо указать полный путь (из корня крейта). Для многих устройств, +есть общий подход в крейтах реализации HAL (с псевдонимом `hal`) и крейтах поддержки +отладочных плат реекспортиорвать PAC как `pac`, что приводит нас к образцу, аналогичному +приведенному ниже: + +```rust +use abcd123_hal as hal; +//... + +#[rtic::app(device = crate::hal::pac, peripherals = true, monotonic = rtic::cyccnt::CYCCNT)] +mod app { /*...*/ } ``` -Этот пример зависит от библиотеки `panic-semihosting`: +Пример `init` также зависит от крейта `panic-semihosting`: ``` console $ cargo add panic-semihosting @@ -64,4 +80,5 @@ $ cargo add panic-semihosting ``` console $ # ПРИМЕЧАНИЕ: Я раскомментировал опцию `runner` в `.cargo/config` $ cargo run -{{#include ../../../../ci/expected/init.run}}``` +{{#include ../../../../ci/expected/init.run}} +``` |
