Jump to content

    
Sign in to follow this  
klop

Получение листинга проги в IAR

Recommended Posts

Добрый день,

 

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

 

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

Share this post


Link to post
Share on other sites
Добрый день,

 

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

 

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

Хороший вопрос. Давно тоже хотел спросить как делается это в IARе. Для сравнения, собираю проект в ADS и на выходе получаю листинг всей программы в одном файле. Очень удобно анализировать всю прогу целиком.

Share this post


Link to post
Share on other sites
$(LSS): $(ELF)
    @echo Generating disassembly: $@
    $(OBJDUMP) -h -S $< > $@

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

 

Да кстати листинг получается в некотором роде лучше чем родной IAR! Например внутренности inline функций видны.

Share this post


Link to post
Share on other sites
Теперь же EABI все генерят, работает.
Возможно. Все меняется. Когда IAR только-только отказался от своего формата, его демо-версия генерила какой-то не очень совместимый elf. Полную совместимость обещали за деньги. С тех пор я на него не смотрел.

 

Share this post


Link to post
Share on other sites
Возможно. Все меняется. Когда IAR только-только отказался от своего формата, его демо-версия генерила какой-то не очень совместимый elf. Полную совместимость обещали за деньги. С тех пор я на него не смотрел.

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

 

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

Edited by IgorKossak

Share this post


Link to post
Share on other sites

Сергей Борщ,

С практической точки зрения - можно вставлять код генерированный ARM компилятором в GNU или IAR проекты (иаровский линкер тоже "жрет! подпиленные ARM файлы).

ARM компилятор в некоторых случаях генерит самый быстрый код. Я, например, тестировал распаковку LZMA.

http://electronix.ru/forum/lofiversion/index.php/t68880.html

 

но отлаживал все в IAR, и пользовался его линкером и для GNU и для ARM.

 

Share this post


Link to post
Share on other sites
Но если знать что делать можно от всех трех компиляторов код собрать GNU линкером.

Можно-то можно, но есть ньюансы. IAR & ARM компиляторы обильно генерируют релокации R_ARM_THM_PC12 и R_ARM_THM_PC8 в объектниках. А гнутый линкер их некорректно обрабатывает.

http://we.easyelectronics.ru/CADSoft/eto-zh-open-source.html

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this