[EtherCAT]一种竞争态引起从站报错0x2C的分析
从站0x2C错误码源于DC_CheckWatchdog()与Sync0_Isr()间的竞争状态。在RV32平台下,因`Sync0WdCounter++`指令涉及多个机器指令,若被`Sync0_Isr()`打断,则可能导致变量清零失败,进而引发错误。两种解决方案:1. 设置ECAT_TIMER_INT = 0,使DC_CheckWatchdog()在mainloop中调用,并添加保护操作;2. 设置ECAT_TIMER_INT = 1,让DC_CheckWatchdog()在1ms tick中断中调用,并提高1ms tick中断优先级。