Я хотел бы создать проект для STM32 с HAL на C ++.
К сожалению, CubeMX поддерживает только проекты на C. Однако HAL поддерживает C ++.
Я создал проект в CubeMX и пытался импортировать его в любую из вышеупомянутых IDE, но безуспешно, потому что он был импортирован как C-проект. Так что это не выглядит хорошим решением.
Также я попытался создать проект C ++ в упомянутой IDE и добавить к нему файлы из CubeMX. Это кажется более логичным, но я не могу сделать это правильно, потому что моя конфигурация все еще неверна.
Может кто-нибудь объяснить мне, как я должен настроить новые проекты C ++ в Eclipse или Atollic TrueSTUDIO для использования HAL?
Последние версии CubeMX поддерживают System Workbench 4 STM32, которая является интегрированной средой разработки на основе Eclipse, предварительно настроенной для разработки для целей STM32. Он имеет возможность конвертировать проект в C ++ (щелкните правой кнопкой мыши проект в проводнике проекта, затем выберите «Преобразовать в C ++»).
Обратите внимание, что у меня нет прямого опыта использования этого метода. Мы используем STM HAL и создаем наши приложения C ++ поверх этого, так что это определенно возможно, но наша IDE — это Keil, так что YMMV.
Как преобразовать сгенерированный STM32CubeMX проект Atollic Eclipse C в C ++ (3 шага):
<natures>
<nature>org.eclipse.cdt.core.cnature</nature>
<nature>org.eclipse.cdt.core.ccnature</nature>
defined extern "C"
2 .сторона c вызывает callback, определенный в .cpp (измените определение функции на стороне .cpp, предварительно ожидая defined extern "C"
,Некоторые заметки:
Возможности для улучшения: возможно, существует шаблон CubeMX, который можно отредактировать, чтобы сделать эти изменения более автоматическими, но я не знаю достаточно о шаблонах CubeMX, чтобы сделать этот взлом более элегантным.
Я также использую CubeMX с IAR EWARM и прохожу аналогичный (но немного более простой) процесс для преобразования в проект .cpp.
В зависимости от того, какой это чип STM32, он может поддерживаться mBed. Онлайновый компилятор mBed позволяет экспортировать в различные IDE. Новый автономный (yotta) использует cmake, который также может экспортироваться в некоторые IDE. К сожалению, на данный момент Yotta поддерживает только пару чипов.