STM Урок 50 Устанавливаем System Workbench for STM32



Урок 50

 

Устанавливаем System Workbench for STM32

 

Сегодня мы с вами попытаемся воспользоваться бесплатной средой программирования System Workbench for STM32.

Пока я сам, конечно, не до конца разобрался со всеми тонкостями использования данной среды, но, думаю, разобраться придётся и удастся. Ибо деваться нам некуда.

Вы конечно можете сказать на это: «Но у нас же есть Keil!»

Ан нет. Если версия ПО ARM Keil у нас бесплатная, то мы не сможем собрать проект, если на выходе размер прошивки у нас превысит размер 32 килобайта.

Некоторые, конечно, пойдут по пути обхода легальных путей приобретения данного ПО, но я не могу себе такое позволить, так как я даю уроки в YouTube. А мы все прекрасно знаем, как Google относится к нарушению авторских прав. Церемониться он не будет. В лучшем случае мне выпишет страйк, а в худшем прихлопнет канал. Это вовсе не в моих, а тем более и не в ваших интересах.

Поэтому у нас два пути. Выбирать полностью бесплатную среду программирования, либо приобретать Keil. Но 8000 евро есть не у каждого, у меня точно нет, поэтому остается путь единственный.

Возможно, конечно, ещё поискать что-то. Но я уже поискал, и не нашел ничего кроме System Workbench for STM32, основанного на бесплатной среде программирования Eclipse. Также это позволит нам потренироваться вообще со средой Eclipse, к которой существует масса плагинов и пакетов, что также позволит нам поиграться с нашими контроллерами под операционной системой Linux. Это, конечно, очень далёкие планы, но в глубине моей душе они уже бродят.

Специалисты ST Microelectronics также пришли к выводу, я также к ним охотно присоединяюсь, что в таком случае целесообразно использовать System Workbench в связке с Eclipse, ибо они бесплатны. Ну и также существует масса примеров в репозитории, которые написаны и для этой среды разработки.

Поэтому начнем устанавливать эти компоненты.

Вводим, как всегда, в поисковой строке st.com вот это «SW4STM32» и скачиваем данное ПО. Для этого st.com переместит нас на http://www.openstm32.org/ к хозяину IDE. Скачиваем System Workbench for STM32 installer для своей операционной системы. Устанавливаем, запускаем, указываем рабочее пространство для проектов.

Давайте сначала попробуем собрать и прошить готовый проект. Для испытаний возьмём нашу любимую STM32F4-Discovery.

Зайдём в папку Диск:\Users\Пользователь\STM32Cube\Repository\STM32Cube_FW_F4_VX.XX.X (версия у каждого своя, диск и пользователь также  у всех свой). С папки «Drivers» в данной папке снимем атрибут «только для чтения».

Если у Вас в пути к проекту будет присутствовать хотя бы одна нелатинская буква, то ничего не получится. Скопировать проект тоже не вариант, так как он ссылается на библиотеки, расположенные в других папках по относительным путям. Если Вы в Keil загружали примеры, то они у Вас находятся по пути «Диск:\ Keil_v5\ARM\Pack\Keil\STM32F4xx_DFP». Можете использовать оттуда.

Затем зайдем в папку «Projects». Уже в этой папке зайдём в папку «STM32F4-Discovery». Там зайдём ещё в одну папку, например в «GPIO», а уже в ней с папки «GPIO_EXTI» снимем аттрибут «только для чтения».

Вернёмся в запущенный System Workbench и нажмем слева правой кнопкой мыши и выбираем «Import».

 

image00

 

 

Выбираем Existing Projects Into Workbench. Далее в «Select root directory» указываем папку с проектом «Диск:\Users\Пользователь\STM32Cube\Repository\STM32Cube_FW_F4_VX.XX.X\Projects\STM32F4-Discovery\Examples\BSP\SW4STM32» и жмем Finish. Проект появился у нас в рабочем пространстве слева.

 

image02

 

Откроем какой-нибудь файл в проекте, например main.c. Потому что, если у нас будет много проектов, то среда может не понять, какой мы именно проект будем компилировать, а если фокус будет находиться в файле нужного проекта, то среда им и будет заниматься.

Теперь попробуем скомпилировать проект. Нажимаем меню Build -> Build Project. (нажмите на картинку для увеличения)

 

image01

 

Проект у нас должен собраться. Но так как у меня была кириллица в пути к файлам, то скомпилировать проект не удалось, и в этом случае мы попадаем в ошибку.

 «arm-none-eabi-gcc: error: C:/Users/TырфхыхЎ/STM32Cube/Repository/STM32Cube_FW_F4_V1.13.0/Projects/STM32F4-Discovery/Examples/BSP/Src/main.c: No such file or directory

В таком случае удалим проект из дерева проектов и загрузим из папки «Keil_v5».

Таким же образом попытаемся его собрать. Проект теперь собрался

 

image04

 

 

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

В панели инструментов жмём треугольник справа от кнопки «Debug», там выбираем пункт меню «Debug As -> Ac6 STM32 C / C++ Application».

 

image03

 

Выбираем программатор и соглашаемся.

Если что-то будет не так и будут ошибки, то необходимо будет зайти в свойства проекта. Щелкаем правой кнопкой мыши по самому верхнему уровню дерева проекта и выбираем «Properties»

 

image06

 

Там заходим в «Run/Debug Settings» и удаляем оттуда конфигурацию.

 

image05

 

Пробуем опять через панель инструментов «Debug As -> Ac6 STM32 C / C++ Application» запустить отладку. Теперь должно всё пойти нормально.

 

image08

 

Соглашаемся с диалогом и попадаем в отладку. Жмем кнопку Resume (F8) в панели инструментов и проект должен будет прошиться

image07

 

Останавливаем отладку кнопкой Terminate

 

image11

 

Чтобы прошивка продолжала работать в контроллере, перезагружаем его кнопкой на отладочной плате.

Возвращаемся из отладки в основное окно (C / C++)

 

image09

 

Теперь можно спокойно работать с проектом и прошивать уже через обычный запуск проекта на выполнение

 

image10

 

 

Предыдущий урок Программирование МК STM32 Следующий урок

 

 

Купить отладочную плату можно здесь STM32F4-DISCOVERY

 

 

Смотреть ВИДЕОУРОК

 

STM32 Устанавливаем System Workbench for STM32

11 комментариев на “STM Урок 50 Устанавливаем System Workbench for STM32
  1. Наиль:

    Здравствуйте! Пробовал скомпилировать проект для discovery. Все сделал как у Вас написано. Выдает сообщение-
    "Nothing to build for project STM32VL-Discovery".Если беру проект из папки для 

    EVAL ,то все компилируется нормально.

    • Здравствуйте!

      Видимо, что-то с версиями. Обновляйте куб, репозиторий и workbench, причем если Windows новее XP, то включайте Internal Builder

      • Наиль:

        Доброе утро! Спасибо за ответ.винда 10я.программы установлены неделю назад с сайта st. Я заметил что в папках для eval есть подпапки проектов sw. Вот из них проекты компилируется. А в папках для discavery таких подпапок нет(странно мне сие).Среда видит в папках discavery  только проекты trustudio. Их не получится компилировать?

  2. Aleshka:

    Мне дополнитеьно понадобилось подправить конфигруацию отладки, в методе сброса установить Software system reser.  Без этого ни отладка ни прост исполнение на работало. 

  3. Evgeni:

    Здравствуйте! Как выставить правильно програматор? Из куба прект прыгает прямо в System Workbench, все обновлено. Компилится. А прошить не могу, и отладки нет соответственно(

    Вот что пишет System Workbench:

    Open On-Chip Debugger 0.10.0-dev-00302-gc211ca5-dirty (2017-07-03-10:41)
    Licensed under GNU GPL v2
    For bug reports, read
        http://openocd.org/doc/doxygen/bugs.html
    srst_only separate srst_nogate srst_open_drain connect_assert_srst
    Info : The selected transport took over low-level target control. The results might differ compared to plain JTAG/SWD
    adapter speed: 950 kHz
    adapter_nsrst_delay: 100
    Info : clock speed 950 kHz
    Info : STLINK v2 JTAG v24 API v2 SWIM v4 VID 0x0483 PID 0x3748
    Info : vid/pid are not identical: 0x0483/0x374B 0x0483/0x3748
    Info : using stlink api v2
    Info : Target voltage: 3.224068
    Info : STM32F103C8Tx.cpu: hardware has 6 breakpoints, 4 watchpoints
    Info : accepting 'gdb' connection on tcp/3333
    adapter speed: 950 kHz
    Error: timed out while waiting for target halted
    TARGET: STM32F103C8Tx.cpu — Not halted
    in procedure 'reset'
    in procedure 'ocd_bouncer'

  4. Evgeni:

    Нашел! Источник: https://habrahabr.ru/post/324646/

    В файле Base_05 Debug.CFG который генерируется кубом, меняем строчку где изначально,(" Base_05"-это имя проекта):

    # use hardware reset, connect under reset
    # connect_assert_srst needed if low power mode application running (WFI…)
    reset_config srst_only srst_nogate connect_assert_srst
    set CONNECT_UNDER_RESET 1

    Удалил последнюю строку, а предпоследнюю оставил такую:

    reset_config none

    Сохраняем. И нужно убедиться что в настройках Debug в System Workbench указан именно этот файл xxx.CFG. Если не он, то указываем к нему путь. Все, отладка работает!

     

  5. Calligraff:

    А мне почему-то не помогает 🙁

  6. Serge:

    А ещё есть STM32CubeIDE.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*