Part Number:TMS320F28379D
我们dsp伺服控制程序,通过仿真器debug模式全部功能可以正常工作,但是release模式烧写进flash,上电启动后,传感器数据都能采集正确,发送控制命令伺服没有响应,请问可能是什么原因,需要什么办法才能解决。
有部分代码是在cla中编写的,是否可能有部分代码功能有没正常运行。
lu shiguang:
从flash加载到ram中的代码是有的
MemCopy(&RamfuncsLoadStart, &RamfuncsLoadEnd, &RamfuncsRunStart);
InitFlash();
并且我们在程序里也增加了把cla程序加载到flash里的代码,cla里有部分数据采集代码,这部分代码采集的数据也是正常的。
extern uint32_t Cla1funcsRunStart, Cla1funcsLoadStart, Cla1funcsLoadSize;extern uint32_t CLA1mathTablesRunStart, CLA1mathTablesLoadStart, CLA1mathTablesLoadSize;
EALLOW;
#ifdef _FLASH// Copy over code from FLASH to RAMmemcpy((uint32_t *)&Cla1funcsRunStart, (uint32_t *)&Cla1funcsLoadStart,(uint32_t)&Cla1funcsLoadSize);#ifndef CLA_MATH_TABLES_IN_ROMmemcpy((uint32_t *)&CLA1mathTablesRunStart, (uint32_t *)&CLA1mathTablesLoadStart,(uint32_t)&CLA1mathTablesLoadSize);#endif //CLA_MATH_TABLES_IN_ROM
#endif //_FLASH
,
Yale Li:
lu shiguang 说:传感器数据都能采集正确,
这个是怎么看出来的?
建议在代码中加入翻转IO的操作,以检查相应代码是否正常执行
,
lu shiguang:
您好,谢谢解答。
我们板卡控制电机,电机上有个编码器,电机旋转位置能通过外部设备测量,和编码器返回值是能够对应上的。
现象就是在线加载,能控制电机运动,但是烧写完flash,就只能读取编码器数据了,控制不了电机。