|
我使用如下方式调用,不会产生应将异常:
t_Axis[0]=i_pNode->m_Data.m_CirCmd.m_Axis[0];
DevMem_DrawDot(&t_Axis[0],0,i_DevId);
但我使用下面的方式调用,就会产生异常:
DevMem_DrawDot(&i_pNode->m_Data.m_CirCmd.m_Axis[0],0,i_DevId);
硬件异常产生在访问变量时:
static void DevMem_DrawDot(const TAxis* i_pAxis,uint8_t i_IsErr,uint8_t i_DevId)
{
。。。
t_Axis=DevMem_ShiftAxis(&i_pAxis[0],i_DevId);
。。。
}
static TAxis DevMem_ShiftAxis(const TAxis* i_pAxis,uint8_t i_DevId)
{
。。。
t_x=i_pAxis[0].m_x; //产生异常t_x,m_x都为float32_t类型变量(开了FPU)
。。。
}
能否解释下? |
|