Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Компиляция для разных МК
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > Программирование
Злодей
Доброго времени суток!

Для придания гибкости, и чтобы просто лишний раз переработать код решил сделать проект компилируемым для двух линеек МК (STM32F1 и STM32F3). Неприятной неожиданностью оказалось отличие в API периферии. Код, работающий с GPIO и тактовым генератором несовместим, дальше не смотрел.

Остаётся только городить абстракцию над периферией и скриптом сборки, реализовывать два варианта под F1 и F3. Собственно это и так почти сделано для F1.

Вопрос в том, типичный ли это подход или я придумал ерунду?

Спасибо.
adnega
Цитата(Злодей @ Nov 25 2013, 18:21) *
Для придания гибкости, и чтобы просто лишний раз переработать код решил сделать проект компилируемым для двух линеек МК (STM32F1 и STM32F3).

Сам в такой же ситуации. Но, думаю, вопрос можно задать иначе:
- делать один файл с кучей условной компиляции
- или сделать под каждую платформу свой файл с единым интерфейсом и условным оставить только makefile?

Возможно, если бы я был "ценителем" стандартной периферийной библиотеки (STLib), то вопрос решался бы однозначно, но увы...
A. Fig Lee
Цитата
сделать под каждую платформу свой файл с единым интерфейсом и условным оставить только makefile?


По крайней мере в EMC2 так делали, они там под 19 платформ на С компилят.
Правда, это не микроконтроллеры, но суть таже.

Если проект мелкий, одноразовый, то с дефайнами может быть быстрее.
Но менее портебл
Злодей
В доке “Migrating from STM32F1 to STM32F3 microcontrollers” есть намёк на условную компиляцию. В ней прямо сравнения исходников, и жирным выделено, какие куски отличаются у F1 и F3.

Теоретически, подходы можно мешать, для третей платформы сделать отдельный модуль.
demiurg_spb
Привет! Что с java завязал уже?

Не надо изобретать велосипед, стоит пользоваться трудами предшественников...
http://libopencm3.org/wiki/Main_Page
-эта либа предоставляет унифицированный интерфейс не только для семейства STM32, но и для кортексов-м от других производителей.
Единственный её минус - это то, что она достаточно активно развивается и её интерфейсы пока не шибко стабильны.

Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.