Страница 1 из 1
Как в Keil померять время выполнения участка кода?
Добавлено: Сб дек 21, 2013 13:36:50
Карась
Всем привет!
Запустил свежеприсланную плату STM32F4-Discovery. Помигал всласть светодиодами, а теперь интересует сабж: есть ли в Кейле какое-то средство на подобие окна StopWatch в MPlab?
Re: Как в Keil померять время выполнения участка кода?
Добавлено: Сб дек 21, 2013 13:44:07
dosikus
Нет и не к чему оно. В Cortex M3 есть DWT , а сие не показометр от пЫк ...

Re: Как в Keil померять время выполнения участка кода?
Добавлено: Сб дек 21, 2013 20:22:46
menzoda
Если уж очень надо померить, то есть два варианта:
1. Аналитический. Смотришь, какие инструкции сгенерировал компилятор (опция --asm). Заглядываешь в даташит на свое ядро и смотришь сколько тактов выполняется каждая команда. Подсчитываешь общее количество тактов и соотносишь с частотой, на которой у тебя работает ядро. Готово! Если имеются инструкции чтения/записи из/в память, то не забудь учесть время доступа к ней.
2. Экспериментальный. В начале и в конце интересуещего участка кода переключаешь состояние какого-нибудь порта и смотришь осциллографом длительность импульса.
Re: Как в Keil померять время выполнения участка кода?
Добавлено: Сб дек 21, 2013 21:05:23
Карась
menzoda писал(а):Если уж очень надо померить...
Бывает надо. Например, может понадобиться, чтобы время выпонения обработчика прерывания было детерминированным.
Re: Как в Keil померять время выполнения участка кода?
Добавлено: Вс дек 22, 2013 19:22:42
menzoda
Да я знаю, что бывает нужно. Сам иногда измеряю.