#include <nitro/os.h>
void OS_SpinWait( u32 cycles );
void OS_SpinWaitCpuCycles( u32 cycles );
void OS_SpinWaitSysCycles( u32 cycles );
cycles |
Number of cycles to wait. With the OS_SpinWait function, this is based on a 2x multiplier of the base cycle.With the OS_SpinWaitCpuCycles function, this is based on CPU cycles.With the OS_SpinWaitSysCycles function, this is based on the base cycles. |
None.
Makes the CPU run empty loops for at least the number of cycles specified by cycles
.
This function only causes empty loop processing. Therefore, be aware that the return time from this function may be greatly delayed by interrupts that are generated during the loops.
Because of function calls and other overhead, return from this function might be delayed slightly more than the specified number of cycles.
The OS_SpinWaitCpuCycles
function is based on the CPU cycles.
The OS_SpinWaitSysCycles
function is based on base cycles. This is independent of mode (NITRO or TWL) or changes to the CPU frequency.
The OS_SpinWait
function is based on a fixed value that is unrelated to the operating frequency of the CPU. It was created for the sake of compatibility with NITRO. For the ARM9, it is based on a 2x multiplier of the base cycle. For the ARM7, it is based on the base cycles. On NITRO, the OS_SpinWait
function was used as empty looping based on CPU cycles. Because the CPU frequency can be changed on TWL, however, it is set up this way for convenience when NITRO source code is used.
The frequencies used as the basis for the the number of cycles (cycles
) are shown below.
OS_SpinWait
Platform Frequency Used as the Basis for cycles
ARM9 ARM7 NITRO 67.03 MHz 33.51 MHz TWL
OS_SpinWaitCpuCycles
Platform Frequency Used as the Basis for cycles
ARM9 ARM7 NITRO 67.03 MHz 33.51 MHz TWL 67.03 MHz (When running at standard speed)
134.06 MHz (When running at 2x speed)
OS_SpinWaitSysCycles
Platform Frequency Used as the Basis for cycles
ARM9 ARM7 NITRO 33.51 MHz TWL
2007/09/27 Added descriptions of the OS_SpinWaitCpuCycles
and OS_SpinWaitSysCycles
functions.
2004/02/27 Initial version.
CONFIDENTIAL