[发明专利]基于MTD分区的软件升级方法和装置有效
申请号: | 201210492326.1 | 申请日: | 2012-11-28 |
公开(公告)号: | CN102945179A | 公开(公告)日: | 2013-02-27 |
发明(设计)人: | 李铁柱 | 申请(专利权)人: | 青岛海信宽带多媒体技术有限公司 |
主分类号: | G06F9/445 | 分类号: | G06F9/445;G06F12/06 |
代理公司: | 青岛联智专利商标事务所有限公司 37101 | 代理人: | 李升娟 |
地址: | 266555 山东省青*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 mtd 分区 软件 升级 方法 装置 | ||
技术领域
本发明涉及软件升级技术,具体地说,是涉及一种基于MTD分区的软件升级方法和装置。
背景技术
MTD(memory technology device内存技术设备)是用于访问存储器设备(如Rom)的Linux系统的子系统,linux 系统中必须通过MTD来读写ROM等存储器。
在基于linux系统的机顶盒等产品中,作为存储器的flash(最常见的ROM)都被分成若干个MTD分区,每个分区占用一部分flash空间,用来存放独立的程序,完成特定功能。flash的具体分区情况,包括各分区的分区号、分区起始地址、分区大小等通过MTD分区描述信息来描述。由系统物理特性所决定,在linux系统下,只能通过MTD操作读写数据,而不能直接访问flash。
以机顶盒产品为例,目前,基于linux系统的机顶盒,其升级过程通常无法完成MTD分区描述信息的升级,原因在于:
一方面,MTD分区数据是在启动时由uboot通过特定参数写入到内核中的,在整个程序运行期间,MTD分区不能调整。如果要更改特定参数,必须要更改该参数所在的一个存储分区,而由于现有技术中该分区都是没有备份的,对其升级将会存在风险,如果升级失败会导致整个系统无法启动。
另一方面,linux系统下进行的数据升级更新都是基于MTD分区的,且只能通过MTD进行读写,其擦除分区和写入数据都必须在指定分区内操作。如果要进行数据升级的某个MTD分区和原有MTD分区不一致,单独使用基于MTD的指令不能完成软件升级需求。
由于无法对MTD分区描述信息进行升级,因而不能对flash的MTD分区进行调整,致使存储器分区灵活性较差,升级实用性不强,不利于产品的灵活升级和产品周期维护成本的降低。
发明内容
本发明针对现有技术中MTD分区描述信息不能升级而存在的上述缺点提供了一种基于MTD分区的软件升级方法和装置,应用该方法能够在升级过程中对MTD分区描述信息进行升级,从而提高了存储器MTD分区的可调性和使用灵活性。
为实现上述发明目的,本发明提供的升级方法采用下述技术方案予以实现:
一种基于MTD分区的软件升级方法,在基于MTD分区的存储器中预先设置至少两个分区,分别存储相同内容的、升级之前的原MTD分区描述信息,所述升级方法包括下述步骤:
a1、将预升级MTD分区描述信息和升级后的每个MTD分区中的升级数据添加到软件升级文件中,预升级MTD分区描述信息对应的升级后的MTD分区中包括有至少两个用来存储预升级MTD分区描述信息的MTD分区;
a2、升级过程中读取软件升级文件,解析出预升级MTD分区描述信息和升级数据;
a3、读取存储器的原MTD分区描述信息,根据原MTD分区描述信息和预升级MTD分区描述信息中的MTD分区对应关系将预升级MTD分区描述信息和升级数据依次写入至相应存储位置;
a4、启动系统的uboot,读取存储在存储器中的预升级MTD分区描述信息,组装MTD分区描述信息写入参数,并将该参数写入到系统内核中。
如上所述的方法,所述原MTD分区描述信息优选以XML文件形式存储在存储器中,所述预升级分区描述信息优选以XML文件形式添加到软件升级文件中。
如上所述的方法,为减少对存储器存储区域的占用,在基于MTD分区的存储器中预先设置有两个存储所述原MTD分区描述信息的分区;所述预升级分区描述信息对应的升级后的MTD分区中包括有两个用来存储预升级MTD分区描述信息的MTD分区。
如上所述的方法,为简化数据写入过程、提高升级速度,所述步骤a3具体包括下述子步骤:
a31、将预升级MTD分区描述信息和升级数据分别分割成若干个指定大小的子块;
a32、根据预升级MTD分区描述信息中的MTD分区起始地址和当前要写入的子块在其所属预升级MTD分区描述信息或升级数据的所有子块中的位置计算子块的起始地址;
a33、读取所述原MTD分区描述信息,根据该原MTD分区描述信息和子块的起始地址获取该子块所对应的原MTD分区的起始地址和偏移地址;
a34、根据原MTD分区的起始地址和偏移地址擦除与子块大小相等的存储区域;
a35、将子块的数据写入到擦除后的存储区域中。
如上所述的方法,所述子块的大小优选与所述基于MTD分区的存储器的一个擦除操作单元的大小相等。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于青岛海信宽带多媒体技术有限公司,未经青岛海信宽带多媒体技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210492326.1/2.html,转载请声明来源钻瓜专利网。