|
|
  |
Eclipse + GCC + HAL, undefined reference to... |
|
|
|
Feb 20 2016, 10:27
|
Участник

Группа: Участник
Сообщений: 18
Регистрация: 1-06-13
Пользователь №: 77 044

|
Здравствуйте. Собрал среду для STM по следующей статье: http://www.carminenoviello.com/en/2014/12/...2nucleo-part-1/Для пробы сгенерировал в QubeMX простой проект - мигалку, который нормально собрался и заработал. Проблемы возникли при попытке собрать проект с USB, сгенерированый в том же QubeMX. Eclipse в упор не видит часть функций для работы с USB, и выдает ошибки undefined reference to..., хотя #include для заголовочного файла с ними есть.
Если использовать комбинации CTRL+C, CTRL+V (заменить функцию на саму себя), то ошибка исчезает, но только до попытки компиляции, после которой ошибка опять появляется.
Еще одна странность в том, что есть функции, которые ошибок не вызывают, но при этом находятся в том же файле, что и ошибочные.
Обе функции со скриншота находятся в одном файле. В чем здесь проблема? И как можно ее исправить?
|
|
|
|
|
Feb 20 2016, 10:50
|
Знающий
   
Группа: Свой
Сообщений: 771
Регистрация: 16-07-07
Из: Волгодонск
Пользователь №: 29 153

|
Цитата(Wasserati @ Feb 20 2016, 13:27)  В чем здесь проблема? И как можно ее исправить? Парсеру эклипса для работы нужны пути к инклюдам и некоторые "системные" макросы. Все это указывается в свойствах проекта, "preprocessor include paths ...". Эклипс умеет получать эти данные из разных источников с помощью т.наз. провайдеров. Или же их можно вбить вручную. updateА, у вас это ошибки билда? А как собираете? Смотрите параметры сборки, скорее всего те же пути к инклюдам кривые
|
|
|
|
|
Feb 21 2016, 13:59
|
Участник

Группа: Участник
Сообщений: 18
Регистрация: 1-06-13
Пользователь №: 77 044

|
Спасибо всем за ответы. Причину ошибок я нашел. Нужно было добавить путь к .c файлам USB драйвера.
|
|
|
|
|
Mar 2 2016, 05:11
|
Частый гость
 
Группа: Участник
Сообщений: 132
Регистрация: 6-02-16
Из: г. Баку
Пользователь №: 90 364

|
Добрый день! Это мой первый пост тут (хотя и в 2006-м тоже был тут зарегистрирован, но потом благополучно потерял пароль и почта указанная при рег. недоступна стала). Прошу не пинать.  Я поступил так (ARM-ы стал изучать месяца 3 назад, а до этого лет 20 сижу на др. контроллерах): 1. Написал на Шарпе небольшую прожку. которая конвертируем проект под среду TrueStudio, а потом и проект под SW4STM32 в "чистый" проект для Eclipse (MARS установил). Причем все достаточно нормально конвертировалось т.к. разбирался долго и досконально со всеми нюансами в xml-файлах .cproject и project); 2. Почему-то не захотел вначале использовать нормально среду от Ac6 (OpenSTM32). Очевидно все-таки хотел "чистую" эклипсу использовать. 3. Совершенно случайно обнаружил, что вышеуказанная среда SW4STM32 еще есть в виде плагина к эклипсе. Установил в свой MARS этот плагин и все! Теперь пишу в эклипсе, но используя пока что этот плагин при создании/портировании проектов (хотя также могу создать "чистый" проект под GCC в своей эклипсе). В результате имеем современную среду и с норм. редактором и пр. Я вот до сих пор не пойму за что такие бешенные (!) деньги просят за Keil и IAR. В ихних убожеских (реально таких!) редакторах невозможно что-то большое писать и долго причем. Даже бесплатно и то не хочется пользоваться этими средами. Может и потому что за время работы с др. контроллерами (не ARM) я уже привык к норм. редактору, подсветки кода, поиску и пр. и пр.? А как только стал изучать ARM-ы, то в шок меня ввели эти IAR с Keil-ом, а другие люди уже просто привыкли к ним? Не знаю. Вообщем вот так.
Сообщение отредактировал IgorKossak - Mar 2 2016, 09:22
Причина редактирования: бездумное цитирование
|
|
|
|
|
Mar 2 2016, 07:26
|

Местный
  
Группа: Участник
Сообщений: 319
Регистрация: 31-01-12
Пользователь №: 69 978

|
Цитата(AleksBak @ Mar 2 2016, 08:11)  Добрый день! так же юзаю эклипс с этим плагином единственное, что напрягает: эклипс иногда пишет ошибки (не находит макросы и тд), однако компилятор собирает без ошибок
Сообщение отредактировал IgorKossak - Mar 2 2016, 09:23
Причина редактирования: бездумное цитирование
|
|
|
|
|
Mar 2 2016, 12:30
|

Местный
  
Группа: Участник
Сообщений: 319
Регистрация: 31-01-12
Пользователь №: 69 978

|
Цитата(AleksBak @ Mar 2 2016, 10:51)  Правой кнопкой по названию проекта в дереве проекта (т.е. вызов контекстного меню для этого проекта тут) и Index -> Freshen All Files. Т.е. заново переиндексацию проекта вызываем. А Вы уже обновлялись недавно (до 1.7 версии)? эта операция не помогает да, плагин 1.7, эклипс 4.5.2
|
|
|
|
|
Mar 3 2016, 07:07
|

Беспросветный оптимист
     
Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646

|
Цитата(AleksBak @ Mar 2 2016, 08:11)  2. Почему-то не захотел вначале использовать нормально среду от Ac6 (OpenSTM32). Очевидно все-таки хотел "чистую" эклипсу использовать. Да уж куда чистее-то? По сравнению с кококсом и трустудио просто кристально чистая клипса. А "чистый" проект GCC в любой системе делается очень просто - makefile based project.
--------------------
Программирование делится на системное и бессистемное. ©Моё :) — а для кого-то БГ — это Bill Gilbert =)
|
|
|
|
|
Mar 3 2016, 11:10
|
Частый гость
 
Группа: Участник
Сообщений: 132
Регистрация: 6-02-16
Из: г. Баку
Пользователь №: 90 364

|
Цитата(MrYuran @ Mar 3 2016, 11:07)  Да уж куда чистее-то?... А "чистый" проект GCC в любой системе делается очень просто - makefile based project. Да. Не так выразился. (насчет чистее или нет) Похоже именно более новый MARS привлек и еще какие-то личные интересы. Тоже используете среду (или может плагин) да? Вот makefile у Вас - значит команда в консоли эклипсы утилите сборки проекта, а вот based project - это типа такого дефайн-выражения? Пока не копал глубоко и новичок пока что я. Эти "дефаны" (т.е. встроенные команды эклипсы) где-то описаны... В хелпе эклипсы надо бы посмотреть мне... Я из команд для консоли только " monitor reset halt" использую периодически. А вот насчет этого " monitor reset halt" тоже осмелюсь спросить - Вы не в курсе, если Вы знаете про команды консоли эклипсы, как "прикрутить" эту команду к какому-нибудь hot key? Про сделать кнопку вряд ли и не стоит спрашивать мне, а вот как-то сделать в виде "горячей" клавишы наверняка возможно же это? Спасибо.
|
|
|
|
|
Mar 15 2016, 18:44
|
Частый гость
 
Группа: Участник
Сообщений: 132
Регистрация: 6-02-16
Из: г. Баку
Пользователь №: 90 364

|
Цитата(Aaron @ Mar 15 2016, 17:55)  ...Почему уже изначально в названии идёт упоминание stm32?.. Там, насколько я понял, просто настроена отладка с ст-линком под openocd. Т.е. чтобы работала и в Debug конфигурации показывала нужные окна и пр. Еще используются обычные arm-non-eabi тулчейны, но введены небольшие упрощения/изменения в настройках. Все "заточено" под стм32. В самой "чистой" эклипсе этот плагин можно отдельно использовать (создавать проекты с ним/разбираться с готовыми проектами), а можно использовать и др. плагины - например GCC Cross Compiler и пр. Т.е. скорее всего Ваши плагины под миландровские процессоры тоже будут спокойно "уживаться" вместе в эклипсе. Если конечно знать меру наверно и не переборщить с общим кол-вом этих плагинов имхо.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|