aboutsummaryrefslogtreecommitdiff
path: root/book/ru/src/by-example/new.md
blob: cba84c161557c41f1b7f04621ac9edabe7c67543 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
# Создание нового проекта

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

1. Создайте экземпляр из шаблона [`cortex-m-quickstart`].

[`cortex-m-quickstart`]: https://github.com/rust-embedded/cortex-m-quickstart#cortex-m-quickstart

``` console
$ # например используя `cargo-generate`
$ cargo generate \
    --git https://github.com/rust-embedded/cortex-m-quickstart \
    --name app

$ # следуйте остальным инструкциям
```

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

[`svd2rust`]: https://crates.io/crates/svd2rust

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

[`lm3s6965`]: https://crates.io/crates/lm3s6965

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

``` console
$ cargo add lm3s6965 --vers 0.1.3

$ rm memory.x build.rs
```

3. Добавьте библиотеку `cortex-m-rtic` как зависимость, и если необходимо,
включите опцию `timer-queue`.

``` console
$ cargo add cortex-m-rtic --allow-prerelease --upgrade=none
```

4. Напишите программу RTIC.

Здесь я буду использовать пример `init` из библиотеки `cortex-m-rtic`.

``` console
$ curl \
    -L https://github.com/japaric/cortex-m-rtic/raw/v0.4.0-beta.1/examples/init.rs \
    > src/main.rs
```

Этот пример зависит от библиотеки `panic-semihosting`:

``` console
$ cargo add panic-semihosting
```

5. Соберите его, загрузите в микроконтроллер и запустите.

``` console
$ # ПРИМЕЧАНИЕ: Я раскомментировал опцию `runner` в `.cargo/config`
$ cargo run
{{#include ../../../../ci/expected/init.run}}```