1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/lupyuen-stm32-blue-pill-rust

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Rust для STM32 Blue Pill с Visual Studio Code

Прочитайте статью: https://medium.com/@ly.lee/coding-the-stm32-blue-pill-with-rust-and-visual-studio-code-b21615d8a20

Основано на:

  1. Книге Хорхе Апарисио Discovery: https://japaric.github.io/discovery/

  2. HAL для Blue Pill от Хорхе Апарисио: https://japaric.github.io/stm32f103xx-hal/stm32f103xx_hal/

  3. Quickstart для Cortex-M от Хорхе Апарисио: https://docs.rs/cortex-m-quickstart/0.2.7/cortex_m_quickstart/

  4. Блоге Нериюса Арлаускаса Embedded Rust: http://nercury.github.io/rust/embedded/experiments/2018/04/29/rust-embedded-01-discovery-vl-flipping-bits.html


Подключение STM32 Blue Pill к ST-Link V2 USB Debugger

STM32 Blue Pill ST-Link V2 USB Debugger
V3 [Red] 3.3V (Pin 8)
IO [Orange] SWDIO (Pin 4)
CLK [Brown] SWDCLK (Pin 2)
GND [Black] GND (Pin 6)

Установка и использование

Установка необходимых компонентов

  • Для Ubuntu: Установите необходимые пакеты (arm-none-eabi-gdb устарел)

    sudo apt install pkg-config cmake libssl-dev zlib1g-dev gdb-multiarch curl git
    
    sudo ln -s /usr/bin/gdb-multiarch /usr/bin/arm-none-eabi-gdb

Установите ARM Cross-Compiler и Linker

  • Для Windows:

    1. Установите ARM Cross-Compiler и Linker с веб-сайта разработчика ARM:
      https://developer.arm.com/open-source/gnu-toolchain/gnu-rm/downloads

    2. Прокрутите страницу вниз, пока не найдёте
      Windows 32-bit File: gcc-arm-none-eabi-…-win32.exe
      Нажмите Download

    3. Выберите опцию «Добавить путь к переменной среды» на последнем этапе установки.

    4. В проводнике Windows перейдите в папку
      C:\Program Files (x86)\GNU Tools Arm Embedded\7 2018-q2-update\bin
      (Часть 7 2018-q2-update может отличаться для вашей установки)

    5. Скопируйте файл arm-none-eabi-ar.exe в ar.exe
      Этот обходной путь с ar.exe является временным, пока мы не найдём решение проблемы сборки Rust для Windows

  • Для Ubuntu:

    sudo apt install binutils-arm-none-eabi gcc-arm-none-eabi

Проверьте установку ARM Cross-Compiler

  1. Откройте новый командный терминал Windows или Ubuntu (не Windows Bash) и введите

    arm-none-eabi-gcc -v
  2. Вы должны увидеть что-то вроде version 5.4.1 20160919 (release)

  3. Если вы не видите ошибок, закройте командную строку.

  4. Если вы видите ошибку, обновите переменную среды PATH, чтобы она включала папку для файлов ARM ".exe".

Установите OpenOCD для отладки Blue Pill

  • Для Windows:

    1. Загрузите OpenOCD (для отладки Blue Pill) с неофициального веб-сайта выпуска OpenOCD:
      https://github.com/gnu-mcu-eclipse/openocd/releases
      Найдите gnu-mcu-eclipse-openocd-…-win64.zip

    2. Распакуйте загрузку OpenOCD и скопируйте файлы OpenOCD в c:\openocd, чтобы файл opencd.exe находился в папке c:\openocd\bin

  • Для Ubuntu:

    sudo apt install openocd

Только для Windows: установите драйвер USB-устройства ST-Link

  1. Только для Windows: загрузите драйвер USB-устройства ST-Link с веб-сайта драйвера ST-Link (требуется регистрация по электронной почте):
    http://www.st.com/en/embedded-software/stsw-link009.html

  2. Пролистайте вниз и нажмите кнопку Get Software

  3. Распакуйте скачанный файл ST-Link. Дважды щёлкните по файлу установщика dpinst_amd64.exe.

Только для Windows: установка инструментов сборки

  1. Только для Windows: установите Build Tools for Visual Studio 2017 (необходимо для rustup) с
    https://aka.ms/buildtools

  2. Под «Workloads» выберите Visual C++ Build Tools.
    Внимание: размер загрузки составляет 1,1 ГБ. ELF32

Данные: дополнение до двух, прямой порядок байтов.
Версия: 1 (текущая).
ОС/ABI: UNIX 1. System V.
ABI Version: 0.
Тип: EXEC (исполняемый файл).
Машина: ARM.
Версия: 0x1.
Адрес точки входа: 0x8000cfb.
Начало заголовков программы: 52 (байта в файле).
Начало заголовков разделов: 258948 (байт в файле).
Флаги: 0x5000200, версия 5 EABI, ABI с плавающей точкой soft-float.
Размер этого заголовка: 52 байта.
Размер заголовков программ: 32 байта.
Количество заголовков программ: 3.
Размер заголовков разделов: 40 байт.
Количество заголовков разделов: 21.
Индекс таблицы строк заголовков разделов: 20.

Отладка из командной строки

  1. Запустите OpenOCD на терминале. Скрипты находятся по адресу /usr/share/openocd/scripts.

    — Для Windows:

     ```cmd
     c:\openocd\bin\openocd -f interface/stlink-v2.cfg -f target/stm32f1x.cfg
     ```

    — Для Ubuntu:

     ```bash
     openocd -f interface/stlink-v2.cfg -f target/stm32f1x.cfg
     ```
  2. Вы должны увидеть что-то вроде:

    GNU MCU Eclipse 64-bits Open On-Chip Debugger 0.10.0+dev-00487-gaf359c18 (2018-05-12-19:30)
    Licensed under GNU GPL v2
    For bug reports, read http://openocd.org/doc/doxygen/bugs.html
    WARNING: interface/stlink-v2.cfg is deprecated, please switch to interface/stlink.cfg
    Info : auto-selecting first available session transport "hla_swd". To override use 'transport select <transport>'.
    ...
  3. Начните сеанс отладки в другом командном окне:

    arm-none-eabi-gdb -x loader.gdb target/thumbv7m-none-eabi/release/stm32-blue-pill-rust
  4. Общие команды GDB:

    • step: Выполнить текущую строку исходного кода, войти в функции, если они есть. То же самое, что и команда step into в Visual Studio Code.

    • next: Выполнить текущую строку исходного кода, не входить в функции. То же, что и команда step over в Visual Studio Code.

    • where: Показать трассировку стека.

    • where full: Показать трассировку стека с локальными переменными.

    Дополнительные команды: https://darkdust.net/files/GDB%20Cheat%20Sheet.pdf


Настройка Visual Studio Code

Настройка пользовательского интерфейса Visual Studio Code была выполнена с помощью следующих файлов:

Конфигурация задач — .vscode/tasks.json

Определяет следующие задачи:

  • Connect: Запускает OpenOCD. Использует разные команды для Ubuntu и Windows (opencd против c:\opencd\bin\opencd).

  • Build: Выполняет cargo build --release. Настроен как задача сборки по умолчанию.

  • Remove: Выполняет cargo clean

  • Check: Выполняет cargo check --release

Конфигурация отладчика — .vscode/launch.json

Запускает следующую команду при запуске отладчика:

arm-none-eabi-gdb -x loader.gdb target/thumbv7m-none-eabi/release/stm32-blue-pill-rust

Эта команда заставляет gdb выполнить скрипт loader.gdb в начале отладки.

Обязательный параметр target/thumbv7m-none-eabi/release/stm32-blue-pill-rust является избыточным. Цель указана снова в loader.gdb.

Скрипт отладчика — loader.gdb

Это GDB. Как определено в лицензии Apache-2.0, предоставляется двойная лицензия, как указано выше, без каких-либо дополнительных условий.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Раст для STM32 Blue Pill с Visual Studio Code. Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/lupyuen-stm32-blue-pill-rust.git
git@api.gitlife.ru:oschina-mirror/lupyuen-stm32-blue-pill-rust.git
oschina-mirror
lupyuen-stm32-blue-pill-rust
lupyuen-stm32-blue-pill-rust
master