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

 
 
 
Reply to this topicStart new topic
> Получение листинга проги в IAR
klop
сообщение Jun 14 2013, 13:37
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 433
Регистрация: 28-02-06
Пользователь №: 14 788



Добрый день,

Очень нужно получить листинг программы целиком. Пока же удалось заставить компилятор генерить отдельные листинги на отдельные с файлы.

Заранее спасибо.
Go to the top of the page
 
+Quote Post
Rst7
сообщение Jun 14 2013, 13:45
Сообщение #2


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Так и будет. Раздельная компиляция же.


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
grisha_scorpion
сообщение Jun 14 2013, 14:00
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 26
Регистрация: 24-08-10
Пользователь №: 59 074



Цитата(klop @ Jun 14 2013, 16:37) *
Добрый день,

Очень нужно получить листинг программы целиком. Пока же удалось заставить компилятор генерить отдельные листинги на отдельные с файлы.

Заранее спасибо.

Хороший вопрос. Давно тоже хотел спросить как делается это в IARе. Для сравнения, собираю проект в ADS и на выходе получаю листинг всей программы в одном файле. Очень удобно анализировать всю прогу целиком.
Go to the top of the page
 
+Quote Post
klop
сообщение Jun 14 2013, 14:55
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 433
Регистрация: 28-02-06
Пользователь №: 14 788



Да и в GCC енто есть.
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Jun 14 2013, 18:06
Сообщение #5


Шаман
******

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



Как сейчас не знаю, но в более ранних версиях в опциях линкера была такая галочка.
Go to the top of the page
 
+Quote Post
KRS
сообщение Jun 16 2013, 19:52
Сообщение #6


Профессионал
*****

Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555



Цитата(klop @ Jun 14 2013, 18:55) *
Да и в GCC енто есть.

как в GCC получить?
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Jun 16 2013, 22:29
Сообщение #7


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



QUOTE (KRS @ Jun 16 2013, 22:52) *
как в GCC получить?

CODE
$(LSS): $(ELF)
    @echo Generating disassembly: $@
    $(OBJDUMP) -h -S $< > $@



--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
KRS
сообщение Jun 17 2013, 06:24
Сообщение #8


Профессионал
*****

Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555



Цитата(Сергей Борщ @ Jun 17 2013, 02:29) *
Код
$(LSS): $(ELF)
    @echo Generating disassembly: $@
    $(OBJDUMP) -h -S $< > $@

так этим способом и IARовский out файл можно подсунуть GNU objdump. Теперь же EABI все генерят, работает.

Да кстати листинг получается в некотором роде лучше чем родной IAR! Например внутренности inline функций видны.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Jun 17 2013, 06:39
Сообщение #9


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



QUOTE (KRS @ Jun 17 2013, 09:24) *
Теперь же EABI все генерят, работает.
Возможно. Все меняется. Когда IAR только-только отказался от своего формата, его демо-версия генерила какой-то не очень совместимый elf. Полную совместимость обещали за деньги. С тех пор я на него не смотрел.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
KRS
сообщение Jun 17 2013, 07:44
Сообщение #10


Профессионал
*****

Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555



Цитата(Сергей Борщ @ Jun 17 2013, 10:39) *
Возможно. Все меняется. Когда IAR только-только отказался от своего формата, его демо-версия генерила какой-то не очень совместимый elf. Полную совместимость обещали за деньги. С тех пор я на него не смотрел.

А сейчас те объектники которые после компиляции файлов получаются - до линковки с флагом идут о несовместимости. Кстати как и родного ARM компилятора. А после линковки конечный elf уже полностью совместимый!

Так что заменить IAR линкер, ARM линкер на GNU в прямую не получится. Но можно в elf снять флаг, тогда все линкуется. Только надо учитывать что у IAR там не зря флаг стоит потому что линкер генерит на лету некоторые секции (INITTAB). Но если знать что делать можно от всех трех компиляторов код собрать GNU линкером.

Сообщение отредактировал IgorKossak - Jun 17 2013, 07:44
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Jun 17 2013, 08:01
Сообщение #11


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



QUOTE (KRS @ Jun 17 2013, 10:44) *
Но если знать что делать можно от всех трех компиляторов код собрать GNU линкером.

sm.gif


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
KRS
сообщение Jun 17 2013, 08:11
Сообщение #12


Профессионал
*****

Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555



Сергей Борщ,
С практической точки зрения - можно вставлять код генерированный ARM компилятором в GNU или IAR проекты (иаровский линкер тоже "жрет! подпиленные ARM файлы).
ARM компилятор в некоторых случаях генерит самый быстрый код. Я, например, тестировал распаковку LZMA.
http://electronix.ru/forum/lofiversion/index.php/t68880.html

но отлаживал все в IAR, и пользовался его линкером и для GNU и для ARM.
Go to the top of the page
 
+Quote Post
neiver
сообщение Jun 17 2013, 18:28
Сообщение #13


Местный
***

Группа: Участник
Сообщений: 214
Регистрация: 22-03-10
Из: Саратов
Пользователь №: 56 123



Цитата(KRS @ Jun 17 2013, 11:44) *
Но если знать что делать можно от всех трех компиляторов код собрать GNU линкером.

Можно-то можно, но есть ньюансы. IAR & ARM компиляторы обильно генерируют релокации R_ARM_THM_PC12 и R_ARM_THM_PC8 в объектниках. А гнутый линкер их некорректно обрабатывает.
http://we.easyelectronics.ru/CADSoft/eto-zh-open-source.html
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 07:16
Рейтинг@Mail.ru


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