打印

中断执行顺序的一点问题

[复制链接]
1969|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yzjgod|  楼主 | 2012-10-17 16:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
芯片是LM3S6965,做以太网和串口的协议转换。由于不让使用中断嵌套,发现有串口数据丢失的情况。以太网中断用的是lwip,由于接收数据处理太慢,我把它放到主循环里了。串口使用FIFO,设置1/2满(1/8满的效果基本相同),经过大致相同的一段时间,串口中断接收的数据都有几次达到16个,有时候串口接收的数据就丢了。
我怀疑是在以太网中断的时候,新的以太网中断再次触发,此时退出中断后又再次进入以太网中断了,中断处理时间太长,导致数据丢失。不知道LM3S系列的中断处理顺序是不是我想的这样,谢谢了。

相关帖子

沙发
hawksabre| | 2012-10-17 18:24 | 只看该作者
这个问题没遇到过   对不住  没能帮助你   帮你顶一下  呵呵   再等等高人   看看能不能帮你解决   呵呵

使用特权

评论回复
板凳
zhl100| | 2012-10-18 10:43 | 只看该作者
看看是不是溢出了。。。
ps:不建议楼主在中断处理时间过长,最好进取就出来,处理时间长的放在主程序中

使用特权

评论回复
地板
zhao3462910| | 2012-10-18 16:39 | 只看该作者
是不是LM3S6965可靠性的问题..查查外围电路.外围最好有看门狗...

使用特权

评论回复
5
lapeno| | 2012-10-18 19:30 | 只看该作者
没用过LM3S6965,不过可以提供个思路,首先,看看有没有清除相应的标志位,再试下如果没有网络包的情况下会不会丢。网络接收到数据后,马上退出中断,在主循环中处理。

使用特权

评论回复
6
happy啦啦啦| | 2012-10-18 19:56 | 只看该作者
真的不好说啊,影响因素应该很多呢

使用特权

评论回复
7
happybird21| | 2012-10-18 19:59 | 只看该作者
我也没遇到这种问题啊

使用特权

评论回复
8
yzjgod|  楼主 | 2012-10-19 08:34 | 只看该作者
主要是lwip在中断中的处理,我改不了,以前我把接收数据放到中断里,后来我给拿出来了,效果能好一些,波特率在115200的时候就没这个问题,我把波特率提到230400的时候,就一直是这样。
lwip以太网的一个包,我们要求是最大1460个,如果改小,效果能好一些,但是又不能这么做,有些不太好办。

使用特权

评论回复
9
51xlf| | 2012-10-19 23:43 | 只看该作者
应该是存满了,把数据存入的少点

使用特权

评论回复
10
lu-永| | 2012-10-20 07:36 | 只看该作者
有可能是这个原因!

使用特权

评论回复
11
yzjgod|  楼主 | 2012-10-23 10:03 | 只看该作者
我知道是存满了,关键是我怕连续两个以太网中断连续执行,给我串口的执行间隔时间太大了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

239

主题

370

帖子

2

粉丝