lar*_*ein 3 c arm stm32 cortex-m
我使用DWT-> CYCCNT检查了核心周期计数。但与我的预测不同。你能告诉我原因吗?
我的设备是STM32 NUCLEO-L476RG。我只是检查DWT-> CYCCNT。并且只更改了整数分配的次数。
m_nStart = DWT->CYCCNT;
m_nStop = DWT->CYCCNT;
printf("Cycle diff - assign 0 : %lu\n", m_nStop - m_nStart);
m_nStart = DWT->CYCCNT;
i = 10;
m_nStop = DWT->CYCCNT;
printf("Cycle diff - assign 1 : %lu\n", m_nStop - m_nStart);
m_nStart = DWT->CYCCNT;
i = 10;
i = 20;
m_nStop = DWT->CYCCNT;
printf("Cycle diff - assign 2 : %lu\n", m_nStop - m_nStart);
m_nStart = DWT->CYCCNT;
i = 10;
i = 20;
i = 30;
m_nStop = DWT->CYCCNT;
printf("Cycle diff - assign 3 : %lu\n", m_nStop - m_nStart);
m_nStart = DWT->CYCCNT;
i = 10;
i = 20;
i = 30;
i = 40;
m_nStop = DWT->CYCCNT;
printf("Cycle diff - assign 4 : %lu\n", m_nStop - m_nStart);
Run Code Online (Sandbox Code Playgroud)
我期望与作业数量成正比。但是结果是这样。
循环差异-分配0:14
循环差异-分配1:16
循环差异-分配2:18
循环差异-分配3:20
循环差异-分配4:22
为什么这样的结果?