2012-01-02 3 views
6

Мне интересно, как вы разрабатываете программное обеспечение на голых металлических системах (ARM Cortex a8)? Раньше я использовал симулятор с встроенной статистикой тестов, и теперь я хочу сравнить результаты с реальным оборудованием (работающим на BeagleBoard-Xm).Профилирование встроенных систем без покрытия (ARM)

Я понимаю, что вы можете использовать gprof, но я как бы потерял, так как предполагается, что вы должны запускать Linux в целевой системе?

Я создаю исполняемый файл с помощью кросс-компилятора arm-none-eabi от Codesourcery, а в целевой системе работает FreeRTOS.

ответ

3

Тщательно оцените, что вы подразумеваете под «профилированием». Вы действительно работаете очень близко к голым металлам, и вполне вероятно, что вам потребуется взять на себя часть работы, выполняемой инструментом gprof.

Вы хотите позвонить функции? или ISR? Как насчет переключения линии GPIO при входе и выходе из проверяемого кода. Регистратор данных или осциллограф могут быть настроены для включения этих событий. (По моему опыту, регистратор данных более удобен, так как мой может быть сконфигурирован для захвата последовательности этих событий, что позволяет мне вычислять средние тайминги.)

Хотите ли вы подсчитать количество исполнений? Cortex A8 оснащен множеством функций (например, настраиваемых счетчиков событий), которые могут помочь: link. Ваш чип ARM может быть оснащен другими периферийными устройствами, которые могут быть использованы, а также (в зависимости от поставщика). Независимо от того, посмотрите на приведенную выше ссылку - у новых ARM есть много интересных функций, с которыми я не могу играть столько, сколько хотелось бы! ;-)

+0

Я думал, можно ли использовать любой инструмент для профилирования, например gprof, для сбора информации о различных данных, таких как тактовые циклы, графики вызовов, время, затрачиваемое на каждую функцию, количество вызовов. Тем не менее, я рад, если я получу сколько часов циклов, необходимых для запуска приложения от начала до конца. Ссылка, которую вы мне дали, была приятной, я посмотрю на это, Thx! – MrGigu

+0

Привет, у меня работает счетчик часов, однако мне интересно, возможно ли время с функцией PMU (блок монитора производительности)? У меня также есть отладчик flyswatter 2, возможно, это может быть использовано для чего-то? Нужно ли мне покупать регистратор данных или осциллограф для временного оборудования? Я никогда не использовал никого из них, и они довольно дороги! – MrGigu

+0

Вот недорогой логический анализатор. Он работал достаточно хорошо для меня: http://www.nci-usa.com/frame_products_overview.htm. Некоторые из характеристик PMU можно экспортировать в ETM - оттуда их можно будет получить доступ с помощью интерфейса JTAG от Flyswatter. (Я просто догадываюсь). – Throwback1986

2

Мне удалось получить профилирование для ARM Cortex M. Поскольку инструменты GNU ARM Embedded (пусковая панель) не поставляются с включенными библиотеками профилирования, я добавил необходимые функции клея и профилирования. Литература: См. http://mcuoneclipse.com/2015/08/23/tutorial-using-gnu-profiling-gprof-with-arm-cortex-m/

Надеюсь, это поможет.

+0

Хотя эта ссылка может ответить на вопрос, лучше включить здесь основные части ответа и предоставить ссылку для справки. Ответные ссылки могут стать недействительными, если связанная страница изменится. https://meta.stackexchange.com/questions/8231/are-answers-that-just-contain-links-elsewhere-really-good-answers/8259#8259 –

+0

Чтобы получить возможность просить разъяснений от автора, оставляйте комментарии ниже их сообщения. – Bruce

 Смежные вопросы

  • Нет связанных вопросов^_^