Форум программистов, компьютерный форум, киберфорум
Наши страницы
Микроконтроллеры ARM, Cortex, STM32
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.85/20: Рейтинг темы: голосов - 20, средняя оценка - 4.85
xokiz
0 / 0 / 0
Регистрация: 26.06.2016
Сообщений: 57
1

Анализ загрузки ЦП STMки

04.10.2016, 12:49. Просмотров 3723. Ответов 7
Метки нет (Все метки)

Всем привет.
Хочу поделиться мыслями "на тему" и может у кого будут дополнения.
Как я понимаю ядро STM всегда занято. То есть, оно по сути всегда загружено на 100%, только вот оно либо выполняет что-то важное или крутится в главном while. Отсюда идея: в главном цикле делать count++;
В прерывании таймера (например системного) раз в мс сбрасывать count предварительно сохранив его. Далее взяв результат "чистой" прошивки за основу, получим, например, 1000 плюсов в мс. В итоге, получаем загрузку ЦП = (1-count/1000)*100%

Но вот загадочная странность, которую я не понял: если я в while оставляю только count++ - он вообще не плюсуется. А вот если напишу еще пару вымышленных вычислений - то начинает считать. Это как?)
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.10.2016, 12:49
Ответы с готовыми решениями:

Анализ ценных бумаг (построить Гистограмму и провести анализ)
Здравствуйте! Помогите пожалуйста разобраться с заданием. Для исходных данных нужно определить...

Анализ сетевого трафика используя регрессионный анализ
Не знал, куда написать, MatLAb очень близок этому инструменту (Weka) Многие в курсе, что из...

При загрузки Винды ХР загрузка зависает на значке ХР где бегает строка загрузки и все.
Сразу извиняюсь за повторы подобные темы были уже. Проблема вот в чем: При загрузки Винды ХР...

Кнопка загрузки файла и индикатор загрузки в этой же кнопке
Как из двух input <form action="change_avatar.php" method="post" enctype="multipart/form-data"> ...

Полоса загрузки изображения, отобразить прогресс загрузки
загружаю изображения на сервер с помощью аякса, подскажите как можно узнать(с помощью какой...

7
hd44780
0 / 0 / 0
Регистрация: 07.02.2106
Сообщений: 1,605
04.10.2016, 12:55 2
Похоже на то, что оптимизатор выкидывает переменную вообще.
Сделайте её глобальной и с модификатором volatile. Тогда не выкинет и должен будет всегда считать.
0
xokiz
0 / 0 / 0
Регистрация: 26.06.2016
Сообщений: 57
04.10.2016, 13:12 3
Цитата Сообщение от hd44780
Похоже на то, что оптимизатор выкидывает переменную вообще.
Сделайте её глобальной и с модификатором volatile. Тогда не выкинет и должен будет всегда считать.
Модификатор помог. А что на счет "здравости" идеи?
Интересно, как ребята тут рассчитывают: https://www.youtube.com/watch?v=QcKX_Pc6ldU (начиная с 2:25 есть экран где отображен процент загрузки ЦП)
0
HotD
0 / 0 / 0
Регистрация: 05.10.2017
Сообщений: 2,048
04.10.2016, 13:18 4
Возможно там стоит какая-либо ОС, которая умеет это считать. Та же freertos может показывать загрузку цп, сколько ест конкретная задача и так далее.
0
itysiy
0 / 0 / 0
Регистрация: 18.01.2012
Сообщений: 1,418
04.10.2016, 13:24 5
Цитата Сообщение от xokiz
Далее взяв результат "чистой" прошивки за основу, получим, например, 1000 плюсов в мс. В итоге, получаем загрузку ЦП = (1-count/1000)*100%
Как я понял в while крутятся конечные автоматы.
Тогда этот метод будет показывать не загрузку ЦП полезными тасками, а частоту повторения главного цикла. Косвенно по этому значению можно судить о текущей загруженности, но имхо не всегда. На нее будут влиять еще и другие параметры. А так да, иногда можно увидеть и поправить тяжелые ситуации, когда суперлуп слишком долго проходит круг.
0
vt340
0 / 0 / 0
Регистрация: 22.03.2015
Сообщений: 838
04.10.2016, 13:40 6
Можно и индикатор делать - два счётчика (циклов и тиков), энный бит счётчика циклов & эмный бит счётчика тиков --> светодиод
0
hd44780
0 / 0 / 0
Регистрация: 07.02.2106
Сообщений: 1,605
04.10.2016, 14:17 7
Что касается ОС - в ст-шном STemWin примере для Ф429дискавери показано, как это сделать на базе хуков FriiRTOS.
Но то ли я не смог это правильно скопипастить к себе, то ли там есть "химия", которую я не понял - но у меня всегда показывает 100% загрузку. Даже если я ничего не далаю в гуе и просто смотрю, как он мне раз в секунду показывает эту загрузку.
В итоге я забил на эту фенечку.
0
u37
0 / 0 / 0
Регистрация: 07.02.2106
Сообщений: 3,113
04.10.2016, 15:08 8
Ну, положим, у меня (как и в большинстве RTOS) в фоновом таске стоит "sleep".
Как измерить загрузку процессора? В общем виде - никак.
0
04.10.2016, 15:08
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.10.2016, 15:08

LG LW20-3577 во время загрузки выдает синий экран и сразу уходит в рестарт. Потом дает меню выбора загрузки
ноутбук LG. 12 дюймов монитор. Вин Хп сервис пак 3, постоянно выдавал проверку дисков. хотя...

Анимация загрузки во время загрузки
Есть скрипт который создает анимацию загрузки страницы, но мне надо бы что бы эта анимация...

Скачивание файла WebClient с отображением процентов загрузки файла, progressBar, скоростью загрузки файла
Приветствую! Нужна Ваша помощь... Имеется такой кодик, слепленный из готовых примеров ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru