Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Получение листинга проги в IAR
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Cредства разработки для МК > IAR
klop
Добрый день,

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

Заранее спасибо.
Rst7
Так и будет. Раздельная компиляция же.
grisha_scorpion
Цитата(klop @ Jun 14 2013, 16:37) *
Добрый день,

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

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

Хороший вопрос. Давно тоже хотел спросить как делается это в IARе. Для сравнения, собираю проект в ADS и на выходе получаю листинг всей программы в одном файле. Очень удобно анализировать всю прогу целиком.
klop
Да и в GCC енто есть.
IgorKossak
Как сейчас не знаю, но в более ранних версиях в опциях линкера была такая галочка.
KRS
Цитата(klop @ Jun 14 2013, 18:55) *
Да и в GCC енто есть.

как в GCC получить?
Сергей Борщ
QUOTE (KRS @ Jun 16 2013, 22:52) *
как в GCC получить?

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

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

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

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

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

Так что заменить IAR линкер, ARM линкер на GNU в прямую не получится. Но можно в elf снять флаг, тогда все линкуется. Только надо учитывать что у IAR там не зря флаг стоит потому что линкер генерит на лету некоторые секции (INITTAB). Но если знать что делать можно от всех трех компиляторов код собрать GNU линкером.
Сергей Борщ
QUOTE (KRS @ Jun 17 2013, 10:44) *
Но если знать что делать можно от всех трех компиляторов код собрать GNU линкером.

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

но отлаживал все в IAR, и пользовался его линкером и для GNU и для ARM.
neiver
Цитата(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
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.