Страница 1 из 1

Определение загруженности ядра STM32

Добавлено: Вс июн 28, 2015 15:12:26
ImScout
Доброе утро. У меня возник вопрос, как же собственно оценить загруженность ядра STM32. Вот я к примеру подключил TFT дисплей через LTDC + DMA2D + SDRAM. По идеи, процессорное время не тратится при использовании DMA2D. мне бы хотелось узнать, как определить сколько процентов мощности уходит на данную связку

Re: Определение загруженности ядра STM32

Добавлено: Вс июн 28, 2015 15:42:26
DanilinS
Это сложно. В общем виде - 100%. Т.е. твоя программа использует 100% процессорного времени. А уж на что она использует ...

Re: Определение загруженности ядра STM32

Добавлено: Вс июн 28, 2015 16:00:20
ImScout
Нет, ну с использованием DMA2D ядро в момент вывода изображения на экран должно быть свободно. Занята только Шина!

Re: Определение загруженности ядра STM32

Добавлено: Вс июн 28, 2015 16:51:23
B@R5uk
А чем занято ядро, когда оно ничем не занято? Можете показать этот участок кода?

Re: Определение загруженности ядра STM32

Добавлено: Вс июн 28, 2015 18:19:25
ImScout
В данный момент я просто один раз агружаю картинку в SDRAM и все. после этого вижу ее на экране TFT без контроллера и видео памяти. и мне интересно сколько процентов тратиться на этот процесс

Re: Определение загруженности ядра STM32

Добавлено: Вс июн 28, 2015 19:49:52
DanilinS
Смотри. У тебя есть инициализация периферии и основной цикл while(1){ ... }.
Если ты сразу настроил выдачу картинки из памяти на экран через DMA - в цикле крутится пустышки.
Так что загрузка процессора - 100%. Правда полезной работы он не совершает. Тупо крутится в пустом цикле.

Ресурсов процессора (вычислительного ядра) на DMA не тратится. Тратится полоса пропускания шин.

Если конечно на кристалле не крутится ОС реального времени.

Re: Определение загруженности ядра STM32

Добавлено: Вс июн 28, 2015 20:59:44
КРАМ
DanilinS писал(а):Если конечно на кристалле не крутится ОС реального времени.
А пустой цикл не загружает ядро?
:))) :))) :)))
Контроллер не может простаивать иначе, чем в слипе или иных подобных режимах.
Не путайте загрузку и свободные вычислительные ресурсы. Вы можете заменить пустой цикл на полезный для Вас код, но вычислить эти ресурсы может только тот, кто написал этот код. Потому что только он знает ВРЕМЕННУЮ ДИАГРАММУ кода.
ЗЫ. На ДМА ресурсы ядра таки тратятся. ДМА нужно запустить, а в определенных конфигурациях ПЕРЕзапускать циклически.

Re: Определение загруженности ядра STM32

Добавлено: Пн июн 29, 2015 09:59:38
DanilinS
В общем случае - да. Просто автор топика дал очень размытый вопрос.

Re: Определение загруженности ядра STM32

Добавлено: Вт июн 30, 2015 16:46:50
Cat
А код я вам нипакажу, он секретный-секретный, коммерческий-коммерческий. :)) Пора открывать ветку для нострадамусов и скидывать подобные темы туда, дабы спокойно там погадать на магическом шаре.

Если по теме, то вот вам такой же развернутый как и вопрос, ответ: CCSTEP

Re: Определение загруженности ядра STM32

Добавлено: Вт июн 30, 2015 18:36:24
Neekeetos
ImScout писал(а):По идеи, процессорное время не тратится при использовании DMA2D. мне бы хотелось узнать, как определить сколько процентов мощности уходит на данную связку
Берешь, учишься использовать DWT в частности счетчик тактов ядра. Далее запускаешь без дма то, что ты там обычно считаешь, и запоминаешь сколько тактов уходит на это, затем включаешь дма и запускаешь тоже самое. Разница в тактах выполнения и будет та доля тактов которую отжирает дма. Но это все сильно зависит от алгоритма, что дма точно делает так это ест полосу памяти , если память используется активно, то у процессора образуются циклы ожидания на ее (памяти) шине и программа начинает тормозить.