Преобразуване на проекти от ST и от CubeMX във формат Eclipse STM32
Случи се така, че в момента използвам Eclipse. И се запознах съвсем наскоро с ARM и STM32. В този момент се оказа, че STMicroelectronics не обича свободния софтуер. Търсенето в ST.com показа, че няма примери за доставчици или проекти за безплатни IDE като Eclipse. Но за Keil, IAR и TrueSTUDIO - примери за код, проекти и всякакви трикове - много. Най-близкото до Eclipse е TrueSTUDIO, защото на базата на Eclipse. Решението се предложи само - да се използва в Eclipse цялата гама проекти, разработени от STMicroelectronics за средата TrueSTUDIO. Но форматите на проекти се оказаха различни и също няма преобразувател TrueSTUDIO -> Eclipse.
Това, което ни предлага производителят
Като начало, нека видим как е изграден вътрешният пакет драйвери HAL, който успешно сте разопаковали на удобно за вас място. Вътре виждаме следното (по-долу пакетът за STM32F1xx е STM32Cube_FW_F1_V1.0.0):

Папки от интерес за нас:
„Драйвери“ - тук са HAL, BSP и CMSIS драйвери (v4.2)
Middlewares - тук STemWin, USB библиотеки, FatFs, FreeRTOS и LwIP - всичко вече е адаптирано за сътрудничество, а ръководства за това как да се използват са публикувани на уебсайта на ST.
„Проекти“ - проекти - примери от ST за дъските, които произвежда.
Всичко е ясно с останалите папки.
Например взех проекта за STM32VL-Discovery "GPIO_IOToggle" - мигане на светодиод на доста широко разпространен шал.
Приготвяме се да започнем
Папката "GPIO_IOToggle" от Windows Explorer (или не знам какво имате, всичко трябва да работи и на други платформи), копирайте я изцяло в работната директория на Eclipse. В тази папка (в “GPIO_IOToggle”) - копирайте папките “Drivers” и “Middlewares”. Възможно е да копирате цялата папка "STM32Cube_FW_F1_V1.0.0" в работната директория и да я използвате във всеки проект, но това е по-удобно за мен - няма възможност да сменя който и да е файл в един проект, той ще бъде от „споделената библиотека“ и това ще повлияе на работата на други проекти - тогава можете да търсите грешки дълго време. Ако сте объркани от размера на копираните папки "Drivers" и "Middlewares" (те са най-тежките в пакета HAL) - впоследствие неизползвани библиотеки - просто изтрийте.
След това в копираната папка "GPIO_IOToggle" създайте папката "Eclipse", а в нея - "Eclipse_settings". Папката "Eclipse_settings" ще съдържа настройките на проекта, които ще създадем малко по-късно в Eclipse.
Копирайте файла "startup_stm32f100xb.s" от папката "TrueSTUDIO" в папката "Eclipse" и не забравяйте да промените последната буква на "S".
Копирайте файла "STM32F100VB_FLASH.ld" от папката "TrueSTUDIO \ STM32VL-Discovery" в папката "Eclipse \ Eclipse_settings"
Сега трябва да съберете на едно място настройките от проекта, направен от ST (или вие с помощта на Cube) за TrueSTUDIO.
Създайте текстов файл в папката "Eclipse", например с името "Settings.txt" - тогава ще бъде по-удобно да копирате и поставяте, без да затваряте прозореца за настройки в Eclipse.
В Eclipse отворете файла "TrueSTUDIO \ STM32VL-Discovery \ .project", отидете в края на файла и копирайте всичко между маркерите
В Eclipse - отворете файла "TrueSTUDIO \ STM32VL-Discovery \ .cproject" и потърсете "Включване на път" и "Дефинирани символи" в него. Копирайте всички записи от типа ". \ . \ . \ . \ . \ . \ . \ . \ Drivers \ CMSIS \ Device \ ST \ STM32F1xx \ Include" и "USE_HAL_DRIVER" в текста файл "Settings .txt" и запишете. В зависимост от проекта, за който сте пренесени, може да има много или малко от тези записи; те понякога се поставят във файла по някакъв странен начин, но винаги в „купчини“. Лесно търсене чрез търсене на вълшебната дума „HAL“.
Затворете ".cproject" в Eclipse.
Сега трябва да коригирате относителните пътища до файловете, използвани в проекта (в случай на проект от Куба, пътищата вече ще бъдат правилни).
В записите „Включване на пътя“ премахваме излишния „. \“, сравнявайки връзката към файла и реалното му местоположение.
След това разглеждаме всички записи между таговете