Перейти к содержанию
    

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

Добрый день,

 

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Добрый день,

 

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

 

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Как сейчас не знаю, но в более ранних версиях в опциях линкера была такая галочка.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

как в GCC получить?

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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

 

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

Изменено пользователем IgorKossak

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Но если знать что делать можно от всех трех компиляторов код собрать GNU линкером.
5c4778ca8dad8f690b293db24b43b9f3.jpg

:)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сергей Борщ,

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

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

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

 

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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Но если знать что делать можно от всех трех компиляторов код собрать GNU линкером.

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...