klop 0 14 июня, 2013 Опубликовано 14 июня, 2013 · Жалоба Добрый день, Очень нужно получить листинг программы целиком. Пока же удалось заставить компилятор генерить отдельные листинги на отдельные с файлы. Заранее спасибо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Rst7 5 14 июня, 2013 Опубликовано 14 июня, 2013 · Жалоба Так и будет. Раздельная компиляция же. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
grisha_scorpion 0 14 июня, 2013 Опубликовано 14 июня, 2013 · Жалоба Добрый день, Очень нужно получить листинг программы целиком. Пока же удалось заставить компилятор генерить отдельные листинги на отдельные с файлы. Заранее спасибо. Хороший вопрос. Давно тоже хотел спросить как делается это в IARе. Для сравнения, собираю проект в ADS и на выходе получаю листинг всей программы в одном файле. Очень удобно анализировать всю прогу целиком. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
klop 0 14 июня, 2013 Опубликовано 14 июня, 2013 · Жалоба Да и в GCC енто есть. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
IgorKossak 0 14 июня, 2013 Опубликовано 14 июня, 2013 · Жалоба Как сейчас не знаю, но в более ранних версиях в опциях линкера была такая галочка. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
KRS 0 16 июня, 2013 Опубликовано 16 июня, 2013 · Жалоба Да и в GCC енто есть. как в GCC получить? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 119 16 июня, 2013 Опубликовано 16 июня, 2013 · Жалоба как в GCC получить? $(LSS): $(ELF) @echo Generating disassembly: $@ $(OBJDUMP) -h -S $< > $@ Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
KRS 0 17 июня, 2013 Опубликовано 17 июня, 2013 · Жалоба $(LSS): $(ELF) @echo Generating disassembly: $@ $(OBJDUMP) -h -S $< > $@ так этим способом и IARовский out файл можно подсунуть GNU objdump. Теперь же EABI все генерят, работает. Да кстати листинг получается в некотором роде лучше чем родной IAR! Например внутренности inline функций видны. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 119 17 июня, 2013 Опубликовано 17 июня, 2013 · Жалоба Теперь же EABI все генерят, работает.Возможно. Все меняется. Когда IAR только-только отказался от своего формата, его демо-версия генерила какой-то не очень совместимый elf. Полную совместимость обещали за деньги. С тех пор я на него не смотрел. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
KRS 0 17 июня, 2013 Опубликовано 17 июня, 2013 (изменено) · Жалоба Возможно. Все меняется. Когда IAR только-только отказался от своего формата, его демо-версия генерила какой-то не очень совместимый elf. Полную совместимость обещали за деньги. С тех пор я на него не смотрел. А сейчас те объектники которые после компиляции файлов получаются - до линковки с флагом идут о несовместимости. Кстати как и родного ARM компилятора. А после линковки конечный elf уже полностью совместимый! Так что заменить IAR линкер, ARM линкер на GNU в прямую не получится. Но можно в elf снять флаг, тогда все линкуется. Только надо учитывать что у IAR там не зря флаг стоит потому что линкер генерит на лету некоторые секции (INITTAB). Но если знать что делать можно от всех трех компиляторов код собрать GNU линкером. Изменено 17 июня, 2013 пользователем IgorKossak Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 119 17 июня, 2013 Опубликовано 17 июня, 2013 · Жалоба Но если знать что делать можно от всех трех компиляторов код собрать GNU линкером. :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
KRS 0 17 июня, 2013 Опубликовано 17 июня, 2013 · Жалоба Сергей Борщ, С практической точки зрения - можно вставлять код генерированный ARM компилятором в GNU или IAR проекты (иаровский линкер тоже "жрет! подпиленные ARM файлы). ARM компилятор в некоторых случаях генерит самый быстрый код. Я, например, тестировал распаковку LZMA. http://electronix.ru/forum/lofiversion/index.php/t68880.html но отлаживал все в IAR, и пользовался его линкером и для GNU и для ARM. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
neiver 0 17 июня, 2013 Опубликовано 17 июня, 2013 · Жалоба Но если знать что делать можно от всех трех компиляторов код собрать GNU линкером. Можно-то можно, но есть ньюансы. IAR & ARM компиляторы обильно генерируют релокации R_ARM_THM_PC12 и R_ARM_THM_PC8 в объектниках. А гнутый линкер их некорректно обрабатывает. http://we.easyelectronics.ru/CADSoft/eto-zh-open-source.html Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться