您的位置:首页 > 其它

配置恢复出发异常中断的解析

2015-02-14 09:11 260 查看
在我最近的一次项目中,要实现设备在启动时,恢复上次配置的时候,我将配置恢复的功能实现在内核态,

虽然最后配置恢复下刷芯片等功能完全没有问题,但导致ping直连延时以及tftp下载上传速率很慢;

下面介绍我处理这个问题所经历的几个阶段:

1.由于刚开始的时候没有意识到这个问题,再后来的测试中,也一直以为是是由于端口的能力及达不到才导致这种情况;

2.针对这种情况,我竟版本回退,然后依据二分法的方式测试那个版本出了问题,最终确定,虽然端口的能力级比较低,

但是速率不会很慢以及ping直连不会延时很大(也可以说很大,达到100ms级别);是我在添加配置恢复功能是出了问题;

3.针对这种情况,我把设备启动整体的流程分析了一边,发现在设备模块加载完成以后,会调用配置恢复功能,

而配置恢复分为用户态和内核态两部分,内核态执行在前,用户态的配置恢复稍后;随后我将配置恢复的功能在

用户态重新实现了一遍,测试时发现配置恢复功能正常,ping直连以及tftp上传下载功能都恢复为正常;

4. 确定具体问题以后,我就才是着手查找问题的具体原因,因为用户态配置恢复和内核态配置恢复最终的执行流程

是一样的,只不过是内核态执行在前,用户态执行在后,所以开始的时候我很困惑,但是随着一步步的追踪,发现

在设备初始化的时候,会首先设置接收中断的条件为没接收一个报文就会上报一次中断;而每次设备启动以后端口会

进入流量,而此时cpu可能还没有初始化好所有寄存器,不太稳定,所以导致触发了异常中断;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐