Pjotar 0 25 ноября, 2013 Опубликовано 25 ноября, 2013 · Жалоба Доброго времени суток! Для придания гибкости, и чтобы просто лишний раз переработать код решил сделать проект компилируемым для двух линеек МК (STM32F1 и STM32F3). Неприятной неожиданностью оказалось отличие в API периферии. Код, работающий с GPIO и тактовым генератором несовместим, дальше не смотрел. Остаётся только городить абстракцию над периферией и скриптом сборки, реализовывать два варианта под F1 и F3. Собственно это и так почти сделано для F1. Вопрос в том, типичный ли это подход или я придумал ерунду? Спасибо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
adnega 10 25 ноября, 2013 Опубликовано 25 ноября, 2013 · Жалоба Для придания гибкости, и чтобы просто лишний раз переработать код решил сделать проект компилируемым для двух линеек МК (STM32F1 и STM32F3). Сам в такой же ситуации. Но, думаю, вопрос можно задать иначе: - делать один файл с кучей условной компиляции - или сделать под каждую платформу свой файл с единым интерфейсом и условным оставить только makefile? Возможно, если бы я был "ценителем" стандартной периферийной библиотеки (STLib), то вопрос решался бы однозначно, но увы... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
A. Fig Lee 0 25 ноября, 2013 Опубликовано 25 ноября, 2013 (изменено) · Жалоба сделать под каждую платформу свой файл с единым интерфейсом и условным оставить только makefile? По крайней мере в EMC2 так делали, они там под 19 платформ на С компилят. Правда, это не микроконтроллеры, но суть таже. Если проект мелкий, одноразовый, то с дефайнами может быть быстрее. Но менее портебл Изменено 26 ноября, 2013 пользователем Herz Оформление цитаты Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Pjotar 0 25 ноября, 2013 Опубликовано 25 ноября, 2013 · Жалоба В доке “Migrating from STM32F1 to STM32F3 microcontrollers” есть намёк на условную компиляцию. В ней прямо сравнения исходников, и жирным выделено, какие куски отличаются у F1 и F3. Теоретически, подходы можно мешать, для третей платформы сделать отдельный модуль. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
demiurg_spb 0 26 ноября, 2013 Опубликовано 26 ноября, 2013 · Жалоба Привет! Что с java завязал уже? Не надо изобретать велосипед, стоит пользоваться трудами предшественников... http://libopencm3.org/wiki/Main_Page -эта либа предоставляет унифицированный интерфейс не только для семейства STM32, но и для кортексов-м от других производителей. Единственный её минус - это то, что она достаточно активно развивается и её интерфейсы пока не шибко стабильны. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться