Как программировать платы на основе STM32 с помощью утилиты ST-Link?
STM32F429I-DISCO
STM324x9I-EVAL
STM32469I-DISCO
STM32469I-EVAL
STM32F746G-DISCO
STM32756G-EVAL
STM32F769I-EVAL
STM32F769-DISCO
ST-Link Utility также может быть использован для программирования пользовательского оборудования с использованием , например ST-Link / V2 программиста .
Генерация Hex-файлов
ST-Link Utility может программировать файлы .hex и .bin. Они автоматически генерируются Make-файлами ARM gcc, поставляемыми с проектом TouchGFX. IAR и Keil IDE настроены для преобразования выходных файлов .elf в файл .hex.
- Для проектов IAR дополнительный вывод преобразуется (
intel extended
форматируется) вDebug\Exe\application.hex
- Для проектов Keil выполняется следующий шаг после сборки: в
fromelf --only=ExtFlashSection --bin --output=binary .\Objects\keil5-2.axf
результате получается файл .hex:Objects\keil5-2.hex
Перепрошивка с использованием графического интерфейса ST-Link Utility
Процесс, описанный в этой статье, описывает, как использовать утилиту ST-Link для программирования внутренней и внешней флэш-памяти плат ST. Для внутренней вспышки ST-Link автоматически определит тип подключенного устройства. Однако для внешней вспышки внешний флэш-загрузчик должен быть настроен вручную. ST-Link предлагает поддержку для каждого флэш-чипа на платах, поддерживаемых TouchGFX.
При прошивке двоичного файла с помощью утилиты ST-Link вы должны указать правильный флэш-адрес вручную. Этот адрес должен совпадать с адресом, используемым в скрипте компоновщика. По умолчанию это первый адрес во флэш-памяти. При перепрошивке файла .hex утилита ST-Link найдет правильный адрес в файле .hex.
ST-Link автоматически определит диапазоны памяти для программирования и выберет подходящие флэш-загрузчики для использования, если так настроено, при открытии .hex-файла. В приведенном ниже примере target.hex
приложение было открыто в ST-Link, и были обнаружены диапазоны как внутренней, так и внешней флэш-памяти.
[target.hex] opened successfully.
Address Ranges [0x08000000 0x08010364] [0x90000000 0x9000CA28]
Как упоминалось ранее, внутренняя флэш-память всегда распознается ST-Link для микроконтроллеров STM32, но флэш-загрузчик для диапазонов, начинающихся с 0x90000000, должен быть настроен вручную. В приведенном ниже примере мы настроим внешнюю вспышку для STM32F746G-DISCO
платы:
- Выберите « Добавить внешний загрузчик » в меню « Внешний загрузчик ».
- Выберите соответствующий флэш-загрузчик в списке поддерживаемых плат (т.е.
MT25QL512A_STM32756G-EVAL
дляSTM32756G-EVAL
иN25Q128A_STM32F746G-DISCO
дляSTM32F746G-DISCO
) и выберите Подтвердить . - Откройте .hex, который вы хотите мигать: диапазоны адресов автоматически определяются ST-Link. Как упоминалось ранее, разные двоичные файлы создаются IAR, Keil и gcc соответственно и могут использоваться ST-Link.
- Выберите « Program » в меню « Target » и начните загрузку.
Ниже приведен полный список внешних флэш-загрузчиков, которые будут использоваться для плат ST, поддерживаемых TouchGFX (ST-Link версия 4.2):
доска | Флеш загрузчик |
---|---|
STM32F429I-DISCO | Только внутренняя вспышка |
STM324x9I-EVAL | M29W128GL_STM324x9I-EVAL |
STM32469I-DISCO | N25Q128A_STM32469I-DISCO |
STM32469I-EVAL | MT25QL512A_STM32469I-EVAL |
STM32F746G-DISCO | N25Q128A_STM32F746G-DISCO |
STM32756G-EVAL | MT25QL512A_STM32756G-EVAL |
STM32F769I-EVAL | MT25QL512A_STM32769I-EVAL |
STM32F769I-DISCO | MX25L512G_STM32769I-DISCO |
STM32L4R9-EVAL | MX25LM51245G_STM32L4R9I-EVAL |
STM32L4R9-DISCO | MX25LM51245G_STM32L4R9I-DISCO |
Использование Flash make
(ST-Link CLI)
Кроме того, вы можете создать и прошить приложение (используя ST-Link CLI) с помощью любой makefile
(т.е. app/example/button_example/target/ST/STM32F746G-DISCO/gcc/Makefile
), используя следующую команду:
$ make flash
Makefile знает, какую внешнюю флэш-память (см. Таблицу выше) использовать для каждой из поддерживаемых плат ST. ST-LINK имеет встроенную поддержку внутренней вспышки для каждой платы, и вы можете прошить только внутреннюю вспышку, используя следующую команду:
$ make intflash
В некоторых случаях вы не сможете запрограммировать свою доску указанным выше способом из-за следующей ошибки:
STLink USB communication error
Error during erase operation.
В этом случае вы можете попытаться отключить драйвер устройства USB для этой конкретной платы в диспетчере устройств Windows, чтобы устранить проблему.
Обратная связь
Интересуют вопросы реализации алгоритмов, программирования, выбора электроники и прочая информация, постараюсь осветить в отдельных статьях
пишите мне на netdm@mail.ru
Добавить комментарий