|
Отсчёт времени/тактов в симуляторах Keil и IAR, Какое-то сплошное враньё!? |
|
|
|
Jun 26 2007, 20:29
|
Местный
  
Группа: Свой
Сообщений: 405
Регистрация: 4-10-04
Пользователь №: 777

|
Контроллер ADuC7024. Делал сначала софт в IAR 4.41. Мне нужна была дубовая функция задержки с параметром в миллисекундах. Чтобы "настроить" её, я запустил программу в симуляторе, через профайлер посмотрел сколько выполняется функция задержки и исходя из этого скорректировал вычисление нужного счётчика в функции. Но в реальности мне показалось, что задержки выполняются дольше рассчитанного времени. На глаз показалось, что на треть. Получилось, что симулятор IAR врёт в более быструю сторону.
Потом решил код частично отладить в Keil mdk 3.10, т.к. там удобнее (чем в IAR) в симуляторе смотреть такты и время выполнения отдельных строчек кода. Начал как раз с функции задержки, т.к. она простая. И тут выяснилось, что та же функция выполняется (по симулятору) вдвое дольше. Количество тактов и время выполнения в симуляторе соответствуют друг другу (проверил на всякий). Решил посмотреть на реальном выполнении. В результате задержка, которая в симуляторе была 20с (по тактам и счётчику времени), реально выполнялась где-то за 14.3с. Получается, что симулятор насчитывает больше тактов, чем проходит в реальности. Подобрал расчёт счётчика в функции задержки по реальному выполнению. Теперь задержка в 10с в симуляторе проходит за 14.3с. Получилось, что пришлось уменьшить значение счётчика примерно на столько, на сколько мне казалось медленнее работает задержка в реальном выполнении в IAR.
Короче, в итоге, реальная задержка выполняется одинаково, что после Keil, что после IAR. А вот симуляторы врут, причём в разные стороны и довольно прилично.
В чём тут трабл? Или изначально ориентироваться на временные отсчёты в симуляторах не стоило?
Просто мне бы надо отработать/отладить "трудоёмкий" код, где вычисления с плавающей точкой и хотелось бы иметь достаточно правдивый "инструмент" замера тактов/времени.
|
|
|
|
|
 |
Ответов
|
Jul 18 2010, 06:09
|
Группа: Участник
Сообщений: 14
Регистрация: 16-04-09
Из: Томск
Пользователь №: 47 801

|
Хочу оценить время выполнения участка программы (от одной точки останова до другой)... Как это сделать в IAR EW ARM ?
|
|
|
|
|
Jul 18 2010, 10:54
|
Группа: Участник
Сообщений: 14
Регистрация: 16-04-09
Из: Томск
Пользователь №: 47 801

|
Цитата(sergeeff @ Jul 18 2010, 13:29)  Писалось об этом многократно. Самый надежный и простой метод - формирование импульса на время вызова участка программы и его измерение осциллографом. Надежный в том смысле, что это реальная длительность с учетом все возможных прерываний и прочего. Этот способ не принадлежит среде разработки и требует дополнительного оборудования - осциллографа. Это как крайний вариант который можно сделать всегда, но не всегда это удобно. В моём вопросе речь про штатные средства среды IAR для вычисления процессорных тактов. Например, в CodeComposer для TMS320 такой счетчик есть и учитывает он все произошедшие прерывания. Видел также такой счечик в IAR AVR... А вот для ARM не могу найти
Сообщение отредактировал WhiteFang - Jul 18 2010, 10:59
|
|
|
|
Сообщений в этой теме
Dimonira Отсчёт времени/тактов в симуляторах Keil и IAR Jun 26 2007, 20:29 rezident "По-уму" точные задержки обычно формирую... Jun 26 2007, 20:38 Dimonira Да мне не задержки точные нужны, это не проблема.
... Jun 27 2007, 04:51 rezident Тогда наверное стоит почитать что-нибудь про саму ... Jun 27 2007, 09:56 Dimonira Блин, такие советы я и сам могу давать кому угодно... Jun 27 2007, 11:12 rezident Если вы хорошо знаете архитектуру, то попробуйте п... Jun 27 2007, 11:32 Wano Кароче это фуфло я узнал ещё давно. Как мне показа... Jun 27 2007, 11:52 vetal Сделать такой симулятор, который будет со 100% точ... Jun 27 2007, 12:23 Dimonira Ну, я ж говорю не про работу симулятора в реальном... Jun 27 2007, 18:32 rezident Цитата(Dimonira @ Jun 28 2007, 00:32) Есл... Jun 27 2007, 19:00 Сергей Борщ Цитата(Dimonira @ Jun 27 2007, 21:32) Уж ... Jun 27 2007, 22:07 vetal ЦитатаТем более, что эти продукты (Keil и IAR) сто... Jun 27 2007, 19:03    WhiteFang Цитата(rezident @ Jul 18 2010, 15:11) Пот... Jul 18 2010, 11:22   VslavX Цитата(WhiteFang @ Jul 18 2010, 13:54) В ... Jul 18 2010, 11:34 scifi Цитата(Dimonira @ Jun 27 2007, 00:29) Мне... Jul 18 2010, 17:33
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|