我在调试2838x_cm_cia402_solution这个例程时,发现循环体都是进入两次之后增量才加1,请问这是为什么呢?和CM4内核或者编译优化选项有关吗?
说明如下:
在CiA402_Init函数中,有如下PDO初始化语句,
for (j = 0; j < LocalAxes[AxisCnt].Objects.sRxPDOMap0.u16SubIndex0; j++)
{
LocalAxes[AxisCnt].Objects.sRxPDOMap0.aEntries[j] += AxisCnt* (ObjectOffset << 16);
}
这个PDO的Subindex0是5,也就是LocalAxes[AxisCnt].Objects.sRxPDOMap0.u16SubIndex0值为5。
因此按说应该是执行5次for循环中的语句后结束循环
但是调试时发现,j是每执行2次for循环中的语句,才会加1,所以是执行了10次单步操作,才结束了循环,而不是5次。