Определение загруженности ядра STM32
- Сообщения: 26
- Зарегистрирован: Вт июн 23, 2015 18:05:12
Доброе утро. У меня возник вопрос, как же собственно оценить загруженность ядра STM32. Вот я к примеру подключил TFT дисплей через LTDC + DMA2D + SDRAM. По идеи, процессорное время не тратится при использовании DMA2D. мне бы хотелось узнать, как определить сколько процентов мощности уходит на данную связку
- Реклама
Это сложно. В общем виде - 100%. Т.е. твоя программа использует 100% процессорного времени. А уж на что она использует ...
- Сообщения: 26
- Зарегистрирован: Вт июн 23, 2015 18:05:12
Нет, ну с использованием DMA2D ядро в момент вывода изображения на экран должно быть свободно. Занята только Шина!
А чем занято ядро, когда оно ничем не занято? Можете показать этот участок кода?
- Сообщения: 26
- Зарегистрирован: Вт июн 23, 2015 18:05:12
В данный момент я просто один раз агружаю картинку в SDRAM и все. после этого вижу ее на экране TFT без контроллера и видео памяти. и мне интересно сколько процентов тратиться на этот процесс
- Реклама
Смотри. У тебя есть инициализация периферии и основной цикл while(1){ ... }.
Если ты сразу настроил выдачу картинки из памяти на экран через DMA - в цикле крутится пустышки.
Так что загрузка процессора - 100%. Правда полезной работы он не совершает. Тупо крутится в пустом цикле.
Ресурсов процессора (вычислительного ядра) на DMA не тратится. Тратится полоса пропускания шин.
Если конечно на кристалле не крутится ОС реального времени.
Если ты сразу настроил выдачу картинки из памяти на экран через DMA - в цикле крутится пустышки.
Так что загрузка процессора - 100%. Правда полезной работы он не совершает. Тупо крутится в пустом цикле.
Ресурсов процессора (вычислительного ядра) на DMA не тратится. Тратится полоса пропускания шин.
Если конечно на кристалле не крутится ОС реального времени.
А пустой цикл не загружает ядро?DanilinS писал(а):Если конечно на кристалле не крутится ОС реального времени.
Контроллер не может простаивать иначе, чем в слипе или иных подобных режимах.
Не путайте загрузку и свободные вычислительные ресурсы. Вы можете заменить пустой цикл на полезный для Вас код, но вычислить эти ресурсы может только тот, кто написал этот код. Потому что только он знает ВРЕМЕННУЮ ДИАГРАММУ кода.
ЗЫ. На ДМА ресурсы ядра таки тратятся. ДМА нужно запустить, а в определенных конфигурациях ПЕРЕзапускать циклически.
В общем случае - да. Просто автор топика дал очень размытый вопрос.
А код я вам нипакажу, он секретный-секретный, коммерческий-коммерческий.
Пора открывать ветку для нострадамусов и скидывать подобные темы туда, дабы спокойно там погадать на магическом шаре.
Если по теме, то вот вам такой же развернутый как и вопрос, ответ: CCSTEP
Если по теме, то вот вам такой же развернутый как и вопрос, ответ: CCSTEP
Боевой ватник.
Берешь, учишься использовать DWT в частности счетчик тактов ядра. Далее запускаешь без дма то, что ты там обычно считаешь, и запоминаешь сколько тактов уходит на это, затем включаешь дма и запускаешь тоже самое. Разница в тактах выполнения и будет та доля тактов которую отжирает дма. Но это все сильно зависит от алгоритма, что дма точно делает так это ест полосу памяти , если память используется активно, то у процессора образуются циклы ожидания на ее (памяти) шине и программа начинает тормозить.ImScout писал(а):По идеи, процессорное время не тратится при использовании DMA2D. мне бы хотелось узнать, как определить сколько процентов мощности уходит на данную связку
Информация по RLC mini находится >тут<


