реклама на сайте
подробности

 
 
> Компиляция для разных МК
Злодей
сообщение Nov 25 2013, 14:21
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 149
Регистрация: 29-04-08
Из: Петербург
Пользователь №: 37 142



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

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

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

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

Спасибо.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 4)
adnega
сообщение Nov 25 2013, 14:28
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702



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

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

Возможно, если бы я был "ценителем" стандартной периферийной библиотеки (STLib), то вопрос решался бы однозначно, но увы...
Go to the top of the page
 
+Quote Post
A. Fig Lee
сообщение Nov 25 2013, 14:48
Сообщение #3


Знающий
****

Группа: Участник
Сообщений: 974
Регистрация: 4-04-08
Из: далека
Пользователь №: 36 467



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


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

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

Сообщение отредактировал Herz - Nov 26 2013, 15:05
Причина редактирования: Оформление цитаты


--------------------
Верить нельзя никому, даже себе. Мне - можно.
Go to the top of the page
 
+Quote Post
Злодей
сообщение Nov 25 2013, 14:49
Сообщение #4


Частый гость
**

Группа: Участник
Сообщений: 149
Регистрация: 29-04-08
Из: Петербург
Пользователь №: 37 142



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

Теоретически, подходы можно мешать, для третей платформы сделать отдельный модуль.
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Nov 26 2013, 08:25
Сообщение #5


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



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

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



--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 27th July 2025 - 00:34
Рейтинг@Mail.ru


Страница сгенерированна за 0.01368 секунд с 7
ELECTRONIX ©2004-2016