MicroDiP 1 12 января, 2009 Опубликовано 12 января, 2009 · Жалоба Вот как раз только закончил ковырять мануалы линковщика и компилятора. Правда под dsPIC. Делал для создания конфигурационного файла под UEStudio. Потратил 3 дня. За то какая сейчас прелесть работать и компилить в UEStudio :yeah: Если поможет, могу кинуть сам конфиг.файл для UEStudio: сделал его с русскими комментариями, думаю разберёшься. Да и make-файл по уже выставленным настройкам проекта создать - секундное дело. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
helius 0 12 января, 2009 Опубликовано 12 января, 2009 (изменено) · Жалоба 2zltigo: образцы - зло, согласен, нужно разобраться, вот я и хочу это сделать, может быть кто то присоеденится 2МикроДИП: выложи )) с UEStudio я не знаком правда вот пару интересных статей по make http://www.citforum.ru/operating_systems/g...numake_03.shtml http://www.linuxrsp.ru/docs/gm.html вопрос №1 как автоматически генерировать зависимости файлов? как известно make это делает с пом. компилятора gcc, компилятор IAR же это делать не умеет (или я не знаю как )), а добавлять руками в Makefile имена исходников - не удобно... если посмотреть в дирректорию .dep в которой лежат файлы зависимости, то можно увидеть несколько файлов с именами как у исходников, но с расширением *.o.d, каждый из которых содержит список файлов, от которых зависит данный *.obj (свой *.с + все подключенные хидеры) наверное это можно сделать скриптом, но парсить исходники в наши задачи пока не входит))) нужна утилита, результатом работы которой была бы дирректрия .dep с файлами нужного формата вообще задача не сложная, решение должно быть! Изменено 12 января, 2009 пользователем helius Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MicroDiP 1 12 января, 2009 Опубликовано 12 января, 2009 · Жалоба вопрос №1 как автоматически генерировать зависимости файлов? как известно make это делает с пом. компилятора gcc, компилятор IAR же это делать не умеет (или я не знаю как )), а добавлять руками в Makefile имена исходников - не удобно... Папку dsPIC IAR C_C++ вместе с файлом Application необходимо разместить в каталог configs той дирректории, в которую установлен UEStudio. После этого в настройках и установках компиляторов появится и этот компилятор. По поводу зависимости файлов - это прописывается в настройках IDE. В том примере, что вы привели ссылку, это называется шаблонное правило. Не знаю точно, но думаю что в IDE самого иара эти зависимости прописаны жёстко, скорее всего в dll-ках (для каждого компилятора (читай каждого процессора) - свои расширения объектных файлов и, соответственно, свои зависимости), к которым уже обращается iarbuild.exe. Для внешней среды, если не используете иаровский билдер, то нужно прописывать их руками. В моём файле я эти зависимости прописывал. dsPIC_IAR_C_C__.rar Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zltigo 2 12 января, 2009 Опубликовано 12 января, 2009 · Жалоба ..компилятор IAR же это делать не умеет Умеет. И в том числе в make стиле. Документацию почитайте. По поводу зависимости файлов - это прописывается в настройках IDE Не :( это Вы чего-то совсем не понимаете :(. Например, при изменении header файла надо перекомпилировать все файлы куда он включен. P.S. А вообще, если к make не прикипели, то может быть обратите внимание на альтернативные типа http://www.scons.org Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MicroDiP 1 12 января, 2009 Опубликовано 12 января, 2009 · Жалоба Не :( это Вы чего-то совсем не понимаете :(. Например, при изменении header файла надо перекомпилировать все файлы куда он включен. P.S. А вообще, если к make не прикипели, то может быть обратите внимание на альтернативные типа http://www.scons.org Нет, это понятно. Я имею ввиду вот что: где прописывается в ИАРе, файлы с каким расширением должен выдать компилятор ? Эти файлы, в свою очередь, для кого являются входными файлами ? Какие файлы должен выдать на выходе линковщик ? И т.д. Вот сейчас прикручивал ИАР к UEStudio. Там всё это прописывается в конфиге. И на основании уже этих данных генерится make-файл и очерёдность выполнения тех или иных действий. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zltigo 2 12 января, 2009 Опубликовано 12 января, 2009 · Жалоба Нет, это понятно. Я имею ввиду вот что: где прописывается в ИАРе, файлы с каким расширением должен выдать компилятор ? расширения по умолчанию не задаются, но полное имя можете, как и у любого другого компилятора указывать. Расширения по умолчанию описаны в документации. Эти файлы, в свою очередь, для кого являются входными файлами ? Для кого прикажете в makefile для того и будут. Ничего не понял :( Какие файлы должен выдать на выходе линковщик ? какие прикажите ему (и типы, и имена, и расширения)такие и выдаст... Там всё это прописывается в конфиге. И на основании уже этих данных генерится make-файл и очерёдность выполнения тех или иных действий. Обсуждать автоматические генераторы makefiles совсем нет желания. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
helius 0 13 января, 2009 Опубликовано 13 января, 2009 · Жалоба Умеет. И в том числе в make стиле. Документацию почитайте. гм, хорошая новость, rtfm-лю ) наша задача не исползовать iarbuild, IDE и автогенерацию Makefile, так как речь идет о компиляции проектов для встраиваемых систем, то мне кажется, что большую часть проектов можно описать в Makefile руками, есть конечно какие то сложные и специфичные проекты с сложной структурой и фичами, типа автогенерации исходников в процессе компиляции для которых используют, например, Cmake утилиту, но это уже другая ветка )) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
helius 0 13 января, 2009 Опубликовано 13 января, 2009 (изменено) · Жалоба извиняюсь за темпы, много работы =) действительно, все очень просто, IAR отлично задокументирован и вобще оставил хорошее впечатление своей поддержкой командной строки и даже имеет ключики не доступные из IDE ))) польза от них - другой разговор ))) И так, я сделал заготовку Makefile, в коментах все заинтересовавшие меня ключи компиллера, make all: создание директорий /list /Obj /Exe как в IAR было давно заведено автопоиск всех исходных *.с, (пока в одной рабочей дирректории) компилирование всех исходников в обьектники с авто-построением зависимостей (директория /.dep) файлов в стиле make make clean: вычищение директорий от листингов, обьектников, и зависимостей что дальше 2DO: компилирование ассемблерных файлов тоже подключение директорий в которых лежат разные инкулюды (по стандартным и не очень путям) линковка по указанному файлу *.xcl выставляю на суд общественности, если кому интересно - гляньте пожалуйста, я make то учу только ))) Какой ужас! модераторы правда думают что кто то будет читать хелп к форуму на английском? ))) это нормально что по запросу Upload там ничего не нашлось? как файлы то вешать тут?! или только ftp? или у меня кармы не хватает? =)) test.txt Изменено 13 января, 2009 пользователем zltigo Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zltigo 2 13 января, 2009 Опубликовано 13 января, 2009 · Жалоба и даже имеет ключики не доступные из IDE ))) Из IDE доступны абсолютно все ключики, разве только не через галочки. как файлы то вешать тут?! Прямо при редактировании и вешать, правда форум сейчас в разбитом состоянии и говорят не у всех работает. Добавил "пустой" файл в Ваш пост. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
helius 0 13 января, 2009 Опубликовано 13 января, 2009 · Жалоба Из IDE доступны абсолютно все ключики, разве только не через галочки. "--no_wrap_diagnostics... This option is not available in the IAR Embedded Workbench IDE." стр 138, ARM® IAR C/C++ Compiler Reference Guide я вот что имел ввиду понятно, попробую завтра с работы ))) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zltigo 2 13 января, 2009 Опубликовано 13 января, 2009 · Жалоба This option is not available in the IAR... И генерация зависимостей недоступна и ... и .... и тем не менее все это можно указать в виде явных ключей в опциях. Нет только "галочек". Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
helius 0 13 января, 2009 Опубликовано 13 января, 2009 (изменено) · Жалоба асм компилится, папки поддерживаются )) теперь интересный вопрос, касающийся линковки и линкера что ему нужно кроме *.xcl файл + все наши обьектники? судя по листингу линкера, в командной строке он подключает C:\Program Files\IAR Systems\Embedded Workbench 4.0 Evaluation\ARM\LIB\dl4tptinl8f.r79" какой то обьектник... в хидере написано Customer-specific DLib configuration. таких файлов там всего то 84, как выбрать нужный я пока не знаю... ни какой связи к конкретным процессором я не нашел... кроме того, где то должны линковаться файлы отвечающие за lowlevelinit, это какой нибудь asm startup - где инициализация железа + c startup где инициализация среды (памяти, вход в main) Изменено 13 января, 2009 пользователем helius Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
helius 0 14 января, 2009 Опубликовано 14 января, 2009 · Жалоба Навесить у меня так и не получается (Firefox 3.0.5) поэтому держите линк: http://files.mail.ru/9S3R2Q Все двигается медленнее чем хотелось бы, мало времени... В следующим релизе постараюсь получше закоментить, а вобще, желательно если бы кто то посмотрел - попробовал, чтоб появлялись вопросы и мы их тут обсуждали иначе получится очередной шаблон... # чего нет: # не ищет зависимости асм файлов # не поддерживает контроль файлов, когда они в /obj, - перекомпилирует каждый раз всё, # поэтому пока генерит *.obj в рабочую директорию # что есть: # v1.2 # - поиск исходников (*.с, *.s79) в директориях перечисленных в переменной source_dirs # - компиляция *.с, *.s79 в обьектники r.79 (ложатся в корень проекта) # - автоматическая генерация зависимостей исходных файлов от хидеров *.h # - передача ключей компилятору # - цели all, clean # # v1.1 # - компиляция *.с исходников в *.obj все лежит в папке где Makefile Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zltigo 2 14 января, 2009 Опубликовано 14 января, 2009 · Жалоба а вобще, желательно если бы кто то посмотрел - попробовал, чтоб появлялись вопросы и мы их тут обсуждали иначе получится очередной шаблон... Ну, наверное, только к выходным поближе :( Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
IgorKossak 0 14 января, 2009 Опубликовано 14 января, 2009 · Жалоба # - компиляция *.с, *.s79 в обьектники r.79 (ложатся в корень проекта) Ложатся не обязательно в корень. Иногда удобнее, когда ложатся в <Имя_конфигурации>\Obj. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться