FreeRTOS에서 vTaskGetRunTimeState() 함수를 사용하면 각 태스크들의 점유율을 볼 수 있다.  이 함수를 사용하기 위해서는 FreeRTOSConfig.h에 configGENERATE_RUN_TIME_STATS 값을 1로 정의 해야 하며 portCONFIGURE_TIMER_FOR_RUN_TIME_STATS 함수 와 portGET_RUN_TIME_COUNTER_VALUE 함수를 정의 해 주어야 한다.

portCONFIGURE_TIMER_FOR_RUN_TIME_STATS함수는 말 그대로 run time states에 사용할 counter를 설정하고 portGET_RUN_TIME_COUNTER_VALUE는 현재 count값을 리턴하면 된다.  counter의 클럭 주파수는 시스템 클럭보다 10배에서 100배 더 빠르게 설정해야 태스크의 정유율의 정확도가 높아 진다.

다음은 vTaskGetRunTimeStats()함수를 실행 하였을 때의 출력 결과 이다.

[ATMEL] top
Name            Count           Percent
--------------------------------------------
CLI             36340437         84%
IDLE            27              <1%
KEY             6735            <1%
SM              6214            <1%
WRITE           183533          <1%
READ            612338          1%
pf_ISR          5870306         13%
LED             1743            <1%

'OldStory > WORKS' 카테고리의 다른 글

FreeROTS MMU and Cache  (0) 2010.09.07
stack overflow  (0) 2010.08.18
Task Run Time Stats  (0) 2010.07.22
Task List  (0) 2010.07.21
ATMEL USB 예제 소스  (0) 2010.07.08
VPATH  (0) 2010.07.06
by Alnilam 2010.07.22 18:51
| 1 |

티스토리 툴바