roboforum.ru

Технический форум по робототехнике.
Текущее время: 17 фев 2025, 09:23

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 33 ]  На страницу 1, 2, 3  След.
Автор Сообщение
 Заголовок сообщения: время выполнения программы на AVR
СообщениеДобавлено: 10 сен 2007, 19:07 
Не в сети
Аватара пользователя

Зарегистрирован: 31 янв 2006, 14:37
Сообщения: 90
Откуда: Москва
Часто встает вопрос о скорости выполнения программы.
понятно что она однозначно связана с частотой работы чипа, и как-то совсем нетривиально с используемым компилятором, уровнем оптимизации, условия внешней среды...
но все же есть ли способы  прикинуть/посчитать сколько будет выполняться программа ?
(что-то типа таблицы соответствия "оператор - число тактов" ?)

кроме того какие наиболее удобные, точные или часто применяемые методы определения скорости уже с обратной стороны, т.е. на почти готовом устройстве.
встраивание в код замеров по таймерам, измерение осциллографом, еще что-то ?

как вы решаете эти задачи ?

спасибо!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 10 сен 2007, 19:38 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
так как вы и написали - расчет или измерение.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 10 сен 2007, 20:04 
Не в сети
Аватара пользователя

Зарегистрирован: 31 янв 2006, 14:37
Сообщения: 90
Откуда: Москва
как выполнить такой расчет с достаточной точностью?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 10 сен 2007, 20:33 
Не в сети
Аватара пользователя

Зарегистрирован: 28 дек 2004, 20:33
Сообщения: 10211
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович
Батенька вы не поверите!!! Как ни странно прочитать даташит!!! :-)))
там расписано какая команда сколько тактов занимает, правда это актуально только для ассемблера.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 10 сен 2007, 20:55 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
EdGull писал(а):
Батенька вы не поверите!!! Как ни странно прочитать даташит!!! :-)))
там расписано какая команда сколько тактов занимает, правда это актуально только для ассемблера.


Вы не поверите !!! Но он спрашивал про ОПЕРАТОРЫ компилятора а не про АСМ инструкции.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 10 сен 2007, 21:05 
Не в сети
Аватара пользователя

Зарегистрирован: 28 дек 2004, 20:33
Сообщения: 10211
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович
Ага, ассемблер это уже не компилятор значит... :-)))
И вообще зря я тут с вами болтаю, у вас у обоих города не заполненые.
Так что для меня здесь эта тема закрыта, пока не исправитесь :-)))


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 10 сен 2007, 22:14 
Не в сети
Аватара пользователя

Зарегистрирован: 31 янв 2006, 14:37
Сообщения: 90
Откуда: Москва
ok поправил )


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 10 сен 2007, 23:02 
Не в сети
Мастер Самоделкин
Аватара пользователя

Зарегистрирован: 11 окт 2004, 19:20
Сообщения: 3678
Откуда: Россия, СПб
прог. языки: C/C++, Python, asm
ФИО: Курмис Александр Андреевич
Можно попробовать в симуляторах покрутить...  :roll:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 11 сен 2007, 00:18 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
EdGull писал(а):
Ага, ассемблер это уже не компилятор значит... :-)))


А какие в асме могут быть УРОВНИ ОПТИМИЗАЦИИ ???


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 11 сен 2007, 01:18 
Не в сети
Мастер Самоделкин
Аватара пользователя

Зарегистрирован: 11 окт 2004, 19:20
Сообщения: 3678
Откуда: Россия, СПб
прог. языки: C/C++, Python, asm
ФИО: Курмис Александр Андреевич
avr123.nm.ru писал(а):
EdGull писал(а):
Ага, ассемблер это уже не компилятор значит... :-)))


А какие в асме могут быть УРОВНИ ОПТИМИЗАЦИИ ???


Там он только один - "оптимизация вручную"  :wink:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 11 сен 2007, 11:14 
Не в сети
Аватара пользователя

Зарегистрирован: 28 дек 2004, 20:33
Сообщения: 10211
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович
Когда мне надо точно замерить скорость выполненя, я выставляю на ноге 1, а после завершения ставлю на ней 0. После этого цифровым осцилоскопом всё сразу видно ;-) Естественно прерывания приходится отключать.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 12 сен 2007, 22:25 
Не в сети

Зарегистрирован: 18 ноя 2006, 20:13
Сообщения: 40
Откуда: Москва
Простите, но я не понял, что такое операторы компилятора...
Если задача стоит понять сколько циклов (у avr цикл это вроде бы один такт?) потребуется для выполнения ассемблерной программы - в datasheet в instruction set reference должно быть указано сколько циклов требуется на каждую отдельную команду (1, ну может 2, редко больше).
Если речь идет о программе на си - надо посмотреть ассемблерный код, в который транслируется ваша программа, при используемых опциях оптимизации, inlining и пр.
И конечно же еще есть профайлер. Если есть))
Измерять осциллографом - как минимум не точно. А иногда это вообще не представляется возможным.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 12 сен 2007, 22:33 
Не в сети
Аватара пользователя

Зарегистрирован: 28 дек 2004, 20:33
Сообщения: 10211
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович
Цитата:
Измерять осциллографом - как минимум не точно

Это измерение де-факто, а по тактам де-юро. Точней чем по осцилографу не бывает!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 13 сен 2007, 09:42 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
EdGull писал(а):
Когда мне надо точно замерить скорость выполненя, я выставляю на ноге 1, а после завершения ставлю на ней 0. После этого цифровым осцилоскопом всё сразу видно ;-)


По моему нужно вычесть из показаний время выполнения "сделать 1 на ноге".


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 13 сен 2007, 09:45 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
EdGull писал(а):
Точней чем по осцилографу не бывает!


Смотря какой осцил. Большинство аналоговых не имеют кварца вообще ! Так что точность там ни какая в сравнении с симулятором.

ИМХО самое точное измерение в симуляторе - там точность АБСОЛЮТНАЯ математически-даташитная. Такая практически будет и с обычным кварцем.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 33 ]  На страницу 1, 2, 3  След.

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO