Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Модуль 1.2 — Введение

Упражнение 1.2.1: Настройка окружения

В этом файле описано, как установить инструменты, которые понадобятся на курсе.

Все эти инструменты доступны для Linux, macOS и Windows. Они нужны, чтобы писать и компилировать код на Rust, а также для удалённого наставничества. Важно: выполните эти инструкции до начала первого занятия. Если у вас возникли проблемы с установкой, заранее свяжитесь с преподавателями. Мы бы не хотели тратить на проблемы с установкой время первого занятия.

Rust и Cargo

Сначала нам понадобится rustc, стандартный компилятор Rust. rustc обычно не вызывают напрямую, а работают через cargo, менеджер пакетов Rust. rustup устанавливает rustc и cargo.

Здесь всё просто: перейдите на https://rustup.rs и следуйте инструкциям. Убедитесь, что вы устанавливаете последний стабильный тулчейн по умолчанию. После установки выполните

rustc -V && cargo -V

Вывод должен выглядеть примерно так:

rustc 1.79.0 (129f3b996 2024-06-10)
cargo 1.79.0 (ffa9cf99a 2024-06-03)

С помощью Rustup можно устанавливать тулчейны и компоненты Rust. Подробнее:

Rustfmt и Clippy

Чтобы не спорить о стиле кода, Rust предоставляет собственный инструмент форматирования, Rustfmt. Мы также будем использовать Clippy, набор линтов для анализа кода, который помогает ловить распространённые ошибки. Clippy — очень полезный помощник при изучении Rust. И Rustfmt, и Clippy по умолчанию устанавливаются вместе с Rustup.

Чтобы отформатировать проект с помощью Rustfmt, выполните:

cargo fmt

Чтобы запустить Clippy:

cargo clippy

Подробнее:

Visual Studio Code

На курсе мы будем писать код в Visual Studio Code (VS Code). Конечно, вы можете использовать любой редактор, но если возникнут проблемы, мы не сможем гарантированно помочь с его настройкой. Кроме того, VS Code позволяет совместно работать и проводить наставничество во время дистанционных занятий.

Инструкции по установке: https://code.visualstudio.com/.

Понадобится несколько расширений. Первое — Rust-Analyzer. Инструкции по установке: https://marketplace.visualstudio.com/items?itemName=rust-lang.rust-analyzer. Rust-Analyzer много помогает при разработке и незаменим на старте.

Второе расширение — CodeLLDB. Оно позволяет отлаживать код Rust прямо в VS Code. Инструкции: https://marketplace.visualstudio.com/items?itemName=vadimcn.vscode-lldb.

Если вы проходите курс дистанционно, установите также расширение Live Share. С его помощью мы будем делиться кодом и помогать во время дистанционных занятий. Инструкции по установке: https://marketplace.visualstudio.com/items?itemName=MS-vsliveshare.vsliveshare

Подробнее:

Совет

В репозитории много проектов на Rust, и из-за сложной структуры Rust-Analyzer не может найти их автоматически.

Поэтому мы указали проекты вручную в файле .vscode/settings.json. Чтобы снизить нагрузку на компьютер, можно закомментировать проекты, которые не используются на курсе.

Git

На курсе понадобится система контроля версий Git. Если Git ещё не установлен, инструкции здесь: https://git-scm.com/book/en/v2/Getting-Started-Installing-Git. Если вы новичок в Git, пригодится вводный материал GitHub https://docs.github.com/en/get-started/using-git/about-git, а также видео о работе с Git в VS Code: https://www.youtube.com/watch?v=i_23KUAEtUM.

Подробнее: https://www.youtube.com/playlist?list=PLg7s6cbtAD15G8lNyoaYDuKZSKyJrgwB-

Код курса

Когда всё установлено, склонируйте репозиторий с исходным кодом через Git. Репозиторий находится здесь: https://github.com/tweedegolf/rust-training.

Инструкции по клонированию: https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls

Пробный запуск

Когда код у вас на машине, перейдите в его каталог в терминале и выполните:

cd exercises/1-course-introduction/1-introduction/1-setup-your-installation
cargo run

В первый раз эта команда может выполняться долго: Cargo сначала загрузит индекс крейтов из реестра. Затем он соберёт и запустит пакет intro, который находится в exercises/1-course-introduction/1-introduction/1-setup-your-installation. Если всё прошло успешно, вы увидите такой вывод:

   Compiling intro v0.1.0 ([/path/to/rust-workshop]/exercises/1-course-introduction/1-introduction/1-setup-your-installation)
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.15s
     Running `target/debug/intro`
🦀 Hello, world! 🦀
You've successfully compiled and run your first Rust project!
X: 2; Y: 2

Если Rust-Analyzer настроен правильно, над функцией main в exercises/1-course-introduction/1-introduction/1-setup-your-installation/src/main.rs появится кнопка «▶️ Run». Если установлен CodeLLDB, рядом с ней появится кнопка «Debug», которая запускает отладочную сессию. Попробуйте поставить точку останова, кликнув по номеру строки (появится красный кружок), и пошагово пройтись по коду: через функции, в них и из них, с помощью кнопок управления. Значения переменных можно посмотреть, наведя на них курсор во время паузы, или раскрыв раздел «Local» в панели «Variables» слева во время отладки.

Инструкции для модуля по FFI

Этот раздел нужен, только если вы проходите один из модулей о FFI в Rust.

Для работы с FFI нам понадобится скомпилировать C-код, поэтому нужен установленный компилятор C. В упражнениях мы используем clang.

Необходимое условие: вызов clang в терминале должен работать. Если не работает, следуйте инструкциям для вашей платформы ниже.

Linux

Для Debian и его производных (например, Ubuntu):

sudo apt update
sudo apt install clang

Для Arch:

sudo pacman -S clang

Для Fedora:

sudo dnf install clang

Windows

Обязательно выберите опцию добавления установки в PATH.

С помощью winget:

winget install -i -e --id LLVM.LLVM

С помощью Chocolatey:

choco install llvm

Ручная установка:

  • Перейдите на страницу релизов: https://github.com/llvm/llvm-project/releases
  • Откройте один из свежих релизов
  • Найдите файл LLVM-[ВЕРСИЯ]-win64.exe и скачайте его
  • Запустите установщик

macOS

С помощью Homebrew:

brew install llvm

Затем добавьте LLVM в PATH, например так:

echo 'export PATH="$(brew --prefix llvm)/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc

Инструкции для встраиваемых систем

Этот раздел нужен, только если вы проходите один из модулей о встраиваемом Rust.

Аппаратура

Мы будем использовать BBC micro:bit V2. Если он у вас уже есть, отлично; если нет, мы привезём его с собой.

Понадобится также кабель Micro-USB, но уверены, что он у вас найдётся.

Проверьте, что всё на месте. Если чего-то не хватает, свяжитесь с нами.

Программное обеспечение

Теперь установим инструменты для прошивки микроконтроллера и просмотра кода.

Установите тулчейн thumbv7em-none-eabihf командой:

rustup target add thumbv7em-none-eabihf

Также установим пару инструментов для анализа бинарников:

rustup component add llvm-tools
cargo install cargo-binutils

Теперь установим probe-rs. Следуйте инструкции по установке. Probe-rs работает с отладочным интерфейсом micro:bit и позволяет прошивать приложение, выводить лог-сообщения, ставить точки останова и читать память устройства.

Для Linux команда такая:

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/probe-rs/probe-rs/releases/latest/download/probe-rs-tools-installer.sh | sh

Если вы работаете в Linux, нужно обновить правила udev. В Ubuntu или Fedora выполните следующие команды в папке с тренингом, которую вы только что клонировали:

sudo cp 99-microbit-v2.rules /etc/udev/rules.d
sudo udevadm control --reload-rules
sudo udevadm trigger

Может оказаться, что probe-rs находит два отладочных интерфейса. Такое бывает в Windows. В этом случае откройте .cargo/config.toml и измените runner так, чтобы он указывал на конкретный отладчик, который нужно использовать. Значения должны совпадать с тем, что probe-rs показывает для одного из интерфейсов. Не уверены? Выполните probe-rs list, чтобы получить список всех подключённых отладчиков.

Пробный запуск

Перед началом проверим оборудование. Мы проверим микроконтроллер nRF52833 и датчик движения LSM303AGR, которые есть на micro:bit V2. Убедитесь, что у вас последняя версия исходного кода тренинга.

Проверка оборудования

Подключите micro:bit V2 к компьютеру, включите его и выполните

cd ./exercises/1-course-introduction/1-introduction/2-embedded
cargo run --release

Если всё работает правильно, на дисплее должны появиться показания акселерометра. Если нет, не переживайте и свяжитесь с нами.

Документация

Даташиты, руководства и схемы компонентов, которые мы используем в модулях по встраиваемым системам.

BBC micro:bit V2

nRF52833

LSM303AGR