Skip to content

Ilyat1337/stm32-rust-template

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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