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

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


Местный
***

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



Добрый день,

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

Заранее спасибо.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
grisha_scorpion
сообщение Jun 14 2013, 14:00
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 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
Сообщение #3


Местный
***

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



Да и в GCC енто есть.
Go to the top of the page
 
+Quote Post
KRS
сообщение Jun 16 2013, 19:52
Сообщение #4


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

Группа: Модераторы
Сообщений: 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
Сообщение #5


Гуру
******

Группа: Модераторы
Сообщений: 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
Сообщение #6


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

Группа: Модераторы
Сообщений: 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
Сообщение #7


Гуру
******

Группа: Модераторы
Сообщений: 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
Сообщение #8


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

Группа: Модераторы
Сообщений: 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
Сообщение #9


Гуру
******

Группа: Модераторы
Сообщений: 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



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

 


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


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