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

Кто любит RISC в жизни, заходим, не стесняемся.
Ответить
Первый раз сказал Мяу!
Сообщения: 26
Зарегистрирован: Вт июн 23, 2015 18:05:12

Сообщение ImScout »

Доброе утро. У меня возник вопрос, как же собственно оценить загруженность ядра STM32. Вот я к примеру подключил TFT дисплей через LTDC + DMA2D + SDRAM. По идеи, процессорное время не тратится при использовании DMA2D. мне бы хотелось узнать, как определить сколько процентов мощности уходит на данную связку
Реклама
Родился
Сообщения: 14
Зарегистрирован: Сб июн 27, 2015 20:32:23
Откуда: Дзержинск Нижегородской обл.

Сообщение DanilinS »

Это сложно. В общем виде - 100%. Т.е. твоя программа использует 100% процессорного времени. А уж на что она использует ...
Реклама
Первый раз сказал Мяу!
Сообщения: 26
Зарегистрирован: Вт июн 23, 2015 18:05:12

Сообщение ImScout »

Нет, ну с использованием DMA2D ядро в момент вывода изображения на экран должно быть свободно. Занята только Шина!
Собутыльник Кота
Аватара пользователя
Сообщения: 2896
Зарегистрирован: Сб ноя 13, 2010 12:53:25
Откуда: приходит весна?

Сообщение B@R5uk »

А чем занято ядро, когда оно ничем не занято? Можете показать этот участок кода?
Реклама
Эиком - электронные компоненты и радиодетали
Первый раз сказал Мяу!
Сообщения: 26
Зарегистрирован: Вт июн 23, 2015 18:05:12

Сообщение ImScout »

В данный момент я просто один раз агружаю картинку в SDRAM и все. после этого вижу ее на экране TFT без контроллера и видео памяти. и мне интересно сколько процентов тратиться на этот процесс
Реклама
Родился
Сообщения: 14
Зарегистрирован: Сб июн 27, 2015 20:32:23
Откуда: Дзержинск Нижегородской обл.

Сообщение DanilinS »

Смотри. У тебя есть инициализация периферии и основной цикл while(1){ ... }.
Если ты сразу настроил выдачу картинки из памяти на экран через DMA - в цикле крутится пустышки.
Так что загрузка процессора - 100%. Правда полезной работы он не совершает. Тупо крутится в пустом цикле.

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

Если конечно на кристалле не крутится ОС реального времени.
Реклама
Друг Кота
Аватара пользователя
Сообщения: 25551
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

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

Сообщение DanilinS »

В общем случае - да. Просто автор топика дал очень размытый вопрос.
Cat
Электрический кот
Аватара пользователя
Сообщения: 1087
Зарегистрирован: Вт май 05, 2009 10:43:42
Откуда: Россия

Сообщение Cat »

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

Если по теме, то вот вам такой же развернутый как и вопрос, ответ: CCSTEP
Боевой ватник.
Контактная информация:
Держит паяльник хвостом
Аватара пользователя
Сообщения: 993
Зарегистрирован: Пн сен 18, 2006 11:16:05
Откуда: Тула

Сообщение Neekeetos »

ImScout писал(а):По идеи, процессорное время не тратится при использовании DMA2D. мне бы хотелось узнать, как определить сколько процентов мощности уходит на данную связку
Берешь, учишься использовать DWT в частности счетчик тактов ядра. Далее запускаешь без дма то, что ты там обычно считаешь, и запоминаешь сколько тактов уходит на это, затем включаешь дма и запускаешь тоже самое. Разница в тактах выполнения и будет та доля тактов которую отжирает дма. Но это все сильно зависит от алгоритма, что дма точно делает так это ест полосу памяти , если память используется активно, то у процессора образуются циклы ожидания на ее (памяти) шине и программа начинает тормозить.
Информация по RLC mini находится >тут<
Контактная информация:
Ответить

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