wade_szcn 发表于 2023-4-6 16:24:53

DM9000读写索引问题

本帖最后由 wade_szcn 于 2023-4-6 16:31 编辑

版主、各位好!

今天在407板子上调试DM9000,从芯片读出的“读/写索引”,会出现索引错误情形。驱动代码采用的是安富来的典型驱动程序。

打开宏定义 FifoPointCheck;程序会进入if,停在断点处
发送函数里会频繁发生(有时会导致DM9K芯片宕机,无法ping通,需复位芯片);接收函数里偶尔出现。

data:image/png;base64,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


#ifdef FifoPointCheck
        if(calc_MWR != ((ior(DM9000_REG_MWRH) << 8) + ior(DM9000_REG_MWRL)))
        {
#ifdef Point_Error_Reset
                /* 若是指针出错,等待此一封包送完 , 之後进行重置 */
                while(ior(DM9000_REG_TCR) & DM9000_TCR_SET) dm9k_udelay (5);
                dm9k_reset();
                return;
#endif
                /*若是指针出错,将指针移到下一个传送包的包头位置*/
                iow(DM9000_REG_MWRH, (calc_MWR >> 8) & 0xff);
                iow(DM9000_REG_MWRL, calc_MWR & 0xff);
        }
#endif


对比过STM和中科芯407(代码一致),中科芯出现的频率很高,约3-5分钟出现一次,STM因为测试次数少不是很确定,可能10-20分钟出现一次
请问哪些条件下会导致这种现象?


eric2013 发表于 2023-4-7 00:39:37

可以调节下总线速度试试。像F407驱动的话,修改下FSMC配置时序会好很多。

wade_szcn 发表于 2023-4-7 07:34:59

谢谢
FSMC时序也进行了调整,没有效果

wade_szcn 发表于 2023-4-24 07:58:13

问题找到,结贴了

wade_szcn 发表于 2023-4-24 08:05:54

问题找到,结贴了
主要原因,DM9K正常收发时,采用semp信号量做互斥保护。后来在动态监视DM9K的LINK状态时,未进行保护,导致问题出现
结论:DM9K收发操作内部SRAM的索引自加,连续读写报文数据时可能会跟其他操作REG冲突。所以建议做防护,避免异常

eric2013 发表于 2023-4-25 09:52:42

wade_szcn 发表于 2023-4-24 08:05
问题找到,结贴了
主要原因,DM9K正常收发时,采用semp信号量做互斥保护。后来在动态监视DM9K的LINK状态时 ...

谢谢告知最终原因。
页: [1]
查看完整版本: DM9000读写索引问题