[发明专利]一种芯片固件的升级方法和系统在审
申请号: | 201310754001.0 | 申请日: | 2013-12-31 |
公开(公告)号: | CN103761122A | 公开(公告)日: | 2014-04-30 |
发明(设计)人: | 徐建军;孔庆磊;牛锡亮 | 申请(专利权)人: | 青岛歌尔声学科技有限公司 |
主分类号: | G06F9/445 | 分类号: | G06F9/445 |
代理公司: | 北京市隆安律师事务所 11323 | 代理人: | 权鲜枝 |
地址: | 266061 山东省青岛市*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 芯片 升级 方法 系统 | ||
技术领域
本发明属于芯片领域,具体涉及一种芯片固件的升级方法和系统。
背景技术
消费类电子产品中,芯片作为控制芯片被广泛利用。在实际使用过程中,运行在芯片中的程序需要最终用户可以方便地升级,升级的方法大都通过固件升级方法(也即DFU,其英文全名为Device Firmware Upgrade)来实现。随着消费类电子产品的功能越来越强大,传统的8位/16位芯片日益无法满足应用的需求,因此,32位的ARM-Cortex-M0芯片也越来越广泛地被使用。各大芯片制造商也纷纷推出自己的M0芯片。且,USB接口是当前应用非常广泛的接口,其具有速度快、稳定性高、通用性好等诸多优点。
但是,对于基于USB通信的ARM-Cortex-M0芯片,如果采用上述的传统固件升级方法,在固件升级过程中,不可避免的发生断电、数据传输错误等状况,进而导致估计固件升级失败,并进一步导致了,ARM-Cortex-M0芯片重启后直接启动读取不完整或者错误数据而发生固件程序跑飞。
基于此,本发明提供了一种芯片固件的升级方法以系统。
发明内容
本发明的目的在于提供一种芯片固件的升级方法,用于解决上述的固件升级失败所导致的固件程序跑飞的问题。
本发明的目的还在于提供一种基于芯片固件的升级系统,用于防止芯片固件的升级失败而导致重启后固件程序跑飞。
基于上述的第一目的,本发明提供了一种芯片固件的升级方法,该方法包括:
步骤1,判断是否要进行一芯片固件的升级,是则执行步骤2,否则正常运行所述固件;
步骤2,获取固件升级数据,并将升级失败标志位置位;
步骤3,根据所述固件升级数据进行所述固件升级,若升级成功,则清空所述升级失败标志位,开始运行升级后的固件;如果升级失败,则保留所述升级失败标志位的置位状态并结束本次升级。
可选的,所述的方法还包括:设置升级组合按键,用于在按照步骤1至3正确执行所述固件的升级后出现异常情况而导致所述固件的升级失败后,触发升级组合按键,重新进行固件升级。
可选的,步骤1中,通过运行中的所述芯片固件实时监控其升级标志位是否被置位来判断是否要进行升级,若所述升级标志位被置位,则开始升级过程;和/或,
步骤2中,从与芯片通信的上位机或者因特网上获取固件升级数据,获取的固件升级数据以及升级失败标志位均保存在非易失性存储器的程序管理区;所述固件运行在所述非易失性存储器的用户程序存储区;
其中,所述升级标志位通过所述与芯片通信的上位机或者因特网或者所述升级组合按键进行置位。
可选的,步骤3中,根据所述固件升级数据进行所述固件升级,包括:
按顺序从所述程序管理区中读取所述固件升级数据的数据包并写入所述用户程序存储区中,读取的每个数据包携带相应的单校验码,所述固件升级数据携带一总校验码;
每完成一个数据包的读取和写入,读取所述用户程序存储区并生成一个单数据包校验码;比对所生成的单数据包校验码与所述数据包所携带的单校验码,如果不相等则重新进行该数据包的读取和写入,如果相等则进行下一个数据包的读取和写入;
完成全部所述数据包的读取和写入后,读取所述用户程序存储区并生成一个总数据包校验码;比对所生成的总数据包校验码与所述固件升级数据所携带的总校验码,如果不相等则重新根据所述固件升级数据进行所述固件升级。
可选的,所述的方法还包括:
保留所述升级失败标志位的置位状态并结束本次升级之后,更新所述固件的固件升级数据,以重新发起所述固件的升级,循环步骤1至3进入所述固件的下次升级。
本发明还提供一种芯片固件升级系统,包括:
判断单元,用于判断是否要进行一芯片固件的升级,并在确定要进行所述芯片固件的升级时启动所述芯片固件的升级过程;
固件升级数据加载单元,用于获取固件升级数据,并将升级失败标志位置位;以及
固件升级单元,用于根据所述固件升级数据进行所述固件升级,若升级成功,则清空所述升级失败标志位,开始运行升级后的固件;如果升级失败,则保留所述升级失败标志位的置位状态并结束本次升级。
可选的,所述的系统还包括:升级组合按键,用于在判断单元、固件升级数据加载单元以及固件升级单元正确执行所述固件的升级后出现异常情况而导致所述固件的升级失败后,触发而使得判断单元、固件升级数据加载单元以及固件升级单元重新对所述芯片固件进行固件升级。
可选的,所述系统还包括:非易失性存储器;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于青岛歌尔声学科技有限公司,未经青岛歌尔声学科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310754001.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:折叠梯
- 下一篇:一种半自动磁芯毛坯压机