Перейти к содержанию
    

Компиляция для разных МК

Доброго времени суток!

 

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

 

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

 

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

 

Спасибо.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Сам в такой же ситуации. Но, думаю, вопрос можно задать иначе:

- делать один файл с кучей условной компиляции

- или сделать под каждую платформу свой файл с единым интерфейсом и условным оставить только makefile?

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

сделать под каждую платформу свой файл с единым интерфейсом и условным оставить только makefile?

 

По крайней мере в EMC2 так делали, они там под 19 платформ на С компилят.

Правда, это не микроконтроллеры, но суть таже.

 

Если проект мелкий, одноразовый, то с дефайнами может быть быстрее.

Но менее портебл

Изменено пользователем Herz
Оформление цитаты

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

Теоретически, подходы можно мешать, для третей платформы сделать отдельный модуль.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Привет! Что с java завязал уже?

 

Не надо изобретать велосипед, стоит пользоваться трудами предшественников...

http://libopencm3.org/wiki/Main_Page

-эта либа предоставляет унифицированный интерфейс не только для семейства STM32, но и для кортексов-м от других производителей.

Единственный её минус - это то, что она достаточно активно развивается и её интерфейсы пока не шибко стабильны.

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...