정밀한 코드 수행 시간 측정(Feat. CoreDebug)
간혹 코드 수행시간을 타이트하게 관리 해야할 경우가 있습니다. 이럴 땐 각 함수별로 혹은 코드 흐름중에 해당 코드 수행시간을 측정할 수 있다면 좀 더 시간관리가 용이할 수 있습니다. 다행히 Arm cotex-m3, m4 에서는 CoreDebug라는 register를 통해 CPU cycle을 측정 해 볼 수 있습니다. uint32_t cycles = 0; CoreDebug->DEMCR |= CoreDebug_DEMCR_TRCENA_Msk; DWT->CTRL |= DWT_CTRL_CYCCNTENA_Msk; DWT->CYCCNT = 0; // 수행코드 삽입 cycles = DWT->CYCCNT; 물론 수행코드 사이에 interrupt가 발생하게되면 오차가 발생할 수 있습니다. cycles는 Core clock..