aboutsummaryrefslogtreecommitdiff
path: root/ru/src/by-example/tips.md
diff options
context:
space:
mode:
Diffstat (limited to 'ru/src/by-example/tips.md')
-rw-r--r--ru/src/by-example/tips.md63
1 files changed, 0 insertions, 63 deletions
diff --git a/ru/src/by-example/tips.md b/ru/src/by-example/tips.md
deleted file mode 100644
index ab0f1b5..0000000
--- a/ru/src/by-example/tips.md
+++ /dev/null
@@ -1,63 +0,0 @@
-# Советы и хитрости
-
-## Обобщенное программирование (Generics)
-
-Ресурсы, совместно используемые двумя или более задачами, реализуют трейт `Mutex`
-во *всех* контекстах, даже в тех, где для доступа к данным не требуются
-критические секции. Это позволяет легко писать обобщенный код оперирующий
-ресурсами, который можно вызывать из различных задач. Вот такой пример:
-
-``` rust
-{{#include ../../../examples/generics.rs}}
-```
-
-``` console
-$ cargo run --example generics
-{{#include ../../../ci/expected/generics.run}}```
-
-Это также позволяет Вам изменять статические приоритеты задач без
-переписывания кода. Если Вы единообразно используете `lock`-и для доступа
-к данным в разделяемых ресурсах, тогда Ваш код продолжит компилироваться,
-когда Вы измените приоритет задач.
-
-## Запуск задач из ОЗУ
-
-Главной целью переноса описания программы на RTFM в атрибуты в
-RTFM v0.4.x была возможность взаимодействия с другими атрибутами.
-Напримерe, атрибут `link_section` можно применять к задачам, чтобы разместить
-их в ОЗУ; это может улучшить производительность в некоторых случаях.
-
-> **ВАЖНО**: Обычно атрибуты `link_section`, `export_name` и `no_mangle`
-> очень мощные, но их легко использовать неправильно. Неверное использование
-> любого из этих атрибутов может вызвать неопределенное поведение;
-> Вам следует всегда предпочитать использование безопасных, высокоуровневых
-> атрибутов вокруг них, таких как атрибуты `interrupt` и `exception`
-> из `cortex-m-rt`.
->
-> В особых случаях функций RAM нет безопасной абстракции в `cortex-m-rt`
-> v0.6.5 но создано [RFC] для добавления атрибута `ramfunc` в будущем релизе.
-
-[RFC]: https://github.com/rust-embedded/cortex-m-rt/pull/100
-
-В примере ниже показано как разместить высокоприоритетную задачу `bar` в ОЗУ.
-
-``` rust
-{{#include ../../../examples/ramfunc.rs}}
-```
-
-Запуск этой программы произведет ожидаемый вывод.
-
-``` console
-$ cargo run --example ramfunc
-{{#include ../../../ci/expected/ramfunc.run}}```
-
-Можно посмотреть на вывод `cargo-nm`, чтобы убедиться, что `bar` расположен в ОЗУ
-(`0x2000_0000`), тогда как `foo` расположен во Flash (`0x0000_0000`).
-
-``` console
-$ cargo nm --example ramfunc --release | grep ' foo::'
-{{#include ../../../ci/expected/ramfunc.grep.foo}}```
-
-``` console
-$ cargo nm --example ramfunc --release | grep ' bar::'
-{{#include ../../../ci/expected/ramfunc.grep.bar}}```