Микроконтроллеры STM32 обратили на себя моё внимание двумя новостями. Первая новость была о выпуске платы STM32F4DISCOVERY, которая оснащена аудио-кодеком и микроконтроллером с ядром ARM Cortex-M4 с набором DSP-команд. Вторая новость была о выпуске платы Olimexino-STM32, представляющую из себя Arduino-совместимую плату на базе микроконтроллера STM32F103RB.
В ожидании появления обеих плат на рынке, я приобрёл себе плату Olimex-h203 и недорогой JTAG-отладчик ARM-USB-OCD, чтобы начать осваивать микроконтроллеры STM32 в операционной системе Linux.
Дело в том, что возможность программировать микроконтроллеры STM32 посредством интерфейса ST-Link/V2 в то время была доступна только в операционной системе Windows, к тому же отладчик OpenOCD можно использовать и для программирования других ARM-микроконтроллеров, например AT91SAM. К тому времени уже полгода у меня пылилась на полке плата Olimex-H64, так что для меня это был хороший повод приобрести JTAG-отладчик, чтобы не мучиться с попытками освоить SAM-BA и TCL.
Выбор отладочной платы
Успешно освоив 8-битные микроконтроллеры, спаяв несколько плат собственной разработки на их основе, я пришёл к выводу, что 32-битные микроконтроллеры удобнее осваивать, используя готовые отладочные платы, прежде чем пробовать разработать и спаять собственную плату.
В случае микроконтроллеров STM32 выбор платы в первую очередь основывается на выборе интерфейса программирования. Это либо IEEE 1149.1 JTAG, либо SWD-отладчик ST-Link. Лично я как пользователь Linux предпочитаю JTAG, поскольку программирование ARM-микроконтроллеров посредством JTAG в Linux поддерживается на базе открытых технологий, хотя по степени глючности оба варианта пока что не превосходят друг друга.
Платы STM32 серии DISCOVERY
В качестве стартовых отладочных плат для своих микроконтроллеров компания ST Microelectronics выпускает недорогие платы серии DISCOVERY, оснащные встроенным отладчиком ST-Link/V2.
Для разработки и программирования этих плат в Linux требуется скачать и настроить IDE-среду разработки Eclipse. В принципе, после успешной настройки программисту доступна даже возможность пошаговой отладки программы, но на практике при переходе из режима отладки обратно в режим программирования периодически происходит какой-то сбой, так что повторно войти в режим отладки у меня лично получалось через раз. Так что я предпочитаю программировать микроконтроллер из командной строки с помощью утилиты texane/stlink.
Платы STM32 с JTAG
Сторонние разработчики оснащают отладочные платы на базе микроконтроллеров STM32 интерфейсом IEEE 1149.1 JTAG для программирования и отладки. Эти платы стоят немножко дороже, но их можно программировать с помощью GDB-сервера OpenOCD.
Однако стоит учесть и то, что для программирования потребуется приобрести JTAG-программатор, в чём OpenOCD в силу своей универсальности как раз и имеет преимущественно перед встроенным ST-Link в платах серии DISCOVERY.
Программная поддержка периферийных устройств
В целом в программировании микроконтроллеров STM32 нет ничего принципиально сложного благодаря тому, что программирование периферийных устройств микроконтроллера осуществляется на основе стандартной библиотеки микроконтроллеров Cortex CMSIS (Cortex Microcontroller Software Interface Standard).
Скачав и установив Standard Peripheral Library для выбранной линейки микроконтроллеров STM32, можно попробовать скомпилировать примеры из папки StdPeriph_Examples, хотя для среды Eclipse и ARM-GCC скорее всего потребуется использовать один из базовых проектов, скопировав необходимые файлы из папки с примером в папку проекта.
Сначала нужно скачать искомое программное обеспечение STM32CubeIDE Generic Linux Installer с официального сайта
он весьма тормознутый, поэтому на всякий случай перезалил в облако:
Скачать версию STM32CubeIDE 1. 9.0 без регистрации и смс для Windows или Linux можно в телеграм-канале:
1) Распаковываем файл st-stm32cubeide_1.50.sh из архива, двойное нажатие по нему приведет к созданию папки с таким же именем.
2) Открываем папку, она будет содержать различные файлы (может придется подождать десяток сек):
3) Запускаем терминал ( Ctrl + Alt + T) и пишем путь к создавшейся папке (можно скопировать из строки сверху):
cd/home/egor/Downloads/STM32CubeIDE/ststm32cubeide_1.0.0_2872_20190423_2022_amd64.sh.root/
4) Теперь меняем права (это может и не понадобится) и вводим пароль, который запросит:
sudo chmod a+x install.sh
5) Далее непосредственно запускаем файлик установки:
Обновление от 21. 06.2022
Сейчас устанавливал STM32CubeIDE на UBUNTU и было достаточно запустить .sh файл:sudo sh FILENAME.sh
FILENAME — имя файла
Также вы должны находится в папке с этим файлом (шаги выше)
./setup.sh
6) Появляется лицензионное соглашение, жмём Ввод (Enter), пока оно не закончится. Принимаем его (прописав игрек в командной строке):
Y
6)Указываем путь установки (папку создавать не нужно):
/home/egor/Documents/
7) Ждём, пока установится. Высветится окно для ввода пароля, вводим.
8) Откроется окошко с установкой SEGGER J-Link и спросит продолжать ли (Do you wish to continue?). Пишем:
yes
9) Теперь листаем долгий текст (Enter) и соглашаемся со всем (Do you agree with the terms of this license?):
yes
10) Скорее всего таким же образом будет установка двух программ: ST-Link и ST-Link Server.
Обновление 21.06.2022. После установки не прошивался МК (хотя через STM32CubeProgrammer все работало), выдавало ошибку: Could note determine GDB vesion using command: arm-none-eabi-gdb —veriosn
Решение нашлось здесь: https://community.st.com/s/question/0D50X0000AgEAO…
Нужно прописать следующую строку и ввести пароль от UBUNTU:
sudo apt install libncurses5*
А потом согласится на установку (вбить Y и нажать Enter):
На этом всё, можно использовать бесплатную среду разработки для программирования микроконтроллеров STM32 на бесплатной операционной системе Linux.
stm32cubeide, установка stm32cubeide на linux, stm32 linux
В В этой статье мы узнаем, как установить программное обеспечение STM32Cube IDE в Linux.
Теперь давайте извлечем это программное обеспечение STM32Cube IDE, как показано на рисунке 1.
Рисунок 1. Страница загрузки программного обеспечения STM32CubeIDE
На рисунке 3 показан сценарий установки, который нам нужно запустить сейчас.
Рисунок 3. Сценарий установки
Для этого заходим в командную строку.
Теперь давайте запустим, используя sudo . / и имя файла . Итак, теперь он устанавливается, как показано на рисунке 5.
Рисунок 5. Командная строка
Теперь вам нужно принять лицензионное соглашение. Нажмите клавишу пробела и введите «y», затем нажмите клавишу ввода. Лицензия будет принята.
Рисунок 6. Лицензионное соглашениеУстановка занимает некоторое время. Итак, наберитесь терпения. Установка прошла успешно.
Давайте перейдем к окну поиска и найдем ST. На нем показано приложение STM32CubeIDE. Вы можете запустить это приложение сейчас.
Рисунок 7. Поиск ST
Вас просят открыть рабочую область. Мы не собираемся открывать какое-либо рабочее пространство на данный момент. Итак, мы можем нажать Отмена здесь.
Рисунок 8. Программа запуска STM32CubeIDEТеперь вы только что установили STM32CubeIDE на свой компьютер с Ubuntu.
Курсы FastBit Embedded Brain Academy
Щелкните здесь: https://fastbitlab.com/course1
Теги: Микроконтроллер Лекции по программированию на языке C
Академия FastBit Embedded Brain Academy использует возможности Интернета, чтобы предлагать онлайн-курсы, связанные с программированием встроенных систем, операционной системой реального времени, встроенными системами Linux и т. д., по очень низкой цене. Опираясь на большой опыт работы в отрасли, мы подготовили множество курсов, в которых приняли участие более 3000 клиентов в более чем 100 странах.
Написано дня 16. 08.2014 р. o godzinie 23:21
Автор: Piotr Sperka
Долгое время я пытался перенести программирование микроконтроллеров в Linux, который я использую большую часть времени. Если в случае с AVR у меня не было проблем, так как есть AVR-GCC (а для AVR у меня нет отладчика), то для STM32 мне было сложно найти подходящее окружение. Под Windows я использовал EmBlocks. К сожалению, он недоступен для Linux, а для Code::Blocks, на котором основан EmBlocks, плагин для отладки микроконтроллеров STM32 платный. После поиска и прочтения многих руководств я выбрал Eclipse с дополнительными плагинами, OpenOCD и gcc-arm-embedded набором инструментов, который я также использовал под Windows. Этот же набор программ работает и под Windows, поэтому я решил описать всю установку и настройку, что может быть особенно полезно для новичков. Однако я предполагаю, что раз уж вы хотите настроить всю IDE под Linux, то знаете хотя бы основы ее работы.
Во-первых, нам нужно установить необходимое программное обеспечение. Мы можем загрузить их непосредственно со страниц ниже или из репозитория программного обеспечения, если найдем их. Вам решать, как устанавливать программное обеспечение, но я сделал это так. Прежде всего я установил OpenOCD, который является отладчиком. В данном случае я установил его из репозитория в версии 0.7.0 (Ubuntu 14.04). Однако при желании вы можете скачать исходники в последней версии с сайта http://openocd.sourceforge.net. Затем я загрузил последнюю версию Eclipse (для разработчиков C/C++) с веб-сайта https://www.eclipse.org. В моем случае это была версия «Луна». Последняя часть программного обеспечения — набор инструментов, который вы можете найти здесь: https://launchpad.net/gcc-arm-embedded. Следующим шагом будет распаковка загруженных пакетов Eclipse и Toolchain. Затем выберите, где вы хотите хранить распакованные приложения. Вы можете оставить их в своем домашнем каталоге, однако я решил поместить их в каталог /opt. Для этого в терминале я пошел туда, где я их распаковал, и использовал эту команду:
sudo mv /opt/eclipse . /eclipse
Затем я сделал то же самое для цепочки инструментов. Кроме того, чтобы иметь возможность запускать eclipse непосредственно из терминала с помощью команды Eclipse (без указания дополнительного пути), я создал символическую ссылку:
sudo ln -s /opt/eclipse/eclipse /usr/bin/eclipse
После этих приготовлений вы можете настроить Eclipse. Сначала устанавливаем два необходимых плагина: GNU ARM Eclipse GNU MCU Eclipse и EmbSysRegView. Инструкции по установке можно найти на сайтах плагинов.
Теперь пришло время создать ваш первый проект. Перейдите к File → New → C Project . В открывшемся окне введите имя проекта и выберите тип проекта, в моем случае это был проект STM32F2xx C/C++ . На следующем шаге выберите детали вашего проекта. Мои настройки можно увидеть на скриншоте ниже.
В следующих шагах вы можете изменить расположение отдельных частей проекта и параметры конфигурации отладки/выпуска. Я оставил по умолчанию. На последнем шаге выберите Toolchain и выберите его путь. В моем случае это было:
Инструменты GNU для процессоров ARM Embedded (ARM-none-Eabi-GCC)
/opt/gcc-arm-none-eabi/bin
После нажатия кнопки Готово посмотреть готовый проект с главной. c файл создан. На этом этапе, если вы все сделали правильно, проект должен быть скомпилирован через Проект → Построить все. Во вкладке Консоль можно найти логи компиляции, а во вкладке Проблемы возможные предупреждения и ошибки.
Если компиляция прошла успешно (как на скриншоте выше), можно написать простенькую программу и настроить отладчик. В моем случае программа переключала светодиоды (это видно на одном из скриншотов).
Перейдите к Выполнить → Конфигурации отладки… Щелкните правой кнопкой мыши GDB OpenOCD debugging и затем щелкните Создать. На следующих скриншотах вы можете найти все окна, в которых я что-то изменил.