diff options
Diffstat (limited to 'book/ru/src/by-example/app.md')
| -rw-r--r-- | book/ru/src/by-example/app.md | 26 |
1 files changed, 13 insertions, 13 deletions
diff --git a/book/ru/src/by-example/app.md b/book/ru/src/by-example/app.md index 18147dc..04dd5b2 100644 --- a/book/ru/src/by-example/app.md +++ b/book/ru/src/by-example/app.md @@ -1,26 +1,26 @@ # The `app` attribute -Это наименьшая возможная программа на RTFM: +Это наименьшая возможная программа на RTIC: ``` rust {{#include ../../../../examples/smallest.rs}} ``` -Все программы на RTFM используют атрибут [`app`] (`#[app(..)]`). Этот атрибут +Все программы на RTIC используют атрибут [`app`] (`#[app(..)]`). Этот атрибут нужно применять к `const`-элементам, содержащим элементы. Атрибут `app` имеет обязательный аргумент `device`, в качестве значения которому передается *путь*. Этот путь должен указывать на библиотеку *устройства*, сгенерированную с помощью [`svd2rust`] **v0.14.x**. Атрибут `app` развернется в удобную точку входа, поэтому нет необходимости использовать атрибут [`cortex_m_rt::entry`]. -[`app`]: ../../api/cortex_m_rtfm_macros/attr.app.html +[`app`]: ../../../api/cortex_m_rtic_macros/attr.app.html [`svd2rust`]: https://crates.io/crates/svd2rust -[`cortex_m_rt::entry`]: ../../api/cortex_m_rt_macros/attr.entry.html +[`cortex_m_rt::entry`]: ../../../api/cortex_m_rt_macros/attr.entry.html > **ОТСТУПЛЕНИЕ**: Некоторые из вас удивятся, почему мы используем ключевое слово `const` как > модуль, а не правильное `mod`. Причина в том, что использование атрибутов на > модулях требует feature gate, который требует ночную сборку. Чтобы заставить -> RTFM работать на стабильной сборке, мы используем вместо него слово `const`. +> RTIC работать на стабильной сборке, мы используем вместо него слово `const`. > Когда большая часть макросов 1.2 стабилизируются, мы прейдем от `const` к `mod` и в конце концов в атрибуту уровне приложения (`#![app]`). ## `init` @@ -32,13 +32,13 @@ Функция `init` запустится *с отключенными прерываниями* и будет иметь эксклюзивный доступ к периферии Cortex-M и специфичной для устройства периферии через переменные `core` and `device`, которые внедряются в область видимости `init` атрибутом `app`. -Не вся периферия Cortex-M доступна в `core`, потому что рантайм RTFM принимает владение -частью из неё -- более подробно см. структуру [`rtfm::Peripherals`]. +Не вся периферия Cortex-M доступна в `core`, потому что рантайм RTIC принимает владение +частью из неё -- более подробно см. структуру [`rtic::Peripherals`]. Переменные `static mut`, определённые в начале `init` будут преобразованы в ссылки `&'static mut` с безопасным доступом. -[`rtfm::Peripherals`]: ../../api/rtfm/struct.Peripherals.html +[`rtic::Peripherals`]: ../../api/rtic/struct.Peripherals.html Пример ниже показывает типы переменных `core` и `device` и демонстрирует безопасный доступ к переменной `static mut`. @@ -63,10 +63,10 @@ $ cargo run --example init `init`, `idle` запустится *с включенными прерываниями* и не может завершиться, поэтому будет работать бесконечно. -Когда функция `idle` определена, рантайм устанавливает бит [SLEEPONEXIT], после чего +Когда функция `idle` не определена, рантайм устанавливает бит [SLEEPONEXIT], после чего отправляет микроконтроллер в состояние сна после выполнения `init`. -[SLEEPONEXIT]: https://developer.arm.com/products/architecture/cpu-architecture/m-profile/docs/100737/0100/power-management/sleep-mode/sleep-on-exit-bit +[SLEEPONEXIT]: https://developer.arm.com/docs/100737/0100/power-management/sleep-mode/sleep-on-exit-bit Как и в `init`, переменные `static mut`будут преобразованы в ссылки `&'static mut` с безопасным доступом. @@ -85,7 +85,7 @@ $ cargo run --example idle Как Вы бы сделали с помощью библиотеки `cortex-m-rt`, Вы можете использовать атрибуты `interrupt` и `exception` внутри псевдо-модуля `app`, чтобы определить обработчики -прерываний и исключений. В RTFM, мы называем обработчики прерываний и исключений +прерываний и исключений. В RTIC, мы называем обработчики прерываний и исключений *аппаратными* задачами. ``` rust @@ -96,6 +96,6 @@ $ cargo run --example idle $ cargo run --example interrupt {{#include ../../../../ci/expected/interrupt.run}}``` -До сих пор программы RTFM, которые мы видели не отличались от программ, которые +До сих пор программы RTIC, которые мы видели не отличались от программ, которые можно написать, используя только библиотеку `cortex-m-rt`. В следующем разделе -мы начнем знакомиться с функционалом, присущим только RTFM. +мы начнем знакомиться с функционалом, присущим только RTIC. |
