请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:CC2340R5-Q1主题中讨论的其他器件:CC2340R5
工具/软件:
大家好、TI 团队。
当我执行下面的代码并测量处理时间时、它是 2µs。
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 */
}
我使用反汇编从指令计算周期数、然后从周期计数得出处理时间。
由于是 48 个周期、我预计 CC2340R5 上的 1µs 会以 48MHz 时钟运行。
但是、它实际上需要 2µs。
您能告诉我为什么会出现这种情况吗?
为了供您参考、我在示例软件“Basic_ble"的“的“BLE.Init处理 程序“函数中测量了此内容、因此我假设由于 App_Stack 任务、处理时间不会延长。
此致。