CC2340R5-Q1: Processing time different from expected

Part Number: CC2340R5-Q1
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.