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

 
 
3 страниц V  < 1 2 3 >  
Reply to this topicStart new topic
> Командная строка IAR
MicroDiP
сообщение Jan 12 2009, 11:46
Сообщение #16


Частый гость
**

Группа: Свой
Сообщений: 104
Регистрация: 31-07-05
Из: Shenzhen, China (深圳市, 中国)
Пользователь №: 7 233



Вот как раз только закончил ковырять мануалы линковщика и компилятора. Правда под dsPIC. Делал для создания конфигурационного файла под UEStudio. Потратил 3 дня. За то какая сейчас прелесть работать и компилить в UEStudio yeah.gif Если поможет, могу кинуть сам конфиг.файл для UEStudio: сделал его с русскими комментариями, думаю разберёшься. Да и make-файл по уже выставленным настройкам проекта создать - секундное дело.


--------------------
Все языки несут в себе черты своих обладателей. И идиомы каждого языка повторяются снова и снова: "Он чужеземец, а значит - варвар". (Роберт Хайнлайн)
Go to the top of the page
 
+Quote Post
helius
сообщение Jan 12 2009, 15:43
Сообщение #17


Участник
*

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



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 с файлами нужного формата

вообще задача не сложная, решение должно быть!

Сообщение отредактировал helius - Jan 12 2009, 16:33
Go to the top of the page
 
+Quote Post
MicroDiP
сообщение Jan 12 2009, 17:03
Сообщение #18


Частый гость
**

Группа: Свой
Сообщений: 104
Регистрация: 31-07-05
Из: Shenzhen, China (深圳市, 中国)
Пользователь №: 7 233



Цитата(helius @ Jan 12 2009, 23:43) *
вопрос №1 как автоматически генерировать зависимости файлов? как известно make это делает с пом. компилятора gcc, компилятор IAR же это делать не умеет (или я не знаю как )), а добавлять руками в Makefile имена исходников - не удобно...

Папку dsPIC IAR C_C++ вместе с файлом Application необходимо разместить в каталог configs той дирректории, в которую установлен UEStudio. После этого в настройках и установках компиляторов появится и этот компилятор.

По поводу зависимости файлов - это прописывается в настройках IDE. В том примере, что вы привели ссылку, это называется шаблонное правило. Не знаю точно, но думаю что в IDE самого иара эти зависимости прописаны жёстко, скорее всего в dll-ках (для каждого компилятора (читай каждого процессора) - свои расширения объектных файлов и, соответственно, свои зависимости), к которым уже обращается iarbuild.exe. Для внешней среды, если не используете иаровский билдер, то нужно прописывать их руками. В моём файле я эти зависимости прописывал.
Прикрепленные файлы
Прикрепленный файл  dsPIC_IAR_C_C__.rar ( 4.76 килобайт ) Кол-во скачиваний: 38
 


--------------------
Все языки несут в себе черты своих обладателей. И идиомы каждого языка повторяются снова и снова: "Он чужеземец, а значит - варвар". (Роберт Хайнлайн)
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jan 12 2009, 17:28
Сообщение #19


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(helius @ Jan 12 2009, 18:43) *
..компилятор IAR же это делать не умеет

Умеет. И в том числе в make стиле.
Документацию почитайте.



Цитата(МикроДИП @ Jan 12 2009, 20:03) *
По поводу зависимости файлов - это прописывается в настройках IDE

Не sad.gif это Вы чего-то совсем не понимаете sad.gif. Например, при изменении header файла надо перекомпилировать все файлы куда он включен.

P.S.
А вообще, если к make не прикипели, то может быть обратите внимание на альтернативные типа http://www.scons.org


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
MicroDiP
сообщение Jan 12 2009, 17:43
Сообщение #20


Частый гость
**

Группа: Свой
Сообщений: 104
Регистрация: 31-07-05
Из: Shenzhen, China (深圳市, 中国)
Пользователь №: 7 233



Цитата(zltigo @ Jan 13 2009, 01:28) *
Не sad.gif это Вы чего-то совсем не понимаете sad.gif. Например, при изменении header файла надо перекомпилировать все файлы куда он включен.
P.S.
А вообще, если к make не прикипели, то может быть обратите внимание на альтернативные типа http://www.scons.org

Нет, это понятно. Я имею ввиду вот что: где прописывается в ИАРе, файлы с каким расширением должен выдать компилятор ? Эти файлы, в свою очередь, для кого являются входными файлами ? Какие файлы должен выдать на выходе линковщик ? И т.д. Вот сейчас прикручивал ИАР к UEStudio. Там всё это прописывается в конфиге. И на основании уже этих данных генерится make-файл и очерёдность выполнения тех или иных действий.


--------------------
Все языки несут в себе черты своих обладателей. И идиомы каждого языка повторяются снова и снова: "Он чужеземец, а значит - варвар". (Роберт Хайнлайн)
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jan 12 2009, 18:23
Сообщение #21


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(МикроДИП @ Jan 12 2009, 20:43) *
Нет, это понятно. Я имею ввиду вот что: где прописывается в ИАРе, файлы с каким расширением должен выдать компилятор ?

расширения по умолчанию не задаются, но полное имя можете, как и у любого другого компилятора указывать. Расширения по умолчанию описаны в документации.
Цитата
Эти файлы, в свою очередь, для кого являются входными файлами ?

Для кого прикажете в makefile для того и будут. Ничего не понял sad.gif
Цитата
Какие файлы должен выдать на выходе линковщик ?

какие прикажите ему (и типы, и имена, и расширения)такие и выдаст...
Цитата
Там всё это прописывается в конфиге. И на основании уже этих данных генерится make-файл и очерёдность выполнения тех или иных действий.

Обсуждать автоматические генераторы makefiles совсем нет желания.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
helius
сообщение Jan 13 2009, 08:19
Сообщение #22


Участник
*

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



Цитата
Умеет. И в том числе в make стиле.
Документацию почитайте.

гм, хорошая новость, rtfm-лю )

наша задача не исползовать iarbuild, IDE и автогенерацию Makefile,
так как речь идет о компиляции проектов для встраиваемых систем, то мне кажется, что большую часть проектов можно описать в Makefile руками, есть конечно какие то сложные и специфичные проекты с сложной структурой и фичами, типа автогенерации исходников в процессе компиляции для которых используют, например, Cmake утилиту, но это уже другая ветка ))
Go to the top of the page
 
+Quote Post
helius
сообщение Jan 13 2009, 19:06
Сообщение #23


Участник
*

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



извиняюсь за темпы, много работы =)

действительно, все очень просто, IAR отлично задокументирован и вобще оставил хорошее впечатление своей поддержкой командной строки и даже имеет ключики не доступные из IDE ))) польза от них - другой разговор )))
И так, я сделал заготовку Makefile, в коментах все заинтересовавшие меня ключи компиллера,
make all:
создание директорий /list /Obj /Exe как в IAR было давно заведено
автопоиск всех исходных *.с, (пока в одной рабочей дирректории)
компилирование всех исходников в обьектники с авто-построением зависимостей (директория /.dep) файлов в стиле make
make clean:
вычищение директорий от листингов, обьектников, и зависимостей

что дальше 2DO:
компилирование ассемблерных файлов тоже
подключение директорий в которых лежат разные инкулюды (по стандартным и не очень путям)
линковка по указанному файлу *.xcl

выставляю на суд общественности, если кому интересно - гляньте пожалуйста, я make то учу только )))

Какой ужас! модераторы правда думают что кто то будет читать хелп к форуму на английском? ))) это нормально что по запросу Upload там ничего не нашлось? как файлы то вешать тут?! или только ftp? или у меня кармы не хватает? =))

Сообщение отредактировал zltigo - Jan 13 2009, 19:45
Прикрепленные файлы
Прикрепленный файл  test.txt ( 4 байт ) Кол-во скачиваний: 100
 
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jan 13 2009, 19:42
Сообщение #24


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(helius @ Jan 13 2009, 22:06) *
и даже имеет ключики не доступные из IDE )))

Из IDE доступны абсолютно все ключики, разве только не через галочки.


Цитата(helius @ Jan 13 2009, 22:06) *
как файлы то вешать тут?!

Прямо при редактировании и вешать, правда форум сейчас в разбитом состоянии и говорят не у всех работает. Добавил "пустой" файл в Ваш пост.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
helius
сообщение Jan 13 2009, 20:58
Сообщение #25


Участник
*

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



Цитата(zltigo @ Jan 14 2009, 01:42) *
Из IDE доступны абсолютно все ключики, разве только не через галочки.

"--no_wrap_diagnostics... This option is not available in the IAR Embedded Workbench IDE." стр 138, ARM® IAR C/C++ Compiler Reference Guide
я вот что имел ввиду

понятно, попробую завтра с работы )))
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jan 13 2009, 21:32
Сообщение #26


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(helius @ Jan 13 2009, 23:58) *
This option is not available in the IAR...

И генерация зависимостей недоступна и ... и .... и тем не менее все это можно указать в виде явных ключей в опциях. Нет только "галочек".


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
helius
сообщение Jan 13 2009, 23:32
Сообщение #27


Участник
*

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



асм компилится, папки поддерживаются ))
теперь интересный вопрос, касающийся линковки и линкера
что ему нужно кроме *.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)

Сообщение отредактировал helius - Jan 13 2009, 23:35
Go to the top of the page
 
+Quote Post
helius
сообщение Jan 14 2009, 09:08
Сообщение #28


Участник
*

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



Навесить у меня так и не получается (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
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jan 14 2009, 09:34
Сообщение #29


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(helius @ Jan 14 2009, 12:08) *
а вобще, желательно если бы кто то посмотрел - попробовал, чтоб появлялись вопросы и мы их тут обсуждали
иначе получится очередной шаблон...

Ну, наверное, только к выходным поближе sad.gif


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Jan 14 2009, 09:45
Сообщение #30


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



Цитата(helius @ Jan 14 2009, 11:08) *
# - компиляция *.с, *.s79 в обьектники r.79 (ложатся в корень проекта)

Ложатся не обязательно в корень. Иногда удобнее, когда ложатся в <Имя_конфигурации>\Obj.
Go to the top of the page
 
+Quote Post

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

 


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


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