CN102419713A - 基于nandflash的机顶盒的软件升级方法 - Google Patents

基于nandflash的机顶盒的软件升级方法 Download PDF

Info

Publication number
CN102419713A
CN102419713A CN201110458013XA CN201110458013A CN102419713A CN 102419713 A CN102419713 A CN 102419713A CN 201110458013X A CN201110458013X A CN 201110458013XA CN 201110458013 A CN201110458013 A CN 201110458013A CN 102419713 A CN102419713 A CN 102419713A
Authority
CN
China
Prior art keywords
nandflash
upgrading
upgrade
subregion
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201110458013XA
Other languages
English (en)
Other versions
CN102419713B (zh
Inventor
熊建勇
周志武
杨艳辉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sichuan Changhong Electric Co Ltd
Original Assignee
Sichuan Changhong Electric Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sichuan Changhong Electric Co Ltd filed Critical Sichuan Changhong Electric Co Ltd
Priority to CN201110458013.XA priority Critical patent/CN102419713B/zh
Publication of CN102419713A publication Critical patent/CN102419713A/zh
Application granted granted Critical
Publication of CN102419713B publication Critical patent/CN102419713B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及软件升级技术,其公开了一种基于nandflash的机顶盒的软件升级方法,解决传统技术中需要修改nandflash分区并进行软件升级时,升级效率低下的问题。其技术方案的要点包括以下步骤:a.前端系统制作升级文件;a1.将所有需要升级的nandflash分区数据按一定格式组装成升级文件;a2.将新的nandflash分区信息及本次需要升级的分区信息添加至升级文件的头结构中;b.前端系统对制作好的升级文件进行打包,生成升级数据流发送给机顶盒;c.机顶盒接收升级数据流进行解析,判断是否需要按照新的nandflash分区进行升级,并作出相关处理。本发明适用于对采用nandflash存储器的机顶盒进行软件升级。

Description

基于nandflash的机顶盒的软件升级方法
技术领域
本发明涉及软件升级技术,具体的说,是涉及一种基于nandflash的机顶盒的软件升级方法。
背景技术
随着全球数字电视行业的迅猛发展,越来越多的各种应用软件已经开始在机顶盒上集成。时下流行的各种应用软件通常都是基于linux系统的,因此机顶盒软件提供商已经开始将机顶盒的操作系统更新为linux操作系统。而linux系统本身比较庞大,需要占用的flash和内存资源较多,传统的单个norflash设备由于容量较小,或者成本太高等原因已经慢慢变得不适用起来。与此相反,nandflash设备由于容量大、读写速度快、成本低的优势开始成为机顶盒存储设备的首选。但是nandflash的数据块容易出现坏块,因此nandflash的使用是按分区来进行的。一个nandflash分区不能完全使用,必须预留一部分区域出来防止坏块产生,一旦产生坏块,那么机顶盒驱动会自动跳过坏块去使用下一个正确的数据块。
基于上述,采用nandflash存储器的机顶盒的软件升级也是按分区来进行的;即一个机顶盒一旦制定好了nandflash分区,那么其之后的升级都是按这个制定好的分区来进行。传统技术中,当机顶盒的应用部分需要重新进行分区并进行软件升级的话,首先需要按既定分区的方式升级一个特殊的主程序,升级之后,主程序将修改既定分区,将其修改为新的分区。然后loader再按新的分区再次升级。这样的升级方法需要生成两个主程序,两个升级流,loader需要升级两次。效率非常低下,且给机顶盒升级带来不必要的风险。
发明内容
本发明所要解决的技术问题是:提出一种基于nandflash的机顶盒的软件升级方法,解决传统技术中需要修改nandflash分区并进行软件升级时,升级效率低下的问题。
本发明解决上述技术问题所采用的技术方案是:基于nandflash的机顶盒的软件升级方法,包括以下步骤:
a.前端系统制作升级文件;
a1.将所有需要升级的nandflash分区数据按一定格式组装成升级文件;
a2.将新的nandflash分区信息及本次需要升级的分区信息添加至升级文件的头结构中;
b.前端系统对制作好的升级文件进行打包,生成升级数据流发送给机顶盒;
c.机顶盒接收升级数据流进行解析,判断是否需要按照新的nandflash分区进行升级,并作出相关处理。
进一步,步骤c具体包括:
c1.机顶盒接收升级数据流,首先解析升级文件的头结构,解析出既定分区信息和新的nandflash分区设置标识字段;
c2.若新的nandflash分区设置标识字段为1,则本次软件升级是按照新的nandflash分区进行升级,进入步骤c3,若新的nandflash分区设置标识字段为0,则本次软件升级是按照既定的nandflash分区进行升级,进入步骤c6;
c3.判断本次需要升级的分区信息与新的nandflash分区信息是否匹配,如果匹配,则该升级数据流正确,进入步骤c4;如果不匹配,则该升级数据流不正确,则退出本次升级;
c4.对各个nandflash分区数据进行安全性校验,若所有数据都正常,则进入步骤c5,若有数据出现异常,则退出本次升级;
c5.获取当前分区信息,并与新的nandflash分区信息进行比较,若一致,则将各个nandflash分区数据写入对应位置,完成升级;若不一致,则保存新的nandflash分区信息,并设置升级标志,然后重启机顶盒,返回步骤c5;
c6.获取当前分区信息,并解析出升级数据流中的各个升级数据段信息,将各个升级数据段信息与当前分区信息比较,如果一致,则进行各个升级数据段的数据安全性校验,在校验通过后将各个升级数据段写入到对应分区;若各个升级数据段信息与当前分区信息不一致,或者分区信息数据校验错误,则提示升级失败,并退出升级。
进一步,步骤b中所述制作好的升级文件包括:头结构信息和多个文件数据段,其中头结构信息包含以下字段:文件头描述字符串标志、文件头长度、文件头CRC校验、新分区设置标识、新分区信息长度、新分区内容,分区升级个数,分区数据段描述信息。
进一步,所述分区数据段描述信息包括:FLASH设备号、分区偏移地址、数据长度、数据CRC校验值,数据段在组合文件内的偏移地址。
进一步,步骤c3中,利用各个分区数据段的FLASH设备号字段和分区偏移地址,判定各个升级分区信息是否与新的nandflash分区定义是否匹配。
进一步,步骤c5中,将各个nandflash分区数据按分区信息的flash设备号和分区偏移地址写入对应位置。
本发明的有益效果是:按nandflash分区升级时,能够自动修改分区设置,只通过一个升级数据流实现自动更新nandflash分区信息,并按新的分区进行升级。
具体实施方式
本发明提出一种基于nandflash的机顶盒的软件升级方法,解决传统技术中需要修改nandflash分区并进行软件升级时,升级效率低下的问题。其技术方案的要点包括以下步骤:
a.前端系统制作升级文件;a1.将所有需要升级的nandflash分区数据按一定格式组装成升级文件;a2.将新的nandflash分区信息及本次需要升级的分区信息添加至升级文件的头结构中;b.前端系统对制作好的升级文件进行打包,生成升级数据流发送给机顶盒;c.机顶盒接收升级数据流进行解析,判断是否需要按照新的nandflash分区进行升级,并作出相关处理。
从具体实施上来讲,包括以下步骤:
A.制作带有的新的nandflash分区信息的升级文件
a1.要实现自动更新nandflash分区,需要将新的nandflash分区信息通过一种方式告知loader。本方法将新的nandflash分区信息添加到升级文件的头结构中。
a2.将所有的需要升级的nandflash分区数据按一定的格式组装成一个升级文件,并将其分区信息添加到升级文件的头结构中。机顶盒在接收到升级数据后,再根据文件头结构,进行逆向解析,还原出新的nandflash分区信息和各个分区的具体信息,进行升级。
a3.根据步骤a1、a2的思想,将新的nandflash分区信息,以及每个分区的升级数据合并为一个升级文件,合并后的升级文件包含:合并文件信息头和N个文件数据段,其中合并文件信息头包含以下字段:文件头描述字符串标志、文件头长度、文件头CRC校验、新分区设置标识、新分区信息长度、新分区内容,分区升级个数,分区数据段描述信息。分区数据描述信息包括:FLASH设备号、分区偏移地址、数据长度、数据CRC校验值,数据段在组合文件内的偏移地址。
所述合并文件的具体结构如下:
Figure BDA0000127964630000031
Figure BDA0000127964630000041
其中文件头长度从文件头描述字符串标志开始,到文件头CRC校验值字段。当新分区设置标识字段为1时,标识升级数据是需要按照新的nandflash分区进行升级,否则按既定的nadnflash分区进行升级。
B.升级数据打包
将新生成的合并文件按常用方法进行数据打包,生成升级数据流。
C.机顶盒端升级数据处理
c1.接收完所有升级数据后,按照步骤a3的头结构定义,首先解析合并文件数据头,解析出既定升级分区信息和新分区设置标识字段。通过新分区设置标识字段判别是否有新的nandflash分区。
c2.若新分区设置标识字段为1,标识升级数据是需要按照新的nandflash分区进行升级。按步骤a3的头结构定义,分析出新的nandflash数据,并分析出各个分区数据段描述信息。利用各个分区数据段的FLASH设备号字段和分区偏移地址,判定各个升级分区信息是否与新的nandflash分区定义相匹配,若匹配则标识此升级流为正确的升级流,否则提示升级流错误,退出升级。此后,将各个分区数据段的数据,利用数据段长度、数据段CRC校验值以及数据段在组合文件内的偏移地址这三个数据段进行数据安全性校验,若所有的升级数据都正常,则继续升级,若异常则提示升级数据错误,退出升级。
C3.继步骤c2,如果数据正常,获取出机顶盒当前的分区信息,并与新的nandflash分区进行比较,若发现两个分区信息相同,则表示机顶盒内的分区信息已经更新。此后,将各个分区数据段的数据按分区信息的flash设备号和分区偏移地址进行写入。若机顶盒当前的分区信息,并与新的nandflash分区不一致,那么保存新的nandflash分区信息,并且设置升级标志,然后重启。机顶盒重启并发现需要升级,再次进入升级流程,此后会再运行到c3进行分区信息比较,此时发现分区信息一致,那么进行分区数据写入。这样就通过一个升级数据流实现自动更新nandflash分区信息,并按新的分区进行升级。
C4.若新分区设置标识字段为0.则获取出机顶盒当前的分区信息,并解析出升级流内的各个升级数据段信息。将各个升级数据段信息与当前机顶盒的分区信息比较。如果一直,则进行各个升级数据段的数据安全性校验,方法同c2,然后将各个升级数据段写入到各分区。若分区信息错误,或者分区信息数据校验错误,则提示升级失败,并退出升级。

Claims (6)

1.基于nandflash的机顶盒的软件升级方法,其特征在于,包括以下步骤:
a.前端系统制作升级文件;
a1.将所有需要升级的nandflash分区数据按一定格式组装成升级文件;
a2.将新的nandflash分区信息及本次需要升级的分区信息添加至升级文件的头结构中;
b.前端系统对制作好的升级文件进行打包,生成升级数据流发送给机顶盒;
c.机顶盒接收升级数据流进行解析,判断是否需要按照新的nandflash分区进行升级,并作出相关处理。
2.如权利要求1所述的基于nandflash的机顶盒的软件升级方法,其特征在于,步骤c具体包括:
c1.机顶盒接收升级数据流,首先解析升级文件的头结构,解析出既定分区信息和新的nandflash分区设置标识字段;
c2.若新的nandflash分区设置标识字段为1,则本次软件升级是按照新的nandflash分区进行升级,进入步骤c3,若新的nandflash分区设置标识字段为0,则本次软件升级是按照既定的nandflash分区进行升级,进入步骤c6;
c3.判断本次需要升级的分区信息与新的nandflash分区信息是否匹配,如果匹配,则该升级数据流正确,进入步骤c4;如果不匹配,则该升级数据流不正确,则退出本次升级;
c4.对各个nandflash分区数据进行安全性校验,若所有数据都正常,则进入步骤c5,若有数据出现异常,则退出本次升级;
c5.获取当前分区信息,并与新的nandflash分区信息进行比较,若一致,则将各个nandflash分区数据写入对应位置,完成升级;若不一致,则保存新的nandflash分区信息,并设置升级标志,然后重启机顶盒,返回步骤c5;
c6.获取当前分区信息,并解析出升级数据流中的各个升级数据段信息,将各个升级数据段信息与当前分区信息比较,如果一致,则进行各个升级数据段的数据安全性校验,在校验通过后将各个升级数据段写入到对应分区;若各个升级数据段信息与当前分区信息不一致,或者分区信息数据校验错误,则提示升级失败,并退出本次升级。
3.如权利要求2所述的基于nandflash的机顶盒的软件升级方法,其特征在于,步骤b中所述制作好的升级文件包括:头结构信息和多个文件数据段,其中头结构信息包含以下字段:文件头描述字符串标志、文件头长度、文件头CRC校验、新分区设置标识、新分区信息长度、新分区内容,分区升级个数,分区数据段描述信息。
4.如权利要求3所述的基于nandflash的机顶盒的软件升级方法,其特征在于,所述分区数据段描述信息包括:FLASH设备号、分区偏移地址、数据长度、数据CRC校验值,数据段在组合文件内的偏移地址。
5.如权利要求4所述的基于nandflash的机顶盒的软件升级方法,其特征在于,步骤c3中,利用各个分区数据段的FLASH设备号字段和分区偏移地址,判定各个升级分区信息是否与新的nandflash分区定义是否匹配。
6.如权利要求5所述的基于nandflash的机顶盒的软件升级方法,其特征在于,步骤c5中,将各个nandflash分区数据按分区信息的flash设备号和分区偏移地址写入对应位置。
CN201110458013.XA 2011-12-31 2011-12-31 基于nandflash的机顶盒的软件升级方法 Active CN102419713B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110458013.XA CN102419713B (zh) 2011-12-31 2011-12-31 基于nandflash的机顶盒的软件升级方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110458013.XA CN102419713B (zh) 2011-12-31 2011-12-31 基于nandflash的机顶盒的软件升级方法

Publications (2)

Publication Number Publication Date
CN102419713A true CN102419713A (zh) 2012-04-18
CN102419713B CN102419713B (zh) 2014-03-12

Family

ID=45944134

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110458013.XA Active CN102419713B (zh) 2011-12-31 2011-12-31 基于nandflash的机顶盒的软件升级方法

Country Status (1)

Country Link
CN (1) CN102419713B (zh)

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103440153A (zh) * 2013-09-04 2013-12-11 深圳市瑞彩电子技术有限公司 一种系统恢复的方法及装置
CN103458298A (zh) * 2012-06-01 2013-12-18 北京四达时代软件技术股份有限公司 一种机顶盒软件升级的方法和系统
CN103577201A (zh) * 2012-07-20 2014-02-12 上海斐讯数据通信技术有限公司 嵌入式双系统的更新方法及系统
CN103677902A (zh) * 2013-11-25 2014-03-26 上海斐讯数据通信技术有限公司 分布式olt系统中保障线卡软件升级安全性与成功性的方法
CN105487903A (zh) * 2015-12-04 2016-04-13 小米科技有限责任公司 系统升级方法及装置
CN105630548A (zh) * 2015-12-22 2016-06-01 小米科技有限责任公司 系统更新方法及装置
CN106293848A (zh) * 2013-03-15 2017-01-04 青岛海信移动通信技术股份有限公司 一种系统升级的方法及装置
CN107015817A (zh) * 2017-05-25 2017-08-04 孙文现 一种设备固件空中升级的方法
CN107193593A (zh) * 2017-05-17 2017-09-22 深圳创维数字技术有限公司 一种可升级文件的升级方法、机顶盒和存储介质
CN107229501A (zh) * 2017-06-30 2017-10-03 深圳市九洲电器有限公司 机顶盒分区更改升级方法及系统
CN107479924A (zh) * 2017-08-09 2017-12-15 四川长虹电器股份有限公司 基于Android系统的软件升级校验方法
CN107632778A (zh) * 2017-08-07 2018-01-26 深圳芯邦科技股份有限公司 一种Nand Flash扫描检测方法和系统
CN108055585A (zh) * 2017-12-19 2018-05-18 北京四达时代软件技术股份有限公司 数据处理方法、机顶盒升级方法、终端和机顶盒
CN109151590A (zh) * 2018-11-02 2019-01-04 四川长虹电器股份有限公司 一种双向数字电视升级方法
CN109710297A (zh) * 2019-01-07 2019-05-03 郑州天迈科技股份有限公司 一种设备整体或分模块进行升级和回退方法
CN112348994A (zh) * 2020-11-10 2021-02-09 天津津航计算技术研究所 一种基于上电次数的数据记录方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080209500A1 (en) * 2007-02-27 2008-08-28 Sony Corporation TV-centric system
CN101520734A (zh) * 2008-12-17 2009-09-02 康佳集团股份有限公司 一种升级闪存中数据的方法及其网络电视和交互式机顶盒
CN102012831A (zh) * 2010-12-08 2011-04-13 四川金网通电子科技有限公司 基于Linux平台的OTA升级方法
CN102081532A (zh) * 2010-10-15 2011-06-01 福建新大陆通信科技股份有限公司 一种机顶盒功能动态升级的方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080209500A1 (en) * 2007-02-27 2008-08-28 Sony Corporation TV-centric system
CN101520734A (zh) * 2008-12-17 2009-09-02 康佳集团股份有限公司 一种升级闪存中数据的方法及其网络电视和交互式机顶盒
CN102081532A (zh) * 2010-10-15 2011-06-01 福建新大陆通信科技股份有限公司 一种机顶盒功能动态升级的方法
CN102012831A (zh) * 2010-12-08 2011-04-13 四川金网通电子科技有限公司 基于Linux平台的OTA升级方法

Cited By (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103458298A (zh) * 2012-06-01 2013-12-18 北京四达时代软件技术股份有限公司 一种机顶盒软件升级的方法和系统
CN103577201B (zh) * 2012-07-20 2018-04-06 上海斐讯数据通信技术有限公司 嵌入式双系统的更新方法及系统
CN103577201A (zh) * 2012-07-20 2014-02-12 上海斐讯数据通信技术有限公司 嵌入式双系统的更新方法及系统
CN106293848A (zh) * 2013-03-15 2017-01-04 青岛海信移动通信技术股份有限公司 一种系统升级的方法及装置
CN103440153A (zh) * 2013-09-04 2013-12-11 深圳市瑞彩电子技术有限公司 一种系统恢复的方法及装置
CN103677902A (zh) * 2013-11-25 2014-03-26 上海斐讯数据通信技术有限公司 分布式olt系统中保障线卡软件升级安全性与成功性的方法
CN105487903A (zh) * 2015-12-04 2016-04-13 小米科技有限责任公司 系统升级方法及装置
CN105630548A (zh) * 2015-12-22 2016-06-01 小米科技有限责任公司 系统更新方法及装置
CN105630548B (zh) * 2015-12-22 2019-06-21 小米科技有限责任公司 系统更新方法及装置
CN107193593A (zh) * 2017-05-17 2017-09-22 深圳创维数字技术有限公司 一种可升级文件的升级方法、机顶盒和存储介质
CN107193593B (zh) * 2017-05-17 2020-08-21 深圳创维数字技术有限公司 一种可升级文件的升级方法、机顶盒和存储介质
CN107015817A (zh) * 2017-05-25 2017-08-04 孙文现 一种设备固件空中升级的方法
CN107015817B (zh) * 2017-05-25 2021-06-01 北京君泊网络科技有限责任公司 一种设备固件空中升级的方法
CN107229501A (zh) * 2017-06-30 2017-10-03 深圳市九洲电器有限公司 机顶盒分区更改升级方法及系统
CN107229501B (zh) * 2017-06-30 2020-04-03 深圳市九洲电器有限公司 机顶盒分区更改升级方法及系统
CN107632778A (zh) * 2017-08-07 2018-01-26 深圳芯邦科技股份有限公司 一种Nand Flash扫描检测方法和系统
CN107632778B (zh) * 2017-08-07 2020-06-12 深圳芯邦科技股份有限公司 一种Nand Flash扫描检测方法和系统
CN107479924B (zh) * 2017-08-09 2020-07-28 四川长虹电器股份有限公司 基于Android系统的软件升级校验方法
CN107479924A (zh) * 2017-08-09 2017-12-15 四川长虹电器股份有限公司 基于Android系统的软件升级校验方法
CN108055585A (zh) * 2017-12-19 2018-05-18 北京四达时代软件技术股份有限公司 数据处理方法、机顶盒升级方法、终端和机顶盒
CN108055585B (zh) * 2017-12-19 2020-12-15 北京四达时代软件技术股份有限公司 数据处理方法、机顶盒升级方法、终端和机顶盒
CN109151590A (zh) * 2018-11-02 2019-01-04 四川长虹电器股份有限公司 一种双向数字电视升级方法
CN109151590B (zh) * 2018-11-02 2021-01-26 四川长虹电器股份有限公司 一种双向数字电视升级方法
CN109710297A (zh) * 2019-01-07 2019-05-03 郑州天迈科技股份有限公司 一种设备整体或分模块进行升级和回退方法
CN109710297B (zh) * 2019-01-07 2022-06-21 郑州天迈科技股份有限公司 一种设备整体或分模块进行升级和回退方法
CN112348994A (zh) * 2020-11-10 2021-02-09 天津津航计算技术研究所 一种基于上电次数的数据记录方法

Also Published As

Publication number Publication date
CN102419713B (zh) 2014-03-12

Similar Documents

Publication Publication Date Title
CN102419713A (zh) 基于nandflash的机顶盒的软件升级方法
CN105262627B (zh) 一种固件升级方法、装置及系统
CN102622253B (zh) 一种单片机及其在线升级的方法
CN102622250B (zh) 一种支持多flash设备的机顶盒软件升级方法
CN105354070B (zh) 一种通过i2c升级设备固件的方法
US10203951B2 (en) Method and terminal for OTA updating
CN104102518B (zh) 一种双cpu系统及其程序升级方法
CN102065118A (zh) 一种网络设备升级方法及装置
CN103744694B (zh) 基于Nand闪存的动态分区搜索装置及其方法
US20130185484A1 (en) File programming method and associated device for nand flash
CN106484453B (zh) 一种实现系统升级的方法及装置
WO2016078060A1 (zh) 用于多系统终端的系统升级方法、升级装置和终端
CN103473101A (zh) 一种无缝版本升级方法及系统
CN103092634A (zh) 一种多flash设备的机顶盒软件升级方法
WO2011130879A1 (en) Match analysis for encoding optimized update packages
CN103780624A (zh) 一种面向复杂系统的通用应用层网络通信协议应用方法
CN105930161A (zh) 一种自动调节bios选项值的方法
US20150161097A1 (en) Language Set Disambiguator
CN102243591A (zh) 采用双标志位提高机顶盒Loader升级稳定性的方法
CN113064625B (zh) 一种带外升级bios的方法、装置、设备及介质
CN106027582A (zh) 一种内容相关的并行下载方法和装置
WO2020107436A1 (zh) 程序的升级方法和嵌入式设备
CN106506178A (zh) 一种用于为主播精准引流的方法和系统
CN101510948A (zh) 一种机顶盒软件升级方法
CN102917267A (zh) 一种机顶盒升级方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant