본문 바로가기

[study]컴파일러툴../CCS

[CCS 디버깅] CCS에서 코드 수행 시간 계산

프로그램을 짜다 보면, 코드의 수행 시간이 얼마나 걸리는지를 알아야 할 때가 있습니다.

코드의 수행 시간은 사실, 컴파일러의 성능도 영향을 미치지만, MCU 자체의 아키텍처나 내부 가속 장치 등 MCU 자체 성능에 의해서도 영향이 있는 부분이기 때문에 단순한 코드의 크기만으로는 확인하기 어려운 부분이 있습니다.


따라서 사람들은 보통 다음과 같은 방법으로 이를 확인하곤 합니다.

그까이꺼, IO 켰다 껐다 하면서 확인해보지머...

그런데 이러한 확인 방법에는 분명히 여러가지 문제가 있습니다.


원론적으로 CCS에서는 이를 확인 할 수 있는 방법이 제공되고 있으니 아래와 같은 방법으로 확인하시길 바랍니다.



CCS Debug 아이콘을 눌러서 CCS 디버그 화면에서 Run - Clock - Enable 합니다.



이후 CCS 우측 하단에 노란색 시계모양과 0 이라는 값이 뜨는 것을 보실 수 있을 것입니다.


이후 Run / Resume / Step into / Step over 등의 명령 수행에서 Clock 값이 변경되는 것을 확인 하실 수 있습니다.


이 숫자가 가리키는 것이 바로 MSP430 타겟 MCU의 Clock Cycle을 의미합니다.

즉, 가령 25MHz로 설정된 경우 여기의 25라는 숫자는 1usec에 해당하는 시간을 의미하며, 1MHz 설정(디폴트값)의 경우, 25는 25usec를 의미합니다.


만일 이 값을 리셋 시키고 싶으시다면 노란 시계의 숫자 위에서 더블클릭을 하시면 됩니다.


이 기능이 정말 중요할 때에는, 알고리즘을 짤 때라던지, 타이밍이 정확한 지 여부를 확인 할 때가 되겠습니다.




이와 관련한 데모를 GIF로 보시겠습니다.





참고 사항

Clock을 enable 또는 disable 하더라도 hide를 하지 않는 경우, 간혹 활성화 해 놓은 클럭의 영향으로(JTAG을 읽고 업데이트 하는 통신 시간이 필요하므로) 타이머 인터럽트나 전반적인 동작이 느려질 수 있습니다.

따라서 Clock은 꼭 필요한 부분에서만 가져다 쓰시기 바랍니다. (항상 활성화는 노노~ 안돼요~)



<끝>