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

 
 
 
Reply to this topicStart new topic
> Использование одной копии mbed для нескольких проектов
MicroCpehalis
сообщение Jun 25 2015, 12:42
Сообщение #1





Группа: Новичок
Сообщений: 2
Регистрация: 4-06-15
Пользователь №: 87 013



Сейчас пытаюсь воспользоваться библиотекой mbed (конкретно - под STM32F4XX) сразу в двух проектах. Изначально думал, что можно положить библиотеку куда-нибудь, и пользоваться ею в обоих проектах одновременно, ничего не меняя. Но вот понял, что, чтобы задействовать, скажем, UART, необходимо, чтобы в HAL-файле device.h макрос DEVICE_SERIAL был равен "1" (тогда как он там по умолчанию "0").

Положим, я заменю в этом файле 0 на 1 - но это, во-первых, окажет влияние и на другой проект, в котором мне UART не нужен, а во-вторых, лезть менять файлы в чужой библиотеке?... как-то не комильфо.

И вот я не вижу выхода из этой ситуации, кроме как копировать все необходимые файлы набора HAL в каждый из двух проектов, и компилировать их уже из этих локальных копий. А это как-то некрасиво - там куча .c-шных файлов, в которых я ничего менять не собираюсь да и не должен. Но они все завязаны на "лежащий тут же" device.h. Попытка редефайнить DEVICE_SERIAL предсказуемо приводит к ругани со стороны компилятора, попытка предварительно #undef-ить макрос в настройках проекта - к тому, что "идентификатор не определен", и это правильно: соответствующий h-ник не транслируется.

Получается, таки локальная копия всего HAL (а заодно уж, может, и startup_STM32F40x.s+sys.cpp+STM32F407.sct из target-toolchain директории cmsis) - единственный путь, или я чего-то не понимаю в методике использования mbed?

Go to the top of the page
 
+Quote Post
MicroCpehalis
сообщение Jun 26 2015, 06:37
Сообщение #2





Группа: Новичок
Сообщений: 2
Регистрация: 4-06-15
Пользователь №: 87 013



Ситуация оказалась хуже, чем я думал. Похоже, значение этих макросов определяется тем, какое вообще оборудование стоит в том или ином контроллере. То есть, по мнению разработчиков mbed, в STM32F4XX (и, в частности, в моем STM32F417VGT6) вообще отсутствует последовательный порт. И даже файла serial_api.c в папке TARGET_STM32F4ХХ нет. При этом в соседней папке TARGET_STM32F4 такой файл есть, и соответствующий макрос в device.h определен как "1". Судя же по описаниям контроллеров на сайте STM, в любой модификации STM32F4ХХ есть по меньшей мере пара-тройка последовательных портов.

То есть первоначальный вопрос отпадает: вполне можно было бы использовать библиотеку в двух проектах сразу. Возникает другой: в чем разница между таргетами STM32F4 и STM32F4ХХ, и почему для одного считается, что последовательный порт есть, а для другого - что нет? Сколько ни пытаюсь читать интернет, везде эти понятия смешиваются и/или заменяются по тексту одно другим в произвольные моменты времени. Но, очевидно, некая разница есть . Кто-нибудь в курсе, в чем она состоит?
Go to the top of the page
 
+Quote Post

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

 


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


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