Skip to content

Ilyat1337/stm32-rust-template

Repository files navigation

STM32 Rust Template

Описание

Шаблон проекта на языке программирования Rust для микроконтроллера STM32F103RBT6 (отладочная плата NUCLEO-F103RB).

The Embedded Rust Book

Примеры программ

Установка (Windows)

  1. Скачайте и установите Docker Desktop.
  2. Склонируйте репозиторий: git clone https://github.com/Ilyat1337/stm32-rust-template.git.
  3. Откройте папку в редакторе VSCode.
  4. Нажмите кнопку Reopen in container во всплывающем окне или выполните команду Rebuild and Reopen in Container (для открытия палитры команд используйте сочетание клавиш Ctrl + Shift + P).
  5. Дождитесь окончания загрузки. При первом запуске может потребоваться перезапустить редактор, чтобы корректно загрузились необходимые расширения.
  6. Чтобы удостовериться, что всё работает корректно, выполните команду Build (release) (Ctrl + Shift + P -> Run Task -> Build (release)). Сборка проекта должна завершиться успешно.

Команды

Проект содержит набор пользовательских команд, необходимых для сборки и запуска программы на микроконтроллере. Для запуска команды используйте Ctrl + Shift + P -> Run Task -> Название команды.

  • Build (debug) - собирает программу в режиме Debug. Подходит для отладки кода на микроконтроллере.
  • Build (release) - собирает программу в режиме Release. Подходит для запуска на микроконтроллере или использования в симуляторе Proteus.
  • Clean - удаляет артефакты сборки. Команду необходимо запускать перед сборкой, если был отредактирован файл memory.x.
  • Upload - загружает программу на микроконтроллер. Требует дополнительной настройки на стороне основной операционной системы (см. раздел Подключение платы к компьютеру).

Ко всем перечисленным командам также можно получить используя сочетание клавиш Ctrl + Shift + B.

Отладка

На данный момент отладка возможно только на реальном микроконтроллере (отладка в Proteus не поддерживается).

Установите точки остановы в редакторе, после чего запустите отладку нажатием клавиши F5. Максимальное количество точек остановы - 5. Отладка требует дополнительной настройки на стороне основной операционной системы (см. раздел Подключение платы к компьютеру).

Симуляция в Proteus

При создании проекта в Proteus выбирайте микроконтроллер STM32F103R6.

Скомпилируйте проект в режиме Release (команда Build (release)). В Proteus двойным щелчком мыши по микроконтроллеру откройте его конфигурацию. Выберите файл с программой. Он находится по следующему пути: target/thumbv7m-none-eabi/release/program.elf.

Подключение платы к компьютеру

Скачайте и установите драйвер для ST-Link.

Чтобы получить доступ к плате изнутри Docker-контейнера, будет использоваться программа usbipd. Для её установки в Windows откройте терминал и выполните следующую команду: winget install --interactive --exact dorssel.usbipd-win.

Настройка WSL

  1. Установите дистрибутив Ubuntu 22.04 в WSL. Для этого запустите терминал от имени администратора и выполните следующую команду: wsl --install -d Ubuntu-22.04. После её выполнения вы подключитесь к WSL. Если этого не произошло, выполните следующую команду: wsl -d Ubuntu-22.04.
  2. Сделайте Ubuntu 22.04 дистрибутивом по умолчанию: wsl.exe --set-default Ubuntu-22.04 (поскольку данная команда выполняется изнутри WSL, необходимо использовать расширение .exe).
  3. Выполните команды, необходимые для работы программы usbipd:
sudo apt update
sudo apt install linux-tools-virtual hwdata
sudo update-alternatives --install /usr/local/bin/usbip usbip `ls /usr/lib/linux-tools/*/usbip | tail -n1` 20
  1. Отключитесь от WSL: exit.

Настройка Docker Desktop

  1. Откройте Docker Desktop.
  2. Зайдите в настройки.
  3. Откройте вкладку General. Удостоверьтесь, что около пункта Use the WSL 2 based engine установлена галочка.
  4. Откройте вкладку Resources -> WSL integration. Установите галочку около пункта Enable integration with my default WSL distro.
  5. Нажмите кнопку Apply & restart.

Подключение платы к Docker-контейнеру

Следующие действия необходимо выполнять каждый раз перед открытием проекта в VSCode, если вы планируете работать с платой (загружать или отлаживать программу).

  1. Подключите плату к компьютеру по USB кабелю.
  2. Откройте терминал в Windows (в первый раз необходимо запустить его от имени администратора).
  3. Выполите команду usbipd list. Среди списка устройств найдите устройство с названием ST-Link Debug, запомните его BUSID.
  4. Выполните команду usbipd bind --busid=<BUSID>.
  5. Выполните команду usbipd attach --wsl --busid=<BUSID>.

Чтобы удостовериться, что всё работает корректно, откройте проект в VSCode, подключитесь к Dev Container. Выполните команду Upload. Программа должна успешно загрузиться на микроконтроллер.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published