fk0, легенда (02.04.2013 19:48, просмотров: 86) ответил MegaJohn на CM3 NXP17xx + RTOS: как вообще принято реализовывать измерение занятости процессора ? В Idle задаче запускаем аппаратный таймер, и сама задача делает ++, а потом сравнение ? А если изменить оптимизацию ? Либо еще фактор - смотря как поведет себя
Можно в IDLE ножку в 1 переводить, в остальное время в 0. И смотреть осциллографом. Наглядно. Но гораздо важнее знать кто использует на 100%, а это отдельная история. Вариантов несколько. Либо частые прерывания от таймера и в прерывании анализировать адрес возврата. И по адресу догадываться. Грубый метод, но работает. Либо, gcc умеет, перед каждым вызовом функции и возвратом считывать аппаратный таймер и разницу в соответствующем массиве добавлять к сумме. Либо исходники автомагически транформировать, чтоб такой вызов добавить, если не GCC или не умеет. Последние два способа трудные. Либо полагаться на волшебную функцию среды, некоторые умеют "трассировку" кое-как.
[ZX]