- Stm cube ide linux
- Intelligent Recommendation
- Ubuntu 18.04 install pytorch
- Ubuntu 18.04 install mysql
- Ubuntu 18.04 install Mongodb
- Ubuntu 18.04 install labelmg
- Install Latex on Ubuntu 18.04
- More Recommendation
- Ubuntu 18.04 install mongodb
- Ubuntu 18.04 install Codeblocks
- Install MySQL on Ubuntu 18.04
- Install Vsftpd on Ubuntu 18.04
- Ubuntu 18.04 install Anaconda
- STM32 + CMSIS + STM32CubeIDE
- Настройка Sublime Text 3, SW4 и STM32CubeMX для разработки STM32 под Linux
- Предварительно устанавливаем необходимый софт
- Создадим нужные директории для установки программ и хранения библиотек
- Для STM32CubeMX и Eclipse нам понадобятся:
- Устанавливаем 32-битные библиотеки
- Устанавливаем Open JDK 8 JRE
- Устанавливаем STM32CubeMX
- Создадим красивый ярлык и добавим поиск в Dash
- Устанавливаем Sublime Text 3
- Настройка Sublime Text 3
- Настроим ST3
- Настраиваем пакеты ST3
- EasyClangComplete
- Sublimelinter
- SublimeAStyleFormatter
- Устанавливаем AC6 System Workbench for STM32 (SW4STM32)
- Добавим поиск SW4 в Dash
- Настройка SW4
- Проверка настроенной среды и небольшие доводки
- Сделаем минимальную настройку МК
- Настроим сам проект
- Проверим Sublime Text 3
- Откомпилируем проект и посмотрим debug
- Настройка Git
Stm cube ide linux
1. Software acquisition
Select the deb version to download
Downloaded is such a zip package, you need to unzip it first. After ubuntu can be opened directly, click to unzip, or drag all to a folder.
Unzip it is a sh file
There will be a request for acceptance in the middle, but the uncomfortable thing is that the terminal is not big enough and the —more— command appears.Be careful not to press enter at this time, press Space bar to turn pages !
Type y and press Enter. Jlink will be available after installation.
Jlink’s toolkit is in
Intelligent Recommendation
Ubuntu 18.04 install pytorch
Environment: ubuntu 18.04, CUDA9.0, Python3.5 go withOfficial websiteSelect the corresponding version you want to install. If you want to install the latest version, type it directly in the terminal: .
Ubuntu 18.04 install mysql
Installing MySQL on ubuntu18.04 is as simple as a few commands. During the installation process, you will be prompted to set a password. Note that you should not forget to set it up (but the ac.
Ubuntu 18.04 install Mongodb
Recently died, brain pumping, suddenly upgraded ubuntu 16.04 to 18.04, the good mongodb that could have been working could not be connected. After various attempts, it was reinstalled. If you go to th.
Ubuntu 18.04 install labelmg
Environment: ubuntu 18.04, python3, QT5 Go to GitHubDownload labelmg, extract the folder, modify the folder read and write permissions 2. Installation.
Install Latex on Ubuntu 18.04
Ubuntu download Late and solve problems encountered during the process I want to learn to use Latex to take notes, and then go to the official website to download, and found that after the decompressi.
More Recommendation
Ubuntu 18.04 install mongodb
We install the community version of mongdb The package provided by mongodb from Ubuntu is not maintained by MongoDB, but conflicts with the mongodb-org package. . To check if the Ubuntu package is ins.
Ubuntu 18.04 install Codeblocks
1, first install the short version of CodeBlocks 2, the compiler environment, C library, C + + library and Boost library installed 3. Install the debug component of CodeBlocks. Valgrind is used to det.
Install MySQL on Ubuntu 18.04
Special detailed ubuntu18 installation mysql Introduction MySQL is an open source database management system that is usually installed as part of the most popular LAMP (Linux, Apache, MySQL, PHP/Pytho.
Install Vsftpd on Ubuntu 18.04
installation Configuration Edit/etc/vsftpd.confFilesudo vi /etc/vsftpd.conf Create a new user for ftp Set only allow ftpuser to log in to ftp Finally restart the vsftpd service Referenced the article .
Ubuntu 18.04 install Anaconda
Reference materials: Install Anaconda on Ubuntu 18.04 LTS: Complete Step-by-Step How To Install Anaconda on Ubuntu 18.04 [Quickstart].
Источник
STM32 + CMSIS + STM32CubeIDE
Здесь я расскажу как создать минимальный проект на CMSIS с использованием «родной» IDE для микроконтроллеров STM – STM32CubeIDE.
Возможно STM32CubeIDE и обладает рядом недостатков, но у нее, на мой взгляд, есть несколько преимуществ – таких как проприетарность и бесплатность, ради которых, как минимум, стоит обратить внимание на эту среду разработки, если вы не сделали этого раньше.
Объектом прошивки выбран не очень распространенный микроконтроллер STM32F072 с ядром ARM Cortex-M0, для более привычных STM32F103 на ARM Cortex-M3, с поправкой на ядро, процесс идентичен.
Все необходимые ресурсы можно скачать с сайта st.com, и вот что понадобится:
- Сама IDE, я использую Windows версию, но также доступны версии под Mac и Linux
Библиотека CMSIS для ARM Cortex-M0, она находится в архиве STM32CubeFx, разбитом по версиям ядра. Сам архив, помимо CMSIS, содержит великое множество других ресурсов начиная от примеров работы с периферией до драйверов USB, собственно, именно этот архив используется, если создавать проект с помощью STM32Cube
После установки, запуска и выбора папки Workspace можно начать создание проекта. На текущий момент STM32CubeIDE версии 1.1.0, так что по расположению различных настроек следует исходить из этого.
Создание нового проекта — File/New/STM32Project. После некоторого раздумия появляется окно выбора микроконтроллера, в моем случае это STM32F072RB в корпусе LQFP64, выбираю нужную строку, жму далее. Далее предлагается выбрать имя проекта, расположение, язык программирования C/C++, исполняемый файл/статическая библиотека и будет-ли проект сгенерирован с помощью CubeMX или сами с усами. Генерация кубом, в данном случае не нужна, поэтому тип проекта Empty — финиш.
Слева, в окне Project Explorer, появилось дерево проекта, правда он не совсем Empty, как заказывали. Впринципе, если устраивает сгенерированная структура папок, можно добавить туда файлы из библиотеки CMSIS и работать дальше, но здесь я покажу как можно привести структуру проекта в гармонию со своим чувством прекрасного, поэтому удаляется всё, кроме скрипта линкера т.е. файла c расширением .ld — он еще пригодится.
Все манипуляции с папками и файлами можно проводить как в проводнике так и внутри IDE, нажав правой кнопкой на название проекта, к примеру: правая кнопка –> new –> Folder. Если структура проекта изменялась вне IDE, то нужно просто обновить проект: правая кнопка –> Refresh.
Мой вариант структуры проекта выглядит так:
- Startup – здесь будет храниться скрипт линкера, тот самый, оставшийся от сгенерированного проекта, а также startup файл взятый из CMSIS
- CMSIS\src и CMSIS\inc – здесь будут лежать исходники, файлы с расширением .c в папке scr и заголовочные файлы с расширением .h в папке inc соответственно, относящиеся к библиотеке CMSIS
- Core\src и Core\inc – здесь будет расположен собственно сам проект, для начала стоит положить туда main.c и main.h
Теперь нужно перенести файлы библиотеки CMSIS в проект. Библиотека состоит из файлов ядра и файлов периферии. Файлы ядра начинаются с core_ или cmsis_ они общие для всех микроконтроллеров, использующих данное ядро. Файлы периферии содержат в названии наименование микроконтроллера stm32 и специфичны для конкретного производителя, в данном случае, компании STM.
В распакованном виде архив содержит папку STM32Cube_FW_F0_V1.11.0, все пути указаны относительно этой папки. Итого, нужно скопировать:
- Drivers\CMSIS\Include\cmsis_compiler.h
- Drivers\CMSIS\Include\cmsis_gcc.h
- Drivers\CMSIS\Include\cmsis_version.h
- Drivers\CMSIS\Include\core_cm0.h
- Drivers\CMSIS\Device\ST\STM32F0xx\Include\stmf0xx.h
- Drivers\CMSIS\Device\ST\STM32F0xx\Include\stm32f072xb.h
- Drivers\CMSIS\Device\ST\STM32F0xx\Include\system_stm32f0xx.h
В CMSIS\src:
- Drivers\CMSIS\Device\ST\STM32F0xx\Source\Templates\gcc\startup_stm32f072xb.s
Так выглядит проект в заполненном виде.
Так как были проведены некоторые манипуляции с папками проекта, нужно отобразить это в настройках.
Правая кнопка по названию проекта -> Properties -> C/C++ Build -> Settings -> Tool Settings -> MCU GCC Linker -> General – здесь нужно указать новое расположение скрипта линкера с помощью кнопки Browse…
Также нужно указать пути к файлам проекта
Properties -> C/C++ General -> Includes
Properties -> C/C++General -> Source Location
В Includes пути к папкам inc, а в Source Location логично было-бы к папкам src, но если так сделать, то в дереве проекта будут отдельно добавлены эти папки. Чтобы не загромождать визуально дерево, в Source Location можно указать корневые папки Core, CMSIS и Startup.
Для того чтобы проект скомпилировался нужно раскомментировать в файле stm32f0xx.h строку с названием микроконтроллера ну и конечно же в main.c добавить функцию main.
Собственно всё. Безошибочная компиляция и сразу же куда-то подевалось целых полтора килобайта памяти ОЗУ она же RAM, и сразу же вспоминается стек и куча, в процессе создания проекта они нигде не упоминались. Величина стека и кучи указана в файле скрипта линкера, тот что с расширением .ld, их можно и нужно изменять в соответствии с требованиями проекта. Эти значения находятся в начале файла в виде меток _Min_Heap_Size/_Min_Stack_Size с указанием размера в шестнадцатеричном виде.
В качестве примера, приведу небольшой проект традиционного мигания светодиодом.
Светодиод будет мигать на отладочной плате STM32F072B-DISCO, тактирование осуществляться от внутреннего генератора HSI48 частотой 48 МГц, а в качестве источника задержки использоваться таймер SysTick, генерирующий прерывания с периодом в 1 мс, при помощи которых отсчитывается точное время задержки. Светодиод подключен к выводу 6 порта С, настроенного на выход push-pull.
Надеюсь, данная информация кому-то пригодится, т.к. в свое время, несмотря на обилие материалов по программированию STM32, мне пришлось перелопатить достаточно много мануалов, чтобы осознать вещи, кажущиеся сейчас очевидными.
Источник
Настройка Sublime Text 3, SW4 и STM32CubeMX для разработки STM32 под Linux
Подобных статей достаточно много на просторах интернета, но хотелось бы написать актуальную вариацию. Лично я долгое время мучался в связке: Ubuntu — основная система, разработка под STM32 в виртуальной машине Windows 7. Но однажды меня это очень утомило и я таки решил потратить несколько дней на поиск решения и вылизывание полноценной среды под Linux Ubuntu. Забегу вперёд и скажу, что идеала я так и не добился, не удалось сделать realtime debug, как в Keil. В остальном всё очень пристойно.
Внимание, очень много текста и картинок!
Что в итоге у меня получилось:
- Sublime Text 3 с автодополнениями и подсветкой всех функций, включая HAL и остальные библиотеки проекта;
- AC6 System Workbench for STM32 с кастомизированными перспективами и прочими плюшками;
- Конечно же использую контроль версий в Git.
Шаги, которые необходимо проделать:
- Добавить необходимые PPA в APT;
- Установить нужные библиотеки;
- Установить программы;
- Внести правки в конфигурационные файлы;
- Доделать всякие плюшки в виде красивых иконок, поиска из меню и т.д.
Инструкция дана для абсолютно чистой машины на базе Ubuntu 16.04, в вашем случае могут быть уже установлены какие-то компоненты. В этой статье и в последующих буду приводить примеры для отладочной платы STM32F3DISCOVERY. Она основана на МК STM32F303VCT6 c 256-Кбайт Flash и 48-КБайт RAM в корпусе LQFP100. Вы можете адаптировать настройки под ваш МК очень легко благодаря STM32CubeMX.
Всё указано для пользователя с именем bulkin, не забудьте менять его при настройке.
Предварительно устанавливаем необходимый софт
Создадим нужные директории для установки программ и хранения библиотек
Я предпочитаю устанавливать программы не из PPA в отдельную папку в домашней директории
/Programs. Во-первых, устанавливаю с правами локального пользователя. Во-вторых, папка с именем на английском, т.к. некоторые программы не любят кириллицу в пути.
Библиотеки предпочитаю хранить в /opt/libs.
Да, /opt — это OPTIONAL APPLICATIONS. Но у меня в /opt монтируется отдельный раздел с btrfs со сжатием. На всех своих машинах я настроил пути к своим библиотекам в /opt/libs. Морочиться и делать все по канонам (использовать /usr/local/lib и /usr/local/share) не вижу смысла, легко запутаться.
Для STM32CubeMX и Eclipse нам понадобятся:
Устанавливаем 32-битные библиотеки
Устанавливаем Open JDK 8 JRE
Устанавливаем STM32CubeMX
Скачиваем дистрибутив с сайта ST (потребуется регистрация), разархивируем и запустим файл с расширением .linux. Если установщик не запускается, скорее всего не установлены 32-битные библиотеки. Путь установки меняем на /home/bulkin/Programs/STM32CubeMX, устанавливаем.
Создадим красивый ярлык и добавим поиск в Dash
Вставим следующее содержимое:
Теперь в dash иконка появится в разделе Приложения, поиск в dash будет работать после перелогинивания.
Запускаем STM32CubeMX, идём в настройки Help->Updater Settings и меняем путь для хранения библиотек на /opt/libs/STM32Cube/Repository/
Установим библиотеку для STM32F3. Открываем Help->Install New Libriaries, ставим галку Firmware Package for Family STM32F3, жмём Install Now
Устанавливаем Sublime Text 3
Вообще, SW4 вполне самодостаточная IDE. Но я люблю кодить именно в ST3, а компиляция и дебаг в SW4. Инструкция по установке ST3 для любых дистрибутивов лежит тут.
После этого стоит перелогиниться.
Настройка Sublime Text 3
Для начала установим Package Control.
Запускаем ST3 и жмём CTRL+`, в командную строку вставляем код и жмём ENTER:
Для полноценной работы нам понадобятся такие пакеты:
- ARM Assembly (Подсветка Assembler в коде)
- C Improved (Подсветка C)
- CMakeEditor (Подсветка Cmake)
- DocBlokr (Форматирование комментариев)
- EasyClangComplete (автодополнение функций)
- Hex to Int preview (показывает значение HEX)
- SublimeAStyleFormatter (форматирует код нажатием CTRL+SHIFT+A)
- Sublimelinter
- Sublimelinter-contrib-cmakelint (Подсветка cmake)
- Sublimelinter-cppcheck (проверяет код на ошибки с помощью cppcheck)
- Sublimelinter-annotations (Подсвечивает FIXME, NOTE, TODO и т.д.)
Устанавливаем нужные пакеты из меню Preferences -> Package Control -> Install Package.
Настроим ST3
Откроем Preferences -> Settings и вставляем в правую половину:
Настраиваем пакеты ST3
EasyClangComplete
Настраиваем clang на C99 и указываем директории с базовыми библиотеками вроде StdLib.
Открываем Preferences -> EasyClangComplete -> Settings и вставляем в правую половину:
Sublimelinter
Открываем Preferences -> Sublimelinter -> Settings и вставляем в правую половину:
SublimeAStyleFormatter
Форматирование настроено на мой вкус. Подробное описание всех пунктов есть в Preferences -> SublimeAStyleFormatter -> Settings — Default
Открываем Preferences -> SublimeAStyleFormatter -> Settings — User и вставляем:
Устанавливаем AC6 System Workbench for STM32 (SW4STM32)
Полностью процесс установки описан на сайте OpenSTM32.org.
Переходим в папку загрузки и вводим
Если у вас установлен gksudo, установщик запустится в графическом режиме. У меня не установлен, потому всё в терминале.
Несколько раз вводим 1 в качестве согласия со всякой ерундой. Указываем путь установки:
Снова соглашаемся со всем, как девственник в свой первый раз, и ждём окончания установки.
Добавим поиск SW4 в Dash
Настройка SW4
Запускаем SW4, соглашаемся с созданием рабочей области, кликаем на workbench. При первом запуске будет установлен ARM Toolchain.
Сначала установим удобную тему. Открываем Help->Install New Software, жмём Add.. и вводим:
Жмём ОК, выбираем Eclipse Color Theme и жмём Next > и дальше всё по накатанной.
Включим тему: Window -> Preferences ->Appearance -> Color Theme. Я люблю Monokai, а вы можете позже подобрать, какую вам нравится.
Ну вот и пришло время запустить наш первый проект и проверить среду разработки в работе.
Проверка настроенной среды и небольшие доводки
Повторюсь, я буду приводить примеры для отладочной платы STM32F3DISCOVERY. Делаю всё максимально просто, нам ведь банально надо проверить настройки среды разработки.
Запустим STM32CubeMX, выберем в главном окне New Project. Откроем вкладку Board Selector. Выбираем нашу плату:
- Type of board: Discovery
- MCU Series: STM32F3
- Из списка ниже выбираем STM32F3DISCOVERY
И два щелчка на нашей плате.
Сделаем минимальную настройку МК
В левом меню включим:
- FreeRTOS: поставить галку Enabled
- SYS: Trace Asynchronous Sw
- Timebase Source: TIM17 (на текущем этапе можно выбрать любой)
Переходим во вкладку Clock Configuration:
- В поле HCLK вводим 64МГц (на встроенном осциляторе максимальная частота)
Настроим сам проект
Открываем Project->Settings из верхнего меню.
- Указываем имя проекта в поле Project Name: STM32Discovery-SW4-Test
- Указываем путь в поле Project Location: /home/bulkin/workspace
- Выбираем Toolchain: SW4STM32
Откроем вкладку Code Generator и включим «Add necessary libriary files as reference in the toolchain project configuration file»
Жмём ОК и теперь мы готовы создать проект. Жмите Generate Source Code в верхнем меню:
Проверим Sublime Text 3
Для начала надо создать CMakeList.txt. Для этого открываем консоль в корне нашего проекта и вводим:
Из нашего STM32Discovery-SW4-Test.ioc будут созданы необходимые для компиляции из командной строки файлы. Но нас интересует только CMakeLists.txt.template. Переименуем его в CMakeLists.txt.
Project->Add folder to Project. и выбираем папку нашего нового проекта.
Для начала надо добавить в CMakeList.txt недостающие пути к библиотекам. Это нужно для корректной работы EasyClangComplete. Слева щёлкаем на CMakeList.txt и вносим изменения:
Над строкой set(USER_INCLUDE Inc) добавляем:
Все последующие set вплоть до file меняем на:
Ну и в раздел include_directories в самый конец добавить $
Стоит объяснить, зачем нужны эти танцы с бубном. Дело в том, что при создании проекта мы выбрали опцию «добавлять библиотеки в качестве ссылок в тулчейне». А вот cubemx2cmake указывает относительный путь к библиотекам HAL, а также не добавляет пару путей к библиотекам CMSIS и FreeRTOS. Вероятно, это будет исправлено в будущих версиях, но пока так.
Теперь надо сбросить кэш Cmake: CTRL-SHIFT-P -> EasyClangComplete: Clean current cmake cache
Откроем Src/main.c Наведём курсор на какую-нибудь функцию и порадуемся всплывающим окошкам с её описанием. Подробнее о работе EasyClangComplete можно посмотреть тут.
Попробуем отформатировать код: нажмём CTRL+ALT+F и радуемся, как всё поменялось. Если предпочитаете другой стиль, нет проблем, настройки в Preferences -> SublimeAStyleFormatter.
Откомпилируем проект и посмотрим debug
Запускаем SW4 и импортируем проект:
- File -> Import… -> General -> Existing projects into workspace
- Select root directory: /home/bulkin/workspace/STM32Discovery-SW4-Test
- НЕ ставим галку Copy projects into workspace
Выбираем проект в Project explorer. Компилируем Project -> Build Project. Если всё было сделано без ошибок ранее, проект скомпилируется за несколько секунд. И в консоли в нижней части будет примерно так:
Подключим нашу плату к компьютеру и попробуем загрузить прошивку: Run -> Run as Ac6 STM32 C/C++ Application. Если всё удачно, в конце вывода консоли будет:
Ну и самое вкусное. Запустим дебагер. Run -> Debug (или просто жмите F11). SW4 загрузит прошивку и предложит открыть отдельную перспективу для дебагера. Советую согласиться.
Изначально наша программа будет остановлена на int main(void) <> , это брейкпонт по-умолчанию. Запустим программу нажав F8, чтобы инициализировались все настройки МК, потом остановим, нажав кнопку Suspend в верхней панели. Давайте попробуем зажечь светодиоды. В правой верхней части перспективы откроем вкладку I/O Registers, развернём GPIO и правый щелчок на GPIOE -> ODR -> Activate
Теперь посмотрим в STM32CubeMX в нашем проекте, что светодиоды сидят на ногах PE8 — PE15:
В столбце HEX Value в строках c GPIOE -> ODR -> ODR15 по GPIOE -> ODR -> ODR8 выставим 1 и радуемся магии, как загораются светодиоды на плате. Ставим 0 — гаснут.
К сожалению, такая магия возможно только в остановленном состоянии, в отличие от того же Keil uVision, реалтайма тут нет. (грустный смайлик)
Осталось только настроить Git
Настройка Git
Заходим через терминал в директорию с нашим проектом и инициализируем Git, включая ввод персональных данных:
Создадим .gitignore и добавим в него:
Ну и сделаем коммит:
В общем-то дальнейшие вещи выходят за рамки статьи о настройке среды разработки. Это и полноценное описание дебагинга, и всякие горячие клавиши ST3. Об этом я бы хотел поговорить в другой раз. Надеюсь, данная статья будет полезна, хотя ныне настройка среды стала гораздо проще, чем ещё год назад. Удачи!
Источник