TI中文支持网
TI专业的中文技术问题搜集分享网站

TMS320F280049 CANB通讯触发NMI(不可屏蔽中断)问题

最近在测试280049的过程中遇到了一个问题。

当使用canb发送数据(波特率为500kbps,通讯间隔为1ms)时,会经常无规律地触发NMI中断,导致程序停止运行。

目前我这边已经定位得出是flash uncorrectable ecc error 导致的,然而不管如何修改程序,NMI依然会被触发,请问有什么方法可以解决吗?

Green Deng:请问程序中能定位发生error的具体语句吗?

最近在测试280049的过程中遇到了一个问题。

当使用canb发送数据(波特率为500kbps,通讯间隔为1ms)时,会经常无规律地触发NMI中断,导致程序停止运行。

目前我这边已经定位得出是flash uncorrectable ecc error 导致的,然而不管如何修改程序,NMI依然会被触发,请问有什么方法可以解决吗?

X luo1:

回复 Green Deng:

您好,目前还未定位到具体的语句,只知道往CANB装载完数据后,在发送过程中(未发完)就触发NMI中断,读取NmiIntrupt内的MMIFLG寄存器,发现FLUNCERR位被置起

最近在测试280049的过程中遇到了一个问题。

当使用canb发送数据(波特率为500kbps,通讯间隔为1ms)时,会经常无规律地触发NMI中断,导致程序停止运行。

目前我这边已经定位得出是flash uncorrectable ecc error 导致的,然而不管如何修改程序,NMI依然会被触发,请问有什么方法可以解决吗?

X luo1:

回复 X luo1:

你好,我这边想对之前的情况作补充说明:1.目前我的程序架构是以频率为12KHZ的ADC中断和1ms定时器来做分时任务的(中断任务、1ms任务、5ms任务、20ms任务、100sm任务);2.目前CANB的波特率为500kps,数据接收是通过查询法在中断任务处理,而数据发送放在1ms任务处理(不是中断发送),每次发送10个数据,一共三帧;3.我目前测试的条件及结果:a.运行完整的工作任务(CANA+CANB+逻辑+其他外围模块),不定时触发NMI;b.屏蔽CANA所有任务,运行程序,不定时触发NMI;c.屏蔽CANB所有任务,运行程序,不触发NMI;d.运行完整的工作任务,但将CANB的发送任务放在5ms任务执行,不定时触发NMI;e.运行完整的工作任务,CAN发送任务在1ms任务内执行,但将CANB的发送数据量从10个改为8个,即两帧,不定时触发NMI;f.运行完整的工作任务,CAN发送任务在1ms任务内执行,但将CANB的发送数据量从8个改为4个,即一帧,不定时触发NMI;g.运行完整的工作任务,CAN发送任务在1ms任务内执行,但将CANB的发送任务屏蔽,不触发NMI;h.运行完整的工作任务,只留下CANB的数据发送任务,屏蔽CANB其他任务,让其连续发送,不定时触发NMI;i.删除CANA,逻辑和其余外围模块程序代码,只留CANB单独执行,不定时触发NMI;j.在i的基础上,屏蔽ADC中断,将数据接收和发送放在1ms任务内执行,发送10个数据,不定时触发NMI;k.在j的基础上,将发送数据长度改为4个,不定时触发NMI;l.在K的基础上,将数据接收和发送放在5ms任务内执行,目前仍在测试中,暂时未触发NMI;

最近在测试280049的过程中遇到了一个问题。

当使用canb发送数据(波特率为500kbps,通讯间隔为1ms)时,会经常无规律地触发NMI中断,导致程序停止运行。

目前我这边已经定位得出是flash uncorrectable ecc error 导致的,然而不管如何修改程序,NMI依然会被触发,请问有什么方法可以解决吗?

Green Deng:

回复 X luo1:

额,也就是说,在没有屏蔽CANB模块的情况下,只要运行程序就有可能触发NMI
不过但这么看真心看不出问题在哪里,要么方便的话把程序发过来。或者能定位到问题语句的话最好。
另外,可以检测一下硬件上是否有问题,很多奇怪的问题最后都出在硬件上。

最近在测试280049的过程中遇到了一个问题。

当使用canb发送数据(波特率为500kbps,通讯间隔为1ms)时,会经常无规律地触发NMI中断,导致程序停止运行。

目前我这边已经定位得出是flash uncorrectable ecc error 导致的,然而不管如何修改程序,NMI依然会被触发,请问有什么方法可以解决吗?

X luo1:

回复 Green Deng:

280049CANB.rar

最近在测试280049的过程中遇到了一个问题。

当使用canb发送数据(波特率为500kbps,通讯间隔为1ms)时,会经常无规律地触发NMI中断,导致程序停止运行。

目前我这边已经定位得出是flash uncorrectable ecc error 导致的,然而不管如何修改程序,NMI依然会被触发,请问有什么方法可以解决吗?

X luo1:

回复 Green Deng:

好的,我把这边测试的程序发出来了。之前也考虑过硬件问题,但根据280049寄存器手册里面说明,触发NMI一般是因为校验错误导致的。
假设需要测试硬件是否正常,需要从哪方面测试呢?谢谢

赞(0)
未经允许不得转载:TI中文支持网 » TMS320F280049 CANB通讯触发NMI(不可屏蔽中断)问题
分享到: 更多 (0)