Например TDA7294

Форум РадиоКот • Просмотр темы - STM32 - проблемы с тактированием
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Пн июл 14, 2025 11:41:11

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


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 48 ]    , 2,  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: STM32 - проблемы с тактированием
СообщениеДобавлено: Сб апр 29, 2017 20:53:23 
Встал на лапы

Зарегистрирован: Чт мар 15, 2007 10:48:10
Сообщений: 126
Рейтинг сообщения: 0
scorpi_0n писал(а):
Латентность флэша и конвейер никто не отменял. Главное что вам нужно запомнить, что время выполнения недерминировано. Можете НОПами поиграться, для интереса. Или вообще загрузить прогу в ОЗУ.

То есть на stm32 системы, критичные по времени выполнения, реал-тайм тобиш RTOS - вещь не выполнимая?

Мне вот товарищ Мурик дал скомпелированную прошивку 72.hex - в сравнении в моей - все чисто:
Изображение
А у меня куда-то такты выпадают:
Изображение

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


Последний раз редактировалось VladimirVladimirovitch Сб апр 29, 2017 20:58:12, всего редактировалось 3 раз(а).

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 - проблемы с тактированием
СообщениеДобавлено: Сб апр 29, 2017 20:56:11 
Опытный кот
Аватар пользователя

Карма: 4
Рейтинг сообщений: 7
Зарегистрирован: Вт окт 23, 2012 13:17:25
Сообщений: 823
Откуда: Киселевск
Рейтинг сообщения: 0
ARV писал(а):
scorpi_0n писал(а):
считайте такты (хотя и это напрасный труд)
[offtopic]налицо последствия "современного уровня" развития вычислительной техники: зачем считать такты, если можно взять кристалл на 100500 гигагерц и не парить мозг? зачем думать об оптимизации, если памяти немеряно, мегагерцев несчитано? дураки те, кто до сих пор сидит на 8-битниках, в то время как весь прогрессивный мир заглядывается на 64-битные микроконтроллеры...[/offtopic]


Заблуждающиеся рассуждения. Есть четкие границы и понимание когда нужно думать об оптимизации и когда нет.

Добавлено after 2 minutes 3 seconds:
VladimirVladimirovitch писал(а):
scorpi_0n писал(а):
Латентность флэша и конвейер никто не отменял. Главное что вам нужно запомнить, что время выполнения недерминировано. Можете НОПами поиграться, для интереса. Или вообще загрузить прогу в ОЗУ.

То есть на stm32 системы, критичные по времени выполнения, реал-тайм тобиш RTOS - вещь не выполнимая?

Мне вот товарищ Мурик дал скомпелированную прошивку 72.hex - в сравнении в моей - все чисто:
Изображение
А у меня куда-то такты пропадают:
Изображение

Получается, что компилятор мой, гад, виноват - код то один и тот же...


Для начало ознакомьтесь что STM32 это Cortex-M профиль со своими плюшками и тараканами.

_________________
Инженер R@D

Telegram чат: https://t.me/radiowolf или в поиске приложения @radiowolf. Личка:@cncoxford


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 - проблемы с тактированием
СообщениеДобавлено: Сб апр 29, 2017 21:07:09 
Встал на лапы

Зарегистрирован: Чт мар 15, 2007 10:48:10
Сообщений: 126
Рейтинг сообщения: 0
Oxford писал(а):
Для начало ознакомьтесь что STM32 это Cortex-M профиль со своими плюшками и тараканами.

То что там есть тараканы, как говорится, уже показал эксперимент :-)
Другое дело - как бы их вывести, чтоб насладится плюшками..
Вот я думаю: неужели чтобы понять, в чем проблема в настройках моего компилятора (как понятно из темы - виноват в пропаже тактов - КОМПИЛЯТОР ) придется заучить стопятьсот страниц текста описания архитектуры CortexM и его частной реализации в виде stm32 на языке потенциального противника? :-)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 - проблемы с тактированием
СообщениеДобавлено: Сб апр 29, 2017 21:17:49 
Вымогатель припоя
Аватар пользователя

Карма: -2
Рейтинг сообщений: -32
Зарегистрирован: Вс ноя 01, 2015 13:13:49
Сообщений: 616
Рейтинг сообщения: 1
VladimirVladimirovitch писал(а):
То есть на stm32 системы, критичные по времени выполнения, реал-тайм тобиш RTOS - вещь не выполнимая?

А причём здесь РТОС? Что вы знаете о синхронизации и джиттере? СТМ32 как раз под РТОС и заточены.
Цитата:
Вообще первый раз такое вижу, чтоб один и тот же код на одном и том же проце но компилированный разными компиляторами так себя показывал :))

Всегда так было. Но в данном случае компилятор ни при делах.

Добавлено after 5 minutes 21 second:
VladimirVladimirovitch писал(а):
То что там есть тараканы, как говорится, уже показал эксперимент :-)
Другое дело - как бы их вывести, чтоб насладится плюшками..

Не считать такты там где это не нужно. Плюшки не в подсчёте тактов и не в темперированном ногодрыге, а в железе.


Вернуться наверх
 
Выбираем индустриальные и медицинские источники питания MEAN WELL в открытом исполнении

Использование модульных источников питания открытого типа широко распространено в современных устройствах. Присущие им компактность, гибкость в интеграции и высокая эффективность делают их отличным решением для систем промышленной автоматизации, телекоммуникационного оборудования, медицинской техники, устройств «умного дома» и прочих приложений. Рассмотрим подробнее характеристики и особенности трех самых популярных вариантов AC/DC-преобразователей MW открытого типа, подходящих для применения в промышленных устройствах - серий EPS, EPP и RPS представленных на Meanwell.market.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: STM32 - проблемы с тактированием
СообщениеДобавлено: Сб апр 29, 2017 21:28:18 
Опытный кот
Аватар пользователя

Карма: 4
Рейтинг сообщений: 7
Зарегистрирован: Вт окт 23, 2012 13:17:25
Сообщений: 823
Откуда: Киселевск
Рейтинг сообщения: 1
Если вы хотите высокую надежность, отказоустойчивость и прочее есть Cortex-R, но это не означает что Cortex-M ненадежный.
Архитектура это не только ножка GPIO. Микроконтроллер выполняет ровно то что вы ему скажете делать с помощью программного кода. Ни больше ни меньше. Поэтому то что генерит ваш компилятор микронтроллеру глубоко насрать, это все ложиться на ваши плечи, а не МК. За программный код отвечает разработчик встраиваемых систем, он должен иметь определенную квалификацию. Это профессия, опыт постоянно повышается, постоянно учиться. Вся жизнь на это уходит.

Поэтому чтобы перейти к конструктивному разговору и что-то обсуждать, для начало нужно понять какая задача ставиться перед микроконтроллером? Есть определенные типовые решения уже наработанные в этой области.

Есть таймеры у микроконтроллера которые могут генерировать сигнал аппаратно.

_________________
Инженер R@D

Telegram чат: https://t.me/radiowolf или в поиске приложения @radiowolf. Личка:@cncoxford


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 - проблемы с тактированием
СообщениеДобавлено: Сб апр 29, 2017 21:44:39 
Друг Кота
Аватар пользователя

Карма: 1
Рейтинг сообщений: 178
Зарегистрирован: Пн окт 11, 2010 19:00:08
Сообщений: 3377
Рейтинг сообщения: 0
VladimirVladimirovitch писал(а):
То есть на stm32 системы, критичные по времени выполнения, реал-тайм тобиш RTOS - вещь не выполнимая?
Настолько критично что не допустима погрешность меньше микросекунды? RTOS внесет еще большую погрешность, т. к. задачи по умолчанию переключаются каждые 1 мс.

VladimirVladimirovitch писал(а):
как понятно из темы - виноват в пропаже тактов - КОМПИЛЯТОР
Компилятор сгенерировал правильный код в соотсветствии с особенностями архитектуры Cortex-M. Asm вставка похоже ее не учитывает и результат соответствующий. Вывод - не нужно мешать asm вставками работе компилятора. :) Он генерирует более оптимальный код, учитывая все нюансы архитектуры. :)


Вернуться наверх
 
Распродажа паяльного оборудования ATTEN!
Паяльные станции, паяльники и аксессуары по самой выгодной цене.

По промокоду radiokot скидка 10%
Не в сети
 Заголовок сообщения: Re: STM32 - проблемы с тактированием
СообщениеДобавлено: Сб апр 29, 2017 22:05:08 
Опытный кот
Аватар пользователя

Карма: 4
Рейтинг сообщений: 7
Зарегистрирован: Вт окт 23, 2012 13:17:25
Сообщений: 823
Откуда: Киселевск
Рейтинг сообщения: 0
У компилятора еще есть настройки по оптимизации.

_________________
Инженер R@D

Telegram чат: https://t.me/radiowolf или в поиске приложения @radiowolf. Личка:@cncoxford


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 - проблемы с тактированием
СообщениеДобавлено: Сб апр 29, 2017 22:17:50 
Вымогатель припоя
Аватар пользователя

Карма: -2
Рейтинг сообщений: -32
Зарегистрирован: Вс ноя 01, 2015 13:13:49
Сообщений: 616
Рейтинг сообщения: -1
При таком коротком коде оптимизатору то и развернуться негде.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 - проблемы с тактированием
СообщениеДобавлено: Сб апр 29, 2017 22:32:15 
Встал на лапы

Зарегистрирован: Чт мар 15, 2007 10:48:10
Сообщений: 126
Рейтинг сообщения: 0
Oxford писал(а):
У компилятора еще есть настройки по оптимизации.

Кручу. Пока -Ofast не помогло. Я тут в теме скриншотил - если у кого опыт есть-плз. гляньте возможно по дефолту там чтото криво стоит.
ps задача стоит исклютельно как разобраться с тактированием и работой gpio stm32. просто абстрактно. понять так сказать потолок на что он может в ногодрыге

Добавлено after 3 minutes 45 seconds:
scorpi_0n писал(а):
При таком коротком коде оптимизатору то и развернуться негде.

вот именно. что и удивительно. на простейшем мигании светодиодом не могу добиться адекватных по коду тактов.

Добавлено after 7 minutes 3 seconds:
Мурик писал(а):
Компилятор сгенерировал правильный код в соотсветствии с особенностями архитектуры Cortex-M.

А нельзя ли всю эти особенности куданить выключить и оставить только gpio с тактированием?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 - проблемы с тактированием
СообщениеДобавлено: Сб апр 29, 2017 23:16:26 
Вымогатель припоя
Аватар пользователя

Карма: -2
Рейтинг сообщений: -32
Зарегистрирован: Вс ноя 01, 2015 13:13:49
Сообщений: 616
Рейтинг сообщения: 1
VladimirVladimirovitch писал(а):
вот именно. что и удивительно. на простейшем мигании светодиодом не могу добиться адекватных по коду тактов.

Там и так всё адекватно. Просто вы это понять (или принять) не можете.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 - проблемы с тактированием
СообщениеДобавлено: Сб апр 29, 2017 23:40:15 
Друг Кота
Аватар пользователя

Карма: 1
Рейтинг сообщений: 178
Зарегистрирован: Пн окт 11, 2010 19:00:08
Сообщений: 3377
Рейтинг сообщения: 1
scorpi_0n писал(а):
При таком коротком коде оптимизатору то и развернуться негде.
Ну почему же? Цикл развернуть может. Добавить NOPы для выравнивания кода и т. д.

VladimirVladimirovitch писал(а):
Пока -Ofast не помогло.
Ассемблерные вставки компилятор не оптимизирует.

VladimirVladimirovitch писал(а):
оставить только gpio с тактированием
Чем ногодрыг таймером или др. периферийным модулем не подходит? Производится аппаратно, более предсказуемо по временным параметрам и ядро не занято "бесполезной" работой.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 - проблемы с тактированием
СообщениеДобавлено: Вс апр 30, 2017 00:16:36 
Встал на лапы

Зарегистрирован: Чт мар 15, 2007 10:48:10
Сообщений: 126
Рейтинг сообщения: 0
Мурик писал(а):
Чем ногодрыг таймером или др. периферийным модулем не подходит?

Спасибо за подсказку. попробую завтра таймером пошевелить


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 - проблемы с тактированием
СообщениеДобавлено: Вс апр 30, 2017 00:49:41 
Опытный кот
Аватар пользователя

Карма: 4
Рейтинг сообщений: 7
Зарегистрирован: Вт окт 23, 2012 13:17:25
Сообщений: 823
Откуда: Киселевск
Рейтинг сообщения: 1
Так аппаратные решения это первое что нужно делать.

_________________
Инженер R@D

Telegram чат: https://t.me/radiowolf или в поиске приложения @radiowolf. Личка:@cncoxford


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 - проблемы с тактированием
СообщениеДобавлено: Вс апр 30, 2017 05:03:14 
Друг Кота
Аватар пользователя

Карма: 32
Рейтинг сообщений: 482
Зарегистрирован: Сб сен 10, 2011 17:46:25
Сообщений: 3832
Рейтинг сообщения: 0
в тему имхо будет
STM32F1 bit banging speeds
https://vjordan.info/log/fpga/stm32-bar ... speed.html
Цитата:
STM32F1 can achieve 18MHz on GPIO in an enrolled loop with compiler optimizations -O2


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 - проблемы с тактированием
СообщениеДобавлено: Вс апр 30, 2017 05:40:58 
Друг Кота
Аватар пользователя

Карма: 139
Рейтинг сообщений: 2918
Зарегистрирован: Чт янв 10, 2008 22:01:02
Сообщений: 23903
Откуда: Московская область, Фрязино
Рейтинг сообщения: 0
Читаю тему и диву даюсь...
:facepalm:
Речь об M0. Там все предельно просто с исполнением - можно посмотреть дизасм, а равно посчитать циклы в пошаговом исполнении при открытом листинге дизасма (будет шагать не по исходнику на Си, а по строчкам сгенерированного кода).
Причем тут латентности, ДМА и конвейер с совершенно не к месту упомянутым кэшем?
Конвейер вообще есть у всех контроллеров, включая PIC и AVR, хотя бы потому, что выполнять код с темпом 1 команда за 1 машинный цикл без конвейера невозможно в принципе. И время исполнения команды не 1 машинный цикл, а минимум - длина конвейера.
Что касается предложений использовать таймеры и аппаратный вывод, то, насколько я понимаю, речь вообще была не об этом. Ясен пень, что хардварный вывод будет иметь меньшую латентность В ОБЩЕМ СЛУЧАЕ. Но, во первых, ногодрыг все равно должен укладываться в написанный код (латентность должна быть объяснима РЕАЛЬНЫМИ КОНКРЕТНЫМИ процессами, а не общими рассуждениями об архитектуре), а во-вторых, далеко не всегда есть смысл и хардварные ресурсы не дергать ногой софтом. Все зависит от задачи. И именно поэтому нужно четко понимать первое, чтобы по любому поводу не хватать МК на 100500 ГГц лишь потому, что не можешь понять откуда джиттер и лень в этом разбираться.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 - проблемы с тактированием
СообщениеДобавлено: Вс апр 30, 2017 07:22:08 
Вымогатель припоя
Аватар пользователя

Карма: -2
Рейтинг сообщений: -32
Зарегистрирован: Вс ноя 01, 2015 13:13:49
Сообщений: 616
Рейтинг сообщения: 0
КРАМ писал(а):
Читаю тему и диву даюсь...

Это только от незнаний
Цитата:
Речь об M0.

Где?
Цитата:
Что касается предложений использовать таймеры и аппаратный вывод, то, насколько я понимаю, речь вообще была не об этом. Ясен пень, что хардварный вывод будет иметь меньшую латентность В ОБЩЕМ СЛУЧАЕ. Но, во первых, ногодрыг все равно должен укладываться в написанный код (латентность должна быть объяснима РЕАЛЬНЫМИ КОНКРЕТНЫМИ процессами, а не общими рассуждениями об архитектуре), а во-вторых, далеко не всегда есть смысл и хардварные ресурсы не дергать ногой софтом. Все зависит от задачи. И именно поэтому нужно четко понимать первое, чтобы по любому поводу не хватать МК на 100500 ГГц лишь потому, что не можешь понять откуда джиттер и лень в этом разбираться.

Если вам лень разбираться с шустрым СТМ32, разберитесь с обычным СТМ8. Там с ногодрыгом не лучше. Поэтому можно сделать вывод, что вы многое чего не понимаете.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 - проблемы с тактированием
СообщениеДобавлено: Вс апр 30, 2017 09:39:21 
Друг Кота
Аватар пользователя

Карма: 139
Рейтинг сообщений: 2918
Зарегистрирован: Чт янв 10, 2008 22:01:02
Сообщений: 23903
Откуда: Московская область, Фрязино
Рейтинг сообщения: 0
scorpi_0n писал(а):
КРАМ писал(а):
Читаю тему и диву даюсь...

Это только от незнаний

От незнаний ЧЕГО? Что КОНКРЕТНО я сказал не то?
scorpi_0n писал(а):
КРАМ писал(а):
Речь об M0.

Где?

Сорри, М3. Но к теме обсуждения это не имеет никакого отношения.
scorpi_0n писал(а):
Если вам лень разбираться с шустрым СТМ32, разберитесь с обычным СТМ8. Там с ногодрыгом не лучше. Поэтому можно сделать вывод, что вы многое чего не понимаете.

Такое ощущение, что Вы бредите... Или не умеете читать литературный русский текст.
Причем тут шустрый STM32 или не шустрый STM8?
Попробуйте прочесть мой предыдущий пост еще раз и найдите хотя бы 1 пункт из моего текста на который Вы ответили. В огороде бузина, а в Киеве дядька... :facepalm:
В простейшей программе без всяких ДМА с известным АСМ листингом все совершенно четко определено по времени.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 - проблемы с тактированием
СообщениеДобавлено: Вс апр 30, 2017 10:18:26 
Вымогатель припоя
Аватар пользователя

Карма: -2
Рейтинг сообщений: -32
Зарегистрирован: Вс ноя 01, 2015 13:13:49
Сообщений: 616
Рейтинг сообщения: 0
Да не смешите. Постом выше Олег дал ссылку, сами полюбуйтесь. Любые изменения в проге будут давать отклонения в тактах при ногодрыге. Поэтому для точных решений и предлагают юзать железо. Но вам это почему-то не понятно. Что вы своим постом и выразили. Не даётся вам СТМ32? Это не смертельно.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 - проблемы с тактированием
СообщениеДобавлено: Вс апр 30, 2017 13:28:13 
Друг Кота
Аватар пользователя

Карма: 139
Рейтинг сообщений: 2918
Зарегистрирован: Чт янв 10, 2008 22:01:02
Сообщений: 23903
Откуда: Московская область, Фрязино
Рейтинг сообщения: 0
Скорпион, Вы как то все сегодня невпопад...
В каком месте я утверждал, что изменения в коде не должны приводить к изменению диаграммы?
:dont_know:
Все что я сказал, - диаграмма совершенно четко повторит код на АСМе (дизасм). И все вопросы по этому поводу элементарно выясняются отладчиком (симулятором) по шагам дизасма. Никаких кэшей, ДМА и прерываний с конвейером в причинах дерганного вывода искать неслед.
И все.
Что это Вас так расколбасило -мне совершенно непонятно....
ЗЫ. Для предложенного простейшего кода нет никакой разницы между АРМами и любой другой архитектурой. НА ЛЮБОМ контроллере (при отсутствии прерывающих программу инструментов (ДМА, прерывания и т.п.) диаграмму так же точно будут менять любые изменения кода на Си и так же диаграмма будет определяться исключительно загружаемым кодом, который легко увидеть в символике АСМа.


Последний раз редактировалось КРАМ Вс апр 30, 2017 13:52:28, всего редактировалось 1 раз.

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 - проблемы с тактированием
СообщениеДобавлено: Вс апр 30, 2017 13:44:26 
Вымогатель припоя
Аватар пользователя

Карма: -2
Рейтинг сообщений: -32
Зарегистрирован: Вс ноя 01, 2015 13:13:49
Сообщений: 616
Рейтинг сообщения: 0
Какая ещё диаграмма? Самый простой пример - короткий и простой обработчик прерывания. Выход из прерывания происходит раньше чем сбрасывается флаг его вызвавший со всеми вытекающими. Ну и каким боком здесь ваша диаграмма, подсчет тактов и прочее?
Если бы было все так просто то и этого топика бы небыло. И если вы такты как в АВР считаете, то это в корне не верно. Прочтите тему сначала, может и поймете о чем речь. Да и толку с этой диаграммы, если при изменении проги она сломается? Ровнять ещё после малейших изменений в проге? Удачи! Есть же доки на камень, прочтите, не поленитесь, хоть разок, чтобы понять что к чему.


Последний раз редактировалось scorpi_0n Вс апр 30, 2017 13:58:38, всего редактировалось 1 раз.

Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 48 ]    , 2,  

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


Кто сейчас на форуме

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


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

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y