/***************************************************************************** * Function: Utility function a cycle clock ****************************************************************************/ static uint32_t readTime32(void) { uint32_t timeVal; #if defined (_TMS320C6X) timeVal = TSCL; #elif __ARM_ARCH_7A__ __asm__ __volatile__ ("MRC p15, 0, %0, c9, c13, 0\t\n": "=r"(timeVal)); #else /* M4 specific implementation*/ static uint32_t simuTimer = 0; simuTimer++; timeVal = simuTimer; #endif return timeVal; } /***************************************************************************** * Function: Utility function to introduce delay ****************************************************************************/ void cycleDelay (uint32_t count) { uint32_t start = (uint32_t)readTime32(); while (((uint32_t)readTime32() - start) < count); }