-
- Я среднюю загрузку считаю так: VAI(402 знак., 03.04.2013 14:41)
- В uC/OS-II делал измерение загрузки процессора каждой из задач, включая Idle путём перехвата хука переключения задач и анализа структур ОСи. Учёт вёлся отдельно для каждой задачи в системных тиках. - =AlexD=(03.04.2013 08:05)
- А утилиту почему не хотите использовать? Хотя она для FreeRTOS, но подобные есть и для uCOS. И укажите операционку. - VVB(03.04.2013 06:49, ссылка)
- TnKernel - MegaJohn(03.04.2013 09:10)
- К сожалению, не работал. Подсмотрите соответствующие сервисные функции в других операционках, поймите идею и реализуйте. Хотя такая функциональность должна предоставляться операционкой, пусть даже в виде дополнительного модуля и пусть даже за VVB(70 знак., 03.04.2013 14:55)
- Надо ещё понимать, что понимать под "загрузкой ЦПУ". Процент пока ЦПУ не выполняет задач, или же количество задач заблокированных в ожидании чего-либо (пока к ним перейдёт ЦПУ, или ввода-вывода, примитивов синхронизации и т.п.) Программа load в fk0(175 знак., 03.04.2013 14:59)
- какие деньги? добавить в структуру задачи счётчик тиков, сделать захват тиков при переключении контекста, да написать таск (функцию) которая всю эту статистику отрабатывает. половина рабочего дня. я такое в CTL для себя добавил. Mahagam(125 знак., 03.04.2013 14:58)
- Функциональность виденных мной утилит намного шире. Можно в реальном времени поглядеть глубину любой очереди, проанализировать причину любого переключения контекста. То есть этакая трассировка на уровне событий RTOS. - VVB(03.04.2013 15:17)
- как по мне, так профайлер на уровне функций был бы во сто крат полезнее. а вышеперечисленное равносильно ежедневному анализу кала. - Mahagam(03.04.2013 16:30)
- Ну про ежедневности речи нет. А трассировщики/профилировщики кода в рилтайме, это, конечно, вещь, стоящая своих денег. Только, IMHO, они сильно полезны для отладки системных утилит (драйверов, прерываний, различных USB/TCP/FAT стеков и прочая), а VVB(126 знак., 04.04.2013 07:21)
- я привык разделять отладку - сначала саму ртосину надо вылизать, потом уже задачи под неё вычищать. - Mahagam(04.04.2013 10:21)
- Ну про ежедневности речи нет. А трассировщики/профилировщики кода в рилтайме, это, конечно, вещь, стоящая своих денег. Только, IMHO, они сильно полезны для отладки системных утилит (драйверов, прерываний, различных USB/TCP/FAT стеков и прочая), а VVB(126 знак., 04.04.2013 07:21)
- как по мне, так профайлер на уровне функций был бы во сто крат полезнее. а вышеперечисленное равносильно ежедневному анализу кала. - Mahagam(03.04.2013 16:30)
- Функциональность виденных мной утилит намного шире. Можно в реальном времени поглядеть глубину любой очереди, проанализировать причину любого переключения контекста. То есть этакая трассировка на уровне событий RTOS. - VVB(03.04.2013 15:17)
- К сожалению, не работал. Подсмотрите соответствующие сервисные функции в других операционках, поймите идею и реализуйте. Хотя такая функциональность должна предоставляться операционкой, пусть даже в виде дополнительного модуля и пусть даже за VVB(70 знак., 03.04.2013 14:55)
- TnKernel - MegaJohn(03.04.2013 09:10)
- Можно в IDLE ножку в 1 переводить, в остальное время в 0. И смотреть осциллографом. Наглядно. Но гораздо важнее знать кто использует на 100%, а это отдельная история. Вариантов несколько. Либо частые прерывания от таймера и в прерывании fk0(437 знак., 02.04.2013 19:48)
- В нормальной ОС должна быть функция, возвращающая загрузку процессора. Это очень полезный инструмент для отладки. Ножка весьма частный случай такой функции. - Ralex(03.04.2013 02:13)
- Ножка в idle даст неверную картинку, т.к. "залипает" на время выполнения ISR - amusin(02.04.2013 20:25)
- Ну и нормально что залипает - Idle прерван. - Apтём(02.04.2013 21:56)
- Так она залипает в положении idle. :) А вот если в idle ножку не ставить, а непрерывно махать ею, то на осциллографе картинка будет наглядной. - vmp(02.04.2013 22:33)
- Если махать -- это приближает глобальное потепление и загрязнение окружающей среды. Против того есть вторая ножка: она, как и ножка idle, переключается на входе в каждое прерывание, и возвращается обратно на выходе (а idle остаётся). И очень fk0(202 знак., 03.04.2013 00:30)
- PS: да, под idle я понимаю остановку процессора до прерывания. Иначе это уже не idle. - fk0(03.04.2013 00:32)
- Если махать -- это приближает глобальное потепление и загрязнение окружающей среды. Против того есть вторая ножка: она, как и ножка idle, переключается на входе в каждое прерывание, и возвращается обратно на выходе (а idle остаётся). И очень fk0(202 знак., 03.04.2013 00:30)
- Так она залипает в положении idle. :) А вот если в idle ножку не ставить, а непрерывно махать ею, то на осциллографе картинка будет наглядной. - vmp(02.04.2013 22:33)
- Ну и нормально что залипает - Idle прерван. - Apтём(02.04.2013 21:56)
- А SysTick (System Timer) никак не задействовать что ли? - rezident(02.04.2013 19:03)
- DWT cycle counter (CYCCNT) покруче будет -> - SciFi(02.04.2013 19:09, ссылка)
- Для этого придумали BogoMips -> - SciFi(02.04.2013 18:32, ссылка)