[发明专利]一种ONU升级的方法有效
申请号: | 201610012269.0 | 申请日: | 2016-01-08 |
公开(公告)号: | CN105703945B | 公开(公告)日: | 2019-04-16 |
发明(设计)人: | 肖云鹏 | 申请(专利权)人: | 烽火通信科技股份有限公司 |
主分类号: | H04L12/24 | 分类号: | H04L12/24;H04L1/00;H04Q11/00;G06F8/65 |
代理公司: | 北京捷诚信通专利事务所(普通合伙) 11221 | 代理人: | 王卫东 |
地址: | 430074 湖北省*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种ONU升级的方法,包括以下步骤:OLT下发升级命令后,初始化全局标识变量;获取ONU当前使用的分区并擦除其备份分区,申请链表的头结点,使用全局指针变量记录链表首地址;创建第一线程,循环执行以节点为单位申请内存存储升级数据包,并进行链表维护,直至OLT下发结束命令后退出第一线程;创建第二线程,循环读取链表并对链表进行处理,处理完成后立即释放对应节点的内存,直至所有升级数据包处理结束。本发明以节点为单位申请内存存放升级数据包,并创建两个线程分别用于接收升级数据包和对升级数据包进行处理,实现了下载升级数据包的同时将升级数据写入flash,既节约了内存空间又缩短了升级时间。 | ||
搜索关键词: | 一种 onu 升级 方法 | ||
【主权项】:
1.一种ONU升级的方法,其特征在于,包括以下步骤:S1.ONU检测到OLT下发的即将发送升级数据包命令后,初始化用于升级的全局标识变量;S2.获取ONU当前使用的分区并擦除其备份分区,申请链表的头结点,并使用全局指针变量记录链表首地址,转S3和S4;S3.创建第一线程,第一线程循环执行以节点为单位申请内存存储升级数据包,并进行链表维护,直至OLT下发结束命令后退出第一线程,转S5;S4.创建第二线程,第二线程循环读取链表并对链表进行处理,包括分块累积计算整个升级数据包的CRC并将升级数据包中的数据写入flash,处理完成后立即释放对应节点的内存,直至所有升级数据包处理结束后退出第二线程,转S5;S5.判断升级数据是否成功写入flash,如果成功,转S6;否则,转S8;S6.判断累积计算的整个升级数据包的CRC与OLT下发的CRC值是否相同,如果相同,转S7;否则,转S8;S7.升级成功,激活备份分区并重启ONU;S8.升级失败;S4中第二线程的具体执行步骤包括:S401.获取当前节点中的升级数据,并判断当前节点的填充完成标志位是否为1,如果是,转S402;否则,转S401;S402.分块累积计算整个升级数据包的CRC,并计算当前节点中数据部分的CRC;S403.将当前节点中的数据部分写入flash;S404.从flash中回读出写入的当前节点的数据,并重新计算CRC;S405.判断重新计算的CRC与将数据写入flash之前计算的当前节点中数据部分的CRC是否相等,如果相等,转S406;否则,转S410;S406.获取next节点的首地址并记录;S407.释放当前节点的内存空间,并将next节点切换为当前节点;S408.判断当前节点是否为空,如果为空,表明链表中的所有节点均已处理完毕,转S409;否则,转S401;S409.将整个升级数据包写入flash成功;S410.将升级数据包写入flash失败。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于烽火通信科技股份有限公司,未经烽火通信科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201610012269.0/,转载请声明来源钻瓜专利网。
- 上一篇:一种基于ARIMA模型的网络数据流预测方法
- 下一篇:甲醇浓度自动补偿装置