[发明专利]基于Linux平台的OTA升级方法有效
申请号: | 201010577398.7 | 申请日: | 2010-12-08 |
公开(公告)号: | CN102012831A | 公开(公告)日: | 2011-04-13 |
发明(设计)人: | 刘海润 | 申请(专利权)人: | 四川金网通电子科技有限公司 |
主分类号: | G06F9/445 | 分类号: | G06F9/445 |
代理公司: | 四川省成都市天策商标专利事务所 51213 | 代理人: | 刘兴亮 |
地址: | 610000 四川省*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 linux 平台 ota 升级 方法 | ||
技术领域
本发明涉及一种OTA升级方法,具体涉及一种基于Linux平台的OTA升级方法。
背景技术
OTA(Over-the-Air Technology)即空中下载技术,是通过通信的空中接口对SIM卡数据及应用进行远程管理的技术。随着人们对生活水平的高要求,以及芯片处理能力不断提升,数字机顶盒作为未来数字电视广播业务的终端设备,也由单功能向多功能发展,这就要求必须要有灵活的升级程序来保证新增加的功能安全稳定的升级到用户的机顶盒中。传统单功能的引导加载程序不能实现多架构系统的支持以及功能扩展,u-boot作为一种通用的成为了嵌入式开发引导加载的首选。
随着应用的不断丰富,容量成为必须考虑的因素,Nand Flash具有单位容量价格低廉,擦写速度快,成为了嵌入式开发的首选存储设备。支持Nand Flash的文件系统也相当多,熟悉的有U盘使用的Fat格式,jffs以及本文使用的yaffs文件系统。
目前尚无用yaffs文件系统、nand flash实现OTA升级。
发明内容
本发明提供了一种可以完全升级kernel,ramdisk以及其他各种文件系统的OTA升级方法。它不受内核版本限制,非常灵活,甚至可以升级u-boot和loader本身,实现了完全的全能升级。即使出现各种意外情况,也能很方便的升级,甚至用户自己也能通过我们提供的升级程序简单操作便能完成升级。
本专利的思路是利用Yaffs文件系统对Nand Flash的良好支持,在kernel中添加yaffs文件系统的支持,通过将升级信息打包成ts流传送到用户机顶盒接收,机顶盒程序根据接收的ts流进行解析,判断出需要升级的部分,并将升级的基本信息保存在指定的文件中,然后自动重启机顶盒,u-boot中读取升级文件,并写入到指定的flash地址,然后跳转到loader,loader读取指定地址,并解析出升级信息中所需的频点,符号率等信息,将升级信息加载到内存中,再写入flash中;重启后进入机顶盒程序,正常执行,完成所有升级功能。
u-boot作为通用的boot loader,已经很广泛的在各个嵌入式产品上使用。其支持架构的广泛性,代码控制的方便性,以及其灵活的移植性和方便的命令操作模式,都让其成为通用引导程序的霸主。在u-boot添加了U盘的支持,可以直接通过U盘升级,移植了yaffs文件系统,让其可以直接和操作系统下面的文件进行通信。即使换一个平台和架构,也不需要修改太多,便能完成移植,对产品的快速成型有很大的优势。U-boot本身发展迅速,支持的驱动丰富,所以在实现各种扩展功能时有丰富的代码作为参考,对节约产品开发时间提高效率有很大的效果。
本发明是这样实现的:
一种基于Linux平台的OTA升级方法,包括如下步骤:
步骤一:机顶盒接收并读取升级信息,将升级信息保存在指定的文件中,保存完后调用重启命令,重启机顶盒;
步骤二:重启机顶盒后进入u-boot,首先挂载yaffs文件系统,读取指定的文件中是否有升级参数文件,如果有且不为空,再读flash地址上保存的flag参数值,当flag参数值等于0时,表示上次升级成功,机顶盒正常执行比较版本号并删除升级参数文件;当flag参数值等于1时,表示需要升级,则读取参数文件到内存,并保存到flash固定地址,然后直接跳转到loader程序;
步骤三:loader程序首先读取保存到flash固定地址的参数文件,解析出需要使用的参数后,执行升级,并将升级信息加载到内存中,再写入到flash指定地址,升级完成后,loader程序将flag值改为0;
步骤四:重启机顶盒,进入机顶盒程序,即完成所有升级功能。
更进一步的方案是:所述的升级信息可以采用ts流或者u盘的形式发送。
更进一步的方案是:所述的yaffs文件系统根据实际的flash地址分布,给yaffs设备文件赋值startblock和endblock,其数值是以块为单位。
更进一步的方案是:所述挂载yaffs文件系统是指向u-boot启动过程中已经初始化了mtd设备;然后根据该nand flash的数据手册,赋值上相应的属性,并指定相应的读写操作函数,完成yaffs设备的初始化;然后根据指定的分区来查找到挂载点,挂载点由startblock和endblock来指定;
更进一步的方案是:所述挂载yaffs文件系统在挂载过程中需要检查yaffs_tag,其位于nand flash的spare区中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于四川金网通电子科技有限公司,未经四川金网通电子科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010577398.7/2.html,转载请声明来源钻瓜专利网。