Как оценить время выполнения на Cortex-M4 - PullRequest
0 голосов
/ 03 июля 2018

Я довольно новичок в ARM и пытаюсь получить результаты синхронизации для функций, написанных на C для процессора Cortex-M4. Кто-нибудь из вас сможет рассказать мне, какие шаги мне нужно предпринять, чтобы получить результаты по времени?

Я выполняю свой код на Keil uVision, но я не могу использовать анализатор производительности программы во время отладки в реальной среде. Из того, что я прочитал, кажется, что Performance Analyzer работает только за пределами имитированных сеансов отладки, если используется собственный паттерн от Keil.

1 Ответ

0 голосов
/ 04 июля 2018

Установите высокий вывод в начале функции, которую вы хотите установить на время, установите в конце низкий уровень и измерьте ширину импульса с помощью осциллографа.

В зависимости от того, какой Cortex M4 вы используете, может существовать регистр счетчика циклов DWT->CYCCNT, но включение такового определяется поставщиком. Подробности можно найти в Техническом справочнике Cortex M4 . Ваша таблица данных, справочное руководство и руководство по программированию должны содержать больше информации, если это необходимо.

В качестве альтернативы, если у вас есть быстрый таймер, такой как SysTick, работающий с тактовой частоты процессора, вы можете инициализировать счет в 0x00FFFFFF, запустить его обратный отсчет в начале вашей функции и остановить его в конце, тогда вы можете работать время, взятое как (0x00FFFFFF - SysTick-> CVR) * (1 / частота SysTick).

...