Other Parts Discussed in Thread: CC2340R5
Tool/software:
Hi,TI Team.
When I executed the code below and measured the processing time, it was 2 µsec.
void Wait_Function(void)
{
uint32_t lu32_loop;
/* Function Jump : 3cycle */
__asm("movs r0, #6"); /* 1cycle */
__asm("loop:"); /* 39cycle : 6cycle * 6 + 3cycle */
__asm("cmp r0, #0");
__asm("beq finish");
__asm("nop");
__asm("subs r0, r0, #1");
__asm("b loop");
__asm("finish:");
__asm("nop"); /* 3cycle */
__asm("nop");
__asm("nop");
return; /* 2cycle */
}
I calculated the number of cycles from the instructions using disassembly, and then derived the processing time from the cycle count.
Since it was 48 cycles, I expected it to be 1 µsec on the CC2340R5, which operates at a 48 MHz clock.
However, it actually takes 2 µsec.
Could you please tell me why this is the case?
For your reference, I measured this within the "App_StackInitDoneHandler" function of the sample software "Basic_ble", so I assume that the processing time is not extended by BLE tasks due to the RTOS.
Best Regards.