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

 
 
> IAR ARM 6.20 и --dependencies, изменился формат
HARMHARM
сообщение Jun 10 2011, 17:16
Сообщение #1


читатель даташитов
****

Группа: Свой
Сообщений: 853
Регистрация: 5-11-06
Из: Днепропетровск
Пользователь №: 21 999



Традиционно собираю проекты с помощью 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 перестал учитывать зависимости.
Может, кто-нибудь имеет опыт борьбы с такой напастью?
Спасибо.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 2)
scifi
сообщение Jun 10 2011, 18:36
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Секрет прост: надо сдалать так, чтобы имена исходных и объектных файлов внутри make были точно в таком же формате, как и в файле зависимостей (то есть направление слэшей и полный/относительный путь). Как я понял, make сверяет зависимости путём побайтового сравнения имён файлов.
Вот как сделано в моём Makefile:
Код
SOURCES = $(subst /,\,$(addprefix $(CURDIR)/, $(wildcard src/app/*.c src/lwip/src/*.c)))
...
OBJECTS = $(SOURCES:.c=.o)
Go to the top of the page
 
+Quote Post
HARMHARM
сообщение Jun 10 2011, 18:59
Сообщение #3


читатель даташитов
****

Группа: Свой
Сообщений: 853
Регистрация: 5-11-06
Из: Днепропетровск
Пользователь №: 21 999



Я тоже так подумал, но до subst не додумался... Спасибо, на досуге попробую!

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

Чуть мозг не поломался, пока писал и экранировал.
Go to the top of the page
 
+Quote Post

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

 


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


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