一种嵌入式设备的自我修复方法与流程

文档序号:16692408发布日期:2019-01-22 19:01阅读:305来源:国知局
一种嵌入式设备的自我修复方法与流程

本发明涉及嵌入式设备技术领域,尤其涉及一种嵌入式设备的自我修复方法。



背景技术:

现有嵌入式设备,特别是嵌入式安卓设备,其文件的存储分区主要分为以下几类:

(1)bootloader分区

bootloader存储在norflash中,可直接被cpu访问,负责引导系统启动。

(2)kernel分区

操作系统的kernel(内核)独立存放在一个分区中。但和下面所有的分区相同,都使用nandflash存储。

(3)system分区

system分区负责存放除了操作系统内核以外的所有系统文件,包含了android用户接口和预先安装的系统应用。擦除了这个分区就会删除掉andorid系统,需要进入recovery模式或者bootloader模式去重新刷入固件。

(4)recovery分区

recovery分区被认为是另一个启动分区,可以启动设备进入recovery控制台去执行高级的系统恢复和管理操作。

(5)其他数据分区

包括数据分区、缓存分区、sd卡分区等等,这些分区损坏会导致数据丢失,但是不会影响操作系统的启动。

嵌入式安卓系统比较大,受限于成本原因,往往存放于nandflash中,但是nandflash的安全性并不十分可靠,偶尔会出现分区损坏而系统无法启动的情况。在这种情况下需要重新安装操作系统,其实现方式主要有以下几类:

(1)在线升级

流程:通过网络获取升级包,将其保存在本地,重启进入升级模式,解压升级包,用其中的文件替换掉原本地文件。

优点:操作简单,带宽消耗小。

缺点:要求操作系统和网络环境均正常。

(2)通过recovery安装固件

流程:由用户手动下载完整的固件,保存至本地,进入recovery,刷入固件。

优点:在操作系统不能正常运行的情况下可以修复设备。

缺点:需要用户手动下载固件,对服务器带宽消耗大。而且要求分区不能损坏。

(3)电脑控制烧录

流程:由用户手动下载完整的固件,保存至电脑,连接设备,通过专门的烧录软件刷入固件。

优点:在分区损坏的情况下可以修复设备。

缺点:需要用户手动下载固件,对服务器带宽消耗大。而且操作繁琐。

但这三种主流自动修复技术都需要提前在本地保存好完整的固件,但也会带来额外不必要的开销,增加产品的成本。



技术实现要素:

本发明提供一种嵌入式设备的自我修复方法,解决的技术问题是,现有嵌入式设备在分区损坏的情况下,采用的自动修复技术都需要提前在本地保存好完整的固件,带来额外不必要的开销,增加产品的成本。

为解决以上技术问题,本发明提供一种嵌入式设备的自我修复方法,包括以下步骤:

s1.预先以索引服务器作为源节点建立p2p网络;

s2.开启嵌入式设备;

s3.判断分区是否已经被损坏,若是则执行下一步,若否则引导操作系统启动;

s4.通过所述p2p网络下载自我修复文件并进行自我修复。

进一步地,所述步骤s1具体包括:

s1-1.建立索引服务器,用于提供tftp服务;

s1-2.将所述索引服务器作为源节点、共享终端作为非源节点构建成p2p架构的dht网络。

进一步地,所述步骤s4具体包括:

s4-1.连接所述索引服务器加入所述p2p网络,成为节点之一;

s4-2.在所述p2p网络中寻找共享有所述自我修复文件的子文件的节点,与共享有所述子文件的所述节点建立连接并下载所述自我修复文件;

s4-3.解析所述自我修复文件进行自我修复。

进一步地,所述步骤s4-2具体包括:

s4-21.通过所述tftp服务在所述非源节点中的共享文件中查找与所述自我修复文件相匹配的子文件;

s4-22.与共享有所述子文件的所述非源节点建立下载连接,并开始下载;

s4-23.判断所述自我修复文件所需要的所述子文件是否全部能从所述非源节点中下载,若是则将下载的子文件保存在同一内存中;若否则在所述源节点中找到所述自我修复文件剩下的子文件,下载后保存在所述同一内存中;

s4-24.确认所述同一内存中是否包含所述自我修复文件中的所有子文件,若是则退出所述tftp服务;若否则返回到所述步骤s4-21,直到确认所述同一内存中包含所述自我修复文件中的所有子文件,而后退出所述tftp服务。

进一步地,所述步骤s4-3具体包括:

s4-31.格式化nandflash分区;

s4-32.将所述同一内存中的所述自我修复文件写入分区;

s4-33.引导写入所述自我修复文件的所述操作系统启动。

进一步地,在所述步骤s4-1中,连接所述索引服务器具体为:通过dns获取所述索引服务器的ip地址,通过访问所述ip地址与所述索引服务器建立连接。

本发明提供的一种嵌入式设备的自我修复方法,特别适用于嵌入式安卓设备。

本发明提供的一种嵌入式设备的自我修复方法,在分区损坏或者操作系统不能启动的情况下,采用p2p网络共享方式,通过其网络服务在p2p网络中的各节点获取损坏分区所需要的修复文件并修复分区,不需要提前在本地保存好完整的修复文件,避免带来额外不必要的开销,节约成本。

附图说明

图1是本发明实施例提供的一种嵌入式设备的自我修复方法的步骤流程图;

图2是本发明实施例中p2p网络的节点分布示意图;

图3是本发明实施例中嵌入式设备通过p2p网络下载自我修复文件的工作流程图;

图4是本发明实施例中嵌入式设备进行自我检查和自我修复的工作流程图。

具体实施方式

下面结合附图具体阐明本发明的实施方式,实施例的给出仅仅是为了说明目的,并不能理解为对本发明的限定,包括附图仅供参考和说明使用,不构成对本发明专利保护范围的限制,因为在不脱离本发明精神和范围基础上,可以对本发明进行许多改变。

本发明实施例提供的一种嵌入式设备的自我修复方法,其步骤流程如图1所示,包括以下步骤:

s1.预先以索引服务器作为源节点建立p2p网络;

s2.开启嵌入式设备;

s3.判断分区是否已经被损坏,若是则执行下一步,若否则引导操作系统启动;

s4.通过所述p2p网络下载自我修复文件并进行自我修复。

进一步地,所述步骤s1具体包括:

s1-1.建立索引服务器,用于提供tftp服务;

s1-2.将所述索引服务器作为源节点、共享终端作为非源节点构建成p2p架构的dht网络。

所述dht网络的网络架构如图2,其中a代表源节点,b代表非源节点,而非源节点包括其他嵌入式安卓设备,和其他应用设备。

进一步地,所述步骤s4具体包括:

s4-1.连接所述索引服务器加入所述p2p网络,成为节点之一;

s4-2.在所述p2p网络中寻找共享有所述自我修复文件的子文件的节点,与共享有所述子文件的所述节点建立连接并下载所述自我修复文件;

s4-3.解析所述自我修复文件进行自我修复。

进一步地,所述步骤s4-2具体包括:

s4-21.通过所述tftp服务在所述非源节点中的共享文件中查找与所述自我修复文件相匹配的子文件,根据非源节点的硬件信息(同款嵌入式安卓设备,共享的文件版本与本申请所需要的修复文件相同)判断该节点所共享的文件是否与自身匹配;

s4-22.与共享有所述子文件的所述非源节点(图3中的peers)建立下载连接,并开始下载;

s4-23.判断所述自我修复文件所需要的所述子文件是否全部能从所述非源节点中下载,若是则将下载的子文件保存在同一内存中;若否则在所述源节点中找到所述自我修复文件剩下的子文件,下载后保存在所述同一内存中;

s4-24.确认所述同一内存中是否包含所述自我修复文件中的所有子文件,若是则退出所述tftp服务;若否则返回到所述步骤s4-21,直到确认所述同一内存中包含所述自我修复文件中的所有子文件,而后退出所述tftp服务。

进一步地,所述步骤s4-3具体包括:

s4-31.格式化nandflash分区;

s4-32.将所述同一内存中的所述自我修复文件写入分区;

s4-33.引导写入所述自我修复文件的所述操作系统启动。

进一步地,在所述步骤s4-1中,连接所述索引服务器具体为:通过dns获取所述索引服务器的ip地址,通过访问所述ip地址与所述索引服务器建立连接。

本发明实施例提供的一种嵌入式设备的自我修复方法,特别适用于嵌入式安卓设备,因其特殊的分区结构。

参见图3,是本发明实施例中嵌入式设备通过p2p网络下载自我修复文件的工作流程图,可以对本申请的自我修复过程中的文件下载能够有更清晰的认识。

参见图4,是本发明实施例中嵌入式设备进行自我检查和自我修复的工作流程图。图1结合图4能够清楚地展现嵌入式安卓设备从一开始的检查分区是否损坏到损坏后进行自我修复的过程。

本发明实施例提供的一种嵌入式设备的自我修复方法,在分区损坏或者操作系统不能启动的情况下,采用p2p网络共享方式,通过其网络服务在p2p网络中的各节点获取损坏分区所需要的修复文件并修复分区,不需要提前在本地保存好完整的修复文件,避免带来额外不必要的开销,节约成本。

上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1