CIKLCOUNTER не работает

Кто любит RISC в жизни, заходим, не стесняемся.
Ответить
protoder
Грызет канифоль
Сообщения: 285
Зарегистрирован: Вс сен 05, 2010 15:35:50

CIKLCOUNTER не работает

Сообщение protoder »

Отлаживаю STM32F051 на IAR EW и ST LINK. Почему-то CIKLCOUNTER не работает, всегда 0. Кто-нибудь знает, что с этим сделать?
Реклама
Аватара пользователя
VladislavS
Собутыльник Кота
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

Re: CIKLCOUNTER не работает

Сообщение VladislavS »

Реклама
Reflector
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

Re: CIKLCOUNTER не работает

Сообщение Reflector »

[uquote="protoder",url="/forum/viewtopic.php?p=3792607#p3792607"]Кто-нибудь знает, что с этим сделать?[/uquote]
Взять мк на котором CYCCNT есть(Cortex-M3 и выше).
protoder
Грызет канифоль
Сообщения: 285
Зарегистрирован: Вс сен 05, 2010 15:35:50

Re: CIKLCOUNTER не работает

Сообщение protoder »

[uquote="Reflector",url="/forum/viewtopic.php?p=3792670#p3792670"][uquote="protoder",url="/forum/viewtopic.php?p=3792607#p3792607"]Кто-нибудь знает, что с этим сделать?[/uquote]
Взять мк на котором CYCCNT есть(Cortex-M3 и выше).[/uquote]

Я думал, везде есть. Не так?
То есть в младших моделях нет какого-то средства точно определять скорость выполнение команд? Я пробовал таймер, но даже задать остановку таймера при отладке, все равно добавляются лишние такты. В итоге одна команда двигает счетчик на 5 - 7 тактов.
Реклама
Эиком - электронные компоненты и радиодетали
Reflector
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

Re: CIKLCOUNTER не работает

Сообщение Reflector »

[uquote="protoder",url="/forum/viewtopic.php?p=3792719#p3792719"]Я думал, везде есть. Не так?[/uquote]
Чего вдруг? Так можно думать, что у M0 есть деление или FPU...
То есть в младших какого-то средства точно определять скорость выполнение нет возможности? Я пробовал таймер, но даже при его остановке при отладке добавляются такты.
Любой таймер тикающий каждый такт ничем принципиально от CYCCNT не отличается. Включил таймер, что-то сделал, выключил. А при пошаговой отладке замерять время выполнения кода не имеет особого смысла, хотя некоторые среды так умеют используя тот же CYCCNT, т.к. с выключенной оптимизацией скорость может отличаться в разы, а с включенной нормально шагать по коду очень проблематично.
Реклама
protoder
Грызет канифоль
Сообщения: 285
Зарегистрирован: Вс сен 05, 2010 15:35:50

Re: CIKLCOUNTER не работает

Сообщение protoder »

[uquote="Reflector",url="/forum/viewtopic.php?p=3792734#p3792734"][uquote="protoder",url="/forum/viewtopic.php?p=3792719#p3792719"]Я думал, везде есть. Не так?[/uquote]
Чего вдруг? Так можно думать, что у M0 есть деление или FPU...
То есть в младших какого-то средства точно определять скорость выполнение нет возможности? Я пробовал таймер, но даже при его остановке при отладке добавляются такты.
Любой таймер тикающий каждый такт ничем принципиально от CYCCNT не отличается. Включил таймер, что-то сделал, выключил. А при пошаговой отладке замерять время выполнения кода не имеет особого смысла, хотя некоторые среды так умеют используя тот же CYCCNT, т.к. с выключенной оптимизацией скорость может отличаться в разы, а с включенной нормально шагать по коду очень проблематично.[/uquote]

Да смысл-то есть. Можно ведь отлаживать ассемблер или шагать в дизассемблере. В первую очередь с целью изучения работы самого контроллера, возможностей оптимизации и т.д. Подобная информация была бы не лишней.

Добавлено after 6 minutes 19 seconds:
>> Чего вдруг? Так можно думать, что у M0 есть деление или FPU...

Мне это кажется не удачным ответом. Вы сделали мне не приятно, но ответа на вопрос я так и не получил. Основания ожидать CYCCNT во всех Cortex у меня есть. Казалось бы, наличие его предполагается стандартами ARM. Или я ошибаюсь?
Должен ли я понимать ваш ответ так, что во всех контролерах, ниже M3, этой функции не заложено? А 103-е? Там ведь вроде тоже Cortex M3& Или не от того зависит?
Реклама
Reflector
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

Re: CIKLCOUNTER не работает

Сообщение Reflector »

[uquote="protoder",url="/forum/viewtopic.php?p=3792737#p3792737"]Да смысл-то есть. Можно ведь отлаживать ассемблер или шагать в дизассемблере. В первую очередь с целью изучения работы самого контроллера, возможностей оптимизации и т.д. Подобная информация была бы не лишней.[/uquote]
Это не AVR, в окне дизассма шагать можно, но такты подсчитанные таким образом не будут соответствовать таковым при непрерывном выполнении.
Должен ли я понимать ваш ответ так, что во всех контролерах, ниже M3, этой функции не заложено? А 103-е?
А как это еще можно понять? У M3/M4/M7 CYCCNT есть, у M0/M0+ нет. Какое ядро у F103 или любого другого ST32 можно и самому посмотреть :)
protoder
Грызет канифоль
Сообщения: 285
Зарегистрирован: Вс сен 05, 2010 15:35:50

Re: CIKLCOUNTER не работает

Сообщение protoder »

>> Это не AVR, в окне дизассма шагать можно, но такты подсчитанные таким образом не будут соответствовать таковым при непрерывном выполнении.

То есть CYCCNT в M3 этой проблемы тоже не решит? И скорость выполнения можно смотреть только на больших алгоритмах.

Ясно. Спасибо.
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3383
Зарегистрирован: Пн окт 11, 2010 19:00:08

Re: CIKLCOUNTER не работает

Сообщение Мурик »

Reflector писал(а):Чего вдруг? Так можно думать, что у M0 есть деление или FPU...
В G0 есть DWT (правда ядро M0+). Но есть ли CYCCNT сложно сказать.
Reflector писал(а):Любой таймер тикающий каждый такт ничем принципиально от CYCCNT не отличается.
Если он 32-ух битный, то да.
protoder писал(а):То есть CYCCNT в M3 этой проблемы тоже не решит?
Он посчитает такты.
protoder
Грызет канифоль
Сообщения: 285
Зарегистрирован: Вс сен 05, 2010 15:35:50

Re: CIKLCOUNTER не работает

Сообщение protoder »

>> Он посчитает такты.

Я смотрел на M0 на основании базового таймера, получалось, что время выполнения команд 5-7 тактов. Боюсь, что на переход процессора в режим отладки требуется несколько тактов, в течении которых таймеры продолжают счет. Вот интересно, поведет ли CYCCNT себя по-иному.
Ответить

Вернуться в «ARM»