Опция инструментария компилятора ADS 1.2 C

Я пытаюсь добавить вызовы инструментария/профилирования в источник C. Многие найденные мной компиляторы имеют флаги, позволяющие это делать (--gnu_instrument, -finsturment-functions и т.д.). Затем вы предоставляете определения для вставленных вызовов функций. Оттуда вы можете делать интересные вещи с результирующим графиком вызовов и любыми показателями, которые вы решите извлечь из вызовов профилирования.

Однако мне нужен инструментальный код, скомпилированный с помощью ADS 1.2.

Установщик здесь

(исходный код собран с помощью \ARM\ADSv1_2\Bin\armcc.exe)

Документы

Честно говоря, этот компилятор кажется мне довольно старым, и мне трудно найти много полезной информации. Что мне действительно нужно, так это просто полный список опций компилятора для проверки, но я должен его упустить. (Связанные документы кажутся неполными с точки зрения вариантов)

Я наткнулся на использование -instrument в качестве параметра, который, хотя и не дает ошибок (когда явно неправильный флаг, -asdf), не влияет на сгенерированную сборку при использовании -S. Но я не смог найти -instrument в каких-либо документах или меню справки, поэтому я мог просто использовать его неправильно. Или я полагаю, что это может быть функция, которая была удалена, но все еще позволяет вам компилировать без ошибок, я действительно понятия не имею.

Если у кого-то есть опыт работы с этим компилятором или он просто лучше разбирается в Google, любая помощь будет оценена по достоинству.


person Idan Reed    schedule 19.06.2019    source источник
comment
этот компилятор кажется довольно старым, это определенно так - выпуск IIRC ADS 1.2 был в 2001 году.   -  person solidpixel    schedule 19.06.2019
comment
Я считаю, что он не используется для новых проектов, но, к сожалению, от него слишком многое зависит и слишком мало причин переключаться с него на старые проекты (где я работаю).   -  person Idan Reed    schedule 19.06.2019
comment
ads 1.2 производил гораздо более жесткий код, чем gcc, и gcc действительно не сильно улучшился, на самом деле это не компилятор для производительности, а скорее общий компилятор для многих целей. если ADS 1.2 бесплатен и не требует лицензии, возможно, это хороший компилятор для разработки инструкций для 32-битных рук. режим большого пальца? Ну, это оригинал, который очень портативный. нет расширений thumb2. что касается вашего вопроса, я так не работаю, поэтому не знаю, как это сделать на любом компиляторе, а тем более на этом...   -  person old_timer    schedule 19.06.2019
comment
конечно, тогда я использовал dhrystone, и тесты в целом - BS, потому что с ними так легко манипулировать результатами. так что мне пришлось бы снова провести время против llvm/clang и gnu, чтобы увидеть, как они складываются...   -  person old_timer    schedule 19.06.2019


Ответы (1)


Я не думаю, что есть лучшая документация (но устаревшие наборы инструментов - не моя область).

Да, компилятор 2001 года выпуска. Я думаю, что вы, скорее всего, добьетесь успеха, глядя на трассировку ETM для ненавязчивого профилирования. Во время создания этой цепочки инструментов в целевых областях приложений не было резервных мощностей ЦП, чтобы можно было позволить себе программное обеспечение. Этот вариант использования является одним из целевых приложений ETM, и вы должны быть в состоянии построить правильный вид анализа, используя современные инструменты (поскольку архитектура для этого достаточно стандартизирована).

Это действительно зависит от вашего оборудования, имеющего ETM в кремнии и подходящего порта захвата трассировки или встроенного буфера трассировки.

person Sean Houlihane    schedule 19.06.2019
comment
Похоже, что некоторые из процессоров, с которыми я работаю, имеют возможность отслеживания ETM. Я беспокоюсь, что его использование потребует много работы, когда (в идеале) профилирование требует работы на нескольких разных процессорах. Это определенно то, что я изучу больше, и спасибо за помощь - person Idan Reed; 19.06.2019