Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: IAR ARM 6.20 и --dependencies
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Cредства разработки для МК > IAR
HARMHARM
Традиционно собираю проекты с помощью GNU Make. После некоторой борьбы при освоении (в основном со слэшами в путях), несколько лет работал с IAR ARM 4.41A.
Пришла пора переходить на Cortex, поставил IAR ARM 6.20. Портировал проект. Все бы хорошо, но зависимости не работают! В файлах зависимостей, которые iccarm генерирует по ключу --dependencies, изменился формат путей.

IAR ARM 4.41A, ключ --dependencies=m:
Код
obj/application.r79: C:\DEV\ARM\lib\LPC23xx.h

IAR ARM V6.20.0.52543/W32, ключ --dependencies=m:
Код
obj\low_level_init.o: C:\DEV\IAR_ARM6_20_1\ARM\inc\c\intrinsics.h

В итоге make при подключении файлов .depend перестал учитывать зависимости.
Может, кто-нибудь имеет опыт борьбы с такой напастью?
Спасибо.
scifi
Секрет прост: надо сдалать так, чтобы имена исходных и объектных файлов внутри make были точно в таком же формате, как и в файле зависимостей (то есть направление слэшей и полный/относительный путь). Как я понял, make сверяет зависимости путём побайтового сравнения имён файлов.
Вот как сделано в моём Makefile:
Код
SOURCES = $(subst /,\,$(addprefix $(CURDIR)/, $(wildcard src/app/*.c src/lwip/src/*.c)))
...
OBJECTS = $(SOURCES:.c=.o)
HARMHARM
Я тоже так подумал, но до subst не додумался... Спасибо, на досуге попробую!

На сейчас проблему решил в лоб, путем добавления в Makefile после линковки команды:
Код
sh -c "for i in obj/*.depend; do perl -p -ibk -e 's/\\\\/\\//g' \$$i; done;"

Чуть мозг не поломался, пока писал и экранировал.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.