|
Командная строка IAR |
|
|
|
Oct 10 2008, 10:21
|

Группа: Новичок
Сообщений: 5
Регистрация: 25-06-08
Пользователь №: 38 555

|
Есть проект в IAR. Компилируется нормально. Создается файл HEX. Как можно этот проект скомпилировать из командной строки? Когда проект компилируется из оболочки создается файл .lst с содержанием # 09/Oct/2008 18:21:56 # # IAR Atmel AVR C/C++ Compiler V4.10A/W32, Evaluation Version # # Copyright 1996-2005 IAR Systems. All rights reserved. # # # # Source file = T:\test\Pult_X-SAT_Mega88.c # # Command line = --cpu=m48 -ms -o T:\test\Debug\Obj\ -lC # # T:\test\Debug\List\ -lA T:\test\Debug\List\ # # --initializers_in_flash -z9 --no_cse --no_inline # # --no_code_motion --no_cross_call --no_clustering # # --no_tbaa --debug -DENABLE_BIT_DEFINITIONS -e -I # # "C:\Program Files\IAR Systems\Embedded Workbench # # Evaluation version\avr\INC\" -I "C:\Program Files\IAR # # Systems\Embedded Workbench Evaluation # # version\avr\INC\CLIB\" --eeprom_size 256 # # T:\test\Pult_X-SAT_Mega88.c # # List file = T:\test\Debug\List\Pult_X-SAT_Mega88.lst # # Object file = T:\test\Debug\Obj\Pult_X-SAT_Mega88.r90 #
Спасибо за ответы.
--------------------
Печатные платы, паяльная паста, трафарет для паяльной пасты, шильдики. Онлайн калькулятор цены pcbtut.com
|
|
|
|
3 страниц
1 2 3 >
|
 |
Ответов
(1 - 34)
|
Oct 10 2008, 13:17
|

Группа: Новичок
Сообщений: 5
Регистрация: 25-06-08
Пользователь №: 38 555

|
Цитата(zltigo @ Oct 10 2008, 13:32)  Полагаю, что iarbuild устроит. Про него и читайте. Устроит если заработает. Пишет C:\Program Files\IAR Systems\Embedded Workbench Evaluation version\common\bin>iarbuild.exe X:\test\Pult_X-SAT_Mega88.ewp -build -make IAR Command Line Build Utility V4.4.1 Copyright 2002-2004 IAR Systems. All rights reserved. ERROR, Configuration not found: Can not build configuration. Можете дать пример какойто командной строки. Спасибо
--------------------
Печатные платы, паяльная паста, трафарет для паяльной пасты, шильдики. Онлайн калькулятор цены pcbtut.com
|
|
|
|
|
Oct 10 2008, 13:50
|

Группа: Новичок
Сообщений: 5
Регистрация: 25-06-08
Пользователь №: 38 555

|
Извините что задаю глупые вопросы. А что подразумевается под фразой название_конфигурации?
--------------------
Печатные платы, паяльная паста, трафарет для паяльной пасты, шильдики. Онлайн калькулятор цены pcbtut.com
|
|
|
|
|
Nov 30 2008, 19:58
|

Участник

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

|
Цитата C:\Program Files\IAR Systems\Embedded Workbench Evaluation version\common\bin>iarbuild.exe X:\test\Pult_X-SAT_Mega88.ewp -build -make
ERROR, Configuration not found: Can not build configuration. Попробуй в качестве конфигурации указать Release или Debug - те что обычно создаются... я не знаю где они сохраняются в проекте, но тем неменее так работает (учитывай регистр!) а вобще то минус в том, что при добавлении файлов или изменении опций компилера/линкера, все равно запускать IDE придется
|
|
|
|
|
Dec 1 2008, 07:10
|

Местный
  
Группа: Свой
Сообщений: 370
Регистрация: 7-11-06
Пользователь №: 22 035

|
А зачем iarbuld, использовать??? Можно прекрасно, компилировать исходники и линковать объектники и без создания иаровских проектов, воркспейсов и пр. Компилятор есть, линкер есть, построитель библиотек (аж 2 штуки) есть... Вам же даётся пример командной строки в lst файлах, собственно, что ещё нужно то  ???? И при добавлении, удалении файлов и прочих манипуляций иаровское IDE совсем не нужно. Единственное, что может облегчить жизнь, так это скрипт файл с правилами сборки, для той IDE, которой вы пользуетесь.
|
|
|
|
|
Dec 1 2008, 07:22
|

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

|
Цитата(xelax @ Dec 1 2008, 10:10)  А зачем iarbuld, использовать??? Незачем, но вопрос начинался "Есть проект в IAR..." Кроме того, почти наверняка могу предположить, что ничем, кроме этой самой IDE не пользуются
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Dec 1 2008, 07:32
|

Участник

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

|
Цитата(xelax @ Dec 1 2008, 14:10)  Единственное, что может облегчить жизнь, так это скрипт файл с правилами сборки, для той IDE, которой вы пользуетесь. gnu make утилита облегчит всем нам жизнь как в winavr =)) но изучение документации компиллера - линкера на предмет ключей командной строки - занимет какое то время, кроме того, если не работал с компиллером год, а потом пытаешься по make понять что же ты хотел в target получить - опять рыть мануалы... (кайф ведь не в том, чтобы ключи ручками писать, а в гибкости!) хорошо бы иметь генератор make файла для каждого компиллера, эдакая гуевая связка, хоть и неспортивно конечно
Сообщение отредактировал helius - Dec 1 2008, 07:35
|
|
|
|
|
Dec 1 2008, 11:40
|

Местный
  
Группа: Свой
Сообщений: 370
Регистрация: 7-11-06
Пользователь №: 22 035

|
Цитата(helius @ Dec 1 2008, 10:32)  хорошо бы иметь генератор make файла для каждого компиллера, эдакая гуевая связка, хоть и неспортивно конечно Угу, тоже уже такая идея крутится, по поводу GUI. Да и пример есть более менее приемлемый. Конфигуратор eCos. А изучать документацию на линкер и компилер всё равно надо, без этого никак.
|
|
|
|
|
Dec 1 2008, 17:24
|

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

|
Цитата(helius @ Dec 1 2008, 10:32)  но изучение документации компиллера - линкера на предмет ключей командной строки - занимет какое то время Много-много меньшее, нежели копание по хрен как расположенным мнгогуровневым меню в какой-либо IDE. Окинул все почти одни взгядом. занеес в makefile и откомментировал (можно copy-paste  ). И после этого через год - тоже все, как на ладони. Цитата хорошо бы иметь генератор make файла для каждого компиллера, эдакая гуевая связка, хоть и неспортивно конечно Нинафиг не нужно.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Dec 2 2008, 03:50
|
Участник

Группа: Участник
Сообщений: 24
Регистрация: 18-06-07
Из: Челябинск
Пользователь №: 28 529

|
Цитата Много-много меньшее, нежели копание по хрен как расположенным мнгогуровневым меню в какой-либо IDE. Окинул все почти одни взгядом. занеес в makefile и откомментировал (можно copy-paste ). И после этого через год - тоже все, как на ладони. А можно какой-нибудь примерчик такого makefile?
--------------------
- Своя программа жизни -
|
|
|
|
|
Jan 12 2009, 08:39
|

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

|
Цитата(helius @ Jan 12 2009, 11:27)  потому что редко кто идет таким путем... неужели  Цитата А может быть коллективно создадим тут примерчик Makefile? С зависимостями, с коментариями, для AVR, ARM, может еще каких платформ... "Примерчиков" и документации для make немеряно. Платформа вообще никагого значения не имеет. Предлагаемую работу c целью осознания или каждый делает сам для себя, либо продолжает созерцать картинки и галочки, что меньшее зло, нежели без понятия использовать "образцы"....
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Jan 12 2009, 11:46
|

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

|
Вот как раз только закончил ковырять мануалы линковщика и компилятора. Правда под dsPIC. Делал для создания конфигурационного файла под UEStudio. Потратил 3 дня. За то какая сейчас прелесть работать и компилить в UEStudio  Если поможет, могу кинуть сам конфиг.файл для UEStudio: сделал его с русскими комментариями, думаю разберёшься. Да и make-файл по уже выставленным настройкам проекта создать - секундное дело.
--------------------
Все языки несут в себе черты своих обладателей. И идиомы каждого языка повторяются снова и снова: "Он чужеземец, а значит - варвар". (Роберт Хайнлайн)
|
|
|
|
|
Jan 12 2009, 15:43
|

Участник

Группа: Участник
Сообщений: 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
|
|
|
|
|
Jan 12 2009, 17:03
|

Частый гость
 
Группа: Свой
Сообщений: 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. Для внешней среды, если не используете иаровский билдер, то нужно прописывать их руками. В моём файле я эти зависимости прописывал.
--------------------
Все языки несут в себе черты своих обладателей. И идиомы каждого языка повторяются снова и снова: "Он чужеземец, а значит - варвар". (Роберт Хайнлайн)
|
|
|
|
|
Jan 12 2009, 17:28
|

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

|
Цитата(helius @ Jan 12 2009, 18:43)  ..компилятор IAR же это делать не умеет Умеет. И в том числе в make стиле. Документацию почитайте. Цитата(МикроДИП @ Jan 12 2009, 20:03)  По поводу зависимости файлов - это прописывается в настройках IDE Не  это Вы чего-то совсем не понимаете  . Например, при изменении header файла надо перекомпилировать все файлы куда он включен. P.S. А вообще, если к make не прикипели, то может быть обратите внимание на альтернативные типа http://www.scons.org
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Jan 12 2009, 17:43
|

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

|
Цитата(zltigo @ Jan 13 2009, 01:28)  Не  это Вы чего-то совсем не понимаете  . Например, при изменении header файла надо перекомпилировать все файлы куда он включен. P.S. А вообще, если к make не прикипели, то может быть обратите внимание на альтернативные типа http://www.scons.orgНет, это понятно. Я имею ввиду вот что: где прописывается в ИАРе, файлы с каким расширением должен выдать компилятор ? Эти файлы, в свою очередь, для кого являются входными файлами ? Какие файлы должен выдать на выходе линковщик ? И т.д. Вот сейчас прикручивал ИАР к UEStudio. Там всё это прописывается в конфиге. И на основании уже этих данных генерится make-файл и очерёдность выполнения тех или иных действий.
--------------------
Все языки несут в себе черты своих обладателей. И идиомы каждого языка повторяются снова и снова: "Он чужеземец, а значит - варвар". (Роберт Хайнлайн)
|
|
|
|
|
Jan 12 2009, 18:23
|

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

|
Цитата(МикроДИП @ Jan 12 2009, 20:43)  Нет, это понятно. Я имею ввиду вот что: где прописывается в ИАРе, файлы с каким расширением должен выдать компилятор ? расширения по умолчанию не задаются, но полное имя можете, как и у любого другого компилятора указывать. Расширения по умолчанию описаны в документации. Цитата Эти файлы, в свою очередь, для кого являются входными файлами ? Для кого прикажете в makefile для того и будут. Ничего не понял  Цитата Какие файлы должен выдать на выходе линковщик ? какие прикажите ему (и типы, и имена, и расширения)такие и выдаст... Цитата Там всё это прописывается в конфиге. И на основании уже этих данных генерится make-файл и очерёдность выполнения тех или иных действий. Обсуждать автоматические генераторы makefiles совсем нет желания.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Jan 13 2009, 08:19
|

Участник

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

|
Цитата Умеет. И в том числе в make стиле. Документацию почитайте. гм, хорошая новость, rtfm-лю ) наша задача не исползовать iarbuild, IDE и автогенерацию Makefile, так как речь идет о компиляции проектов для встраиваемых систем, то мне кажется, что большую часть проектов можно описать в Makefile руками, есть конечно какие то сложные и специфичные проекты с сложной структурой и фичами, типа автогенерации исходников в процессе компиляции для которых используют, например, Cmake утилиту, но это уже другая ветка ))
|
|
|
|
|
Jan 13 2009, 19:06
|

Участник

Группа: Участник
Сообщений: 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
|
|
|
|
|
Jan 13 2009, 19:42
|

Гуру
     
Группа: Свой
Сообщений: 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
|
|
|
|
|
Jan 13 2009, 20:58
|

Участник

Группа: Участник
Сообщений: 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 я вот что имел ввиду понятно, попробую завтра с работы )))
|
|
|
|
|
Jan 14 2009, 09:08
|

Участник

Группа: Участник
Сообщений: 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
|
|
|
|
|
Jan 14 2009, 11:03
|

Участник

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

|
Цитата Ложатся не обязательно в корень. Иногда удобнее, когда ложатся в <Имя_конфигурации>\Obj. Согласен! конфигурации - позже ))) с начала охота дойти до бинарников )) ну вот с дирректорией /obj пока не выходит, положить туда не вопрос! туплю как сделать так, чтобы make потом видел эти файлы там и не перекомпилировал исходники каждый раз, займусь позже... Цитата Ну, наверное, только к выходным поближе sad.gif Не вопрос! )) вобще я жду коментов от людей желающих разобраться в вопросе командно-промтного билда )) Но всегда буду рад любой критике! =))
|
|
|
|
|
Jan 23 2009, 20:46
|

Участник

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

|
Всем Привет. Прикрутил линкер, пока очень тупо - для отладки Makefile, все пашет, листинги, обьектники, *.hex генерится Разбираюсь с осмысленным запуском линкера И остаются красивости, типо работы с svn и прочее ))) линк на makefile http://files.mail.ru/MKJ36N
|
|
|
|
|
Feb 14 2009, 21:42
|
Участник

Группа: Участник
Сообщений: 22
Регистрация: 1-07-07
Пользователь №: 28 824

|
Когда-то тоже интересовался этой темой, но бросил - не хватило терпения. Для себя решил следующее: Как правило, приходится работать с одним-двумя контроллерами, опции проекта зачастую похожи. Поэтому можно иметь пару-тройку шаблонных проектов, из которых и создавать новый (просто скопировав в нужную директорию, например, из репозитория). Утилита iarbuild намного лучше меня разберется, как это скомпилить. Самый главный напряг при работе с проектом - необходимость запуска IDE для добавления файлов. В то же время, для такой нечастой операции, как изменение, например, числа залоченных регистров, IDE имхо удобнее. Пришлось искать компромисс. В кратце, принцип такой - при добавлении файлов в проект автоматически изменяется файл ewp (вырезается список включенных в проект файлов, генерится новый и заносится в проект). У меня это делает sed. Если нужно менять опции - использую IDE. Может, получилось криво и идеологически неправильно, но пока это работает, и меня устраивает.
Прикрепленные файлы
tmp.zip ( 1.57 килобайт )
Кол-во скачиваний: 52
|
|
|
|
|
Mar 7 2009, 20:17
|

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

|
Цитата(helius @ Jan 14 2009, 13:03)  Согласен! конфигурации - позже ))) с начала охота дойти до бинарников )) ну вот с дирректорией /obj пока не выходит, положить туда не вопрос! туплю как сделать так, чтобы make потом видел эти файлы там и не перекомпилировал исходники каждый раз, займусь позже...
Не вопрос! )) вобще я жду коментов от людей желающих разобраться в вопросе командно-промтного билда )) Но всегда буду рад любой критике! =)) Вот мой Makefile, есть поддержка obj/ и еще всякое. Может быть будет интересно. Впрочем, ужасно запутано. P.S. Просмотрел Ваш труд, если всё упорядочить и слить может получиться очень красиво, и, главное, полезно
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|