linux嵌入式在线升级,一种嵌入式固件在线升级方法与流程

64438ca3601eb5b899162e1a2e161349.gif

本发明涉及计算机嵌入式软件领域,特别涉及一种嵌入式固件在线升级方法。

背景技术:

:传统的嵌入式终端设备,由于资源和环境条件的限制,在生产阶段就需要将软件代码固化,设备出厂后是无法在现场在线修改的。一旦出现升级需求,要么是设备返厂维修,要么是在现场拆机更换部件板或替换程序存储芯片。为了能够满足客户持续变化的需求,延长产品的生命周期,需要不断完善嵌入式终端设备功能,在线升级能力显得非常重要。常见的升级方式都是整个设备系统的升级,现实环境中,可能面临各种异常,如通讯传输误码、存储操作故障、传输中断、人工操作失误等现象,任何一项异常的发生,都会造成升级过程失败,那么引起系统瘫痪导致产品失效。一般来说,当产品硬件平台固定后,引导程序和操作系统被修改的可能性非常小,后期的完善更多是应用程序或者驱动模块微调,因此提供一种应用程序和驱动模块独立升级的方法具有重要的意义。技术实现要素:本发明的目的在于克服现有技术的缺点与不足,提供一种嵌入式固件在线升级方法,能够快速有效地实现应用程序和驱动模块的升级。一种嵌入式固件在线升级方法,包括以下步骤:S1、若用户有更新需求,则远程客户端经过升级端口下发更新文件给嵌入式终端;S2、嵌入式终端的升级服务程序后台运行,监听升级端口,一旦有需求则遵循双方认可的协议,进行更新文件传输;S3、嵌入式终端判断更新文件传输成功且更新文件完整后,将更新文件存入更新目录,然后系统重启;S4、嵌入式终端启动进入系统后,嵌入式终端的启动检测脚本判断在更新目录下是否有更新文件,如果有则拷贝到对应的应用程序目录和驱动目录下;S5、完成拷贝后删除原来更新目录下的文件,加载驱动模块、主应用程序和升级服务程序,完成升级。优选的,远程客户端完成文件的过滤、总文件校验、对文件进行拆包后通过双方认可的协议、经过升级端口下发更新文件以及对升级成功或失败进行显示。优选的,步骤S2中更新文件传输过程中采用应答机制加数据校验确保每帧数据的正确性和整个文件的完整性。进一步的,数据校验采用奇偶校验、异或校验、CRC循环冗余校验、MD5校验中的一种。优选的,远程客户端和嵌入式终端双方认可的升级协议组成包括:帧头、帧长度、帧类型、数据内容以及校验值。进一步的,文件传输具体过程如下:远程客户端操作:步骤1:打开远程客户端,用户选择更新文件,远程客户端软件计算总文件大小N字节、总文件校验值和总帧数M;每一帧数据内容最大长度为K字节,总帧数M包括:更新文件控制帧1个,还有更新文件内容帧,假若N%K=0,M=N/K,否则M=N/K+1,校验方式采用CRC校验值;步骤2:开始传输,第一帧为更新文件控制帧,包含更新文件控制信息;首先填充升级协议:帧类型为1,数据内容包括文件总大小,文件总CRC值以及计算出的此帧CRC校验值;然后发送帧数据到嵌入式终端,收到终端应答确认后,继续步骤3;否则重复发送,重复次数达到三次后,继续步骤5;步骤3:开始更新文件内容帧传输,从第2帧到M帧,与步骤2步骤一样,帧类型为2,计算此帧CRC校验值,发送帧数据到嵌入式终端,收到终端应答确认后,继续下一帧发送,发送完成后继续步骤4;否则重复发送,发送次数达到三次后,继续步骤5;步骤4:等待终端升级状态应答,解析并显示;步骤5:升级结束;终端升级服务程序操作:步骤1:启动监听升级端口,有升级需求的话,继续步骤2;步骤2:接收远程客户端发送的数据,计算当前帧CRC校验值与远程客户端发送帧数据的校验值是否一致,若一致则通过校验,应答给远程客户端。解析帧数据的帧类型,根据帧类型提取信息,总文件的全部帧接收完成后,继续步骤3;若不一致,应答给远程客户端,远程客户端重发该帧数据;步骤3:计算接收到的总文件数据CRC校验值与第一帧更新文件控制信息中的文件总CRC校验值是否一致,如果一致,写入更新目录下,将各个文件CRC校验值以及对应的文件名称存入升级配置文件,更新状态为升级成功,应答远程客户端;否则,不写入文件信息,更新状态为升级错误,应答给远程客户端;继续步骤4;步骤4:升级结束。优选的,步骤S5中启动检测脚本计算拷贝后文件的CRC校验值与升级配置文件中对应的CRC校验值,验证一致后,删除原来的更新目录的文件。优选的,数据内容最大长度K为1024字节。本发明与现有技术相比,具有如下优点和有益效果:1、本发明方法采用应用程序和驱动模块里独立升级的机制,单独升级更快速可靠,避免升级整个系统文件升级,可以很大程度减少设备的返修率,快速实现功能完善以响应用户需求。2、本发明方法支持误码重传且采用应答机制确保传输正确性,降低错误率。3、本发明方法升级功能独立于应用功能,即使出现错误导致设备功能异常,也能通过重新升级,快速恢复及更新系统功能,失败可还原,可靠性高。4、本发明方法采用嵌入式linux操作系统,在应用层实现主应用及驱动的更新,升级软件以文件名的形式写入存储器,用户无需关注对存储器底层的读写操作,只需普通文件的操作,实现简单,实用性强。附图说明图1是实施例在线升级方法的系统框图;图2是实施例在线升级方法的流程图。具体实施方式下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。一般来说,当产品硬件平台固定后,引导程序和操作系统被修改的可能性非常小,后期的完善更多是应用程序或者驱动模块微调,所以应用程序和驱动模块独立升级是一种更好的解决办法。本实施例提供一种嵌入式固件在线升级方法,如图1所示,涉及远程客户端和嵌入式终端,两者通过双方认可的通信协议完成固件的在线升级。本方法采用嵌入式linux操作系统,在应用层实现主应用及驱动的更新,升级软件以文件名的形式写入存储器,用户无需关注对存储器底层的读写操作,只需普通文件的操作。远程客户端负责:文件的过滤;总文件校验;对文件进行拆包后通过双方认可的协议,经过升级端口下发更新文件;对升级成功或失败进行显示。嵌入式终端主要包含三部分,升级服务程序,启动检测脚本和主应用程序,三者独立运行。升级服务程序和启动检测脚本具有通用性,主应用程序视终端平台而异。若用户有更新需求,则远程客户端通过升级端口下发更新文件,嵌入式终端的升级服务程序后台运行,一直监听升级端口,一旦有需求则遵循双方认可的协议,完成文件传输,并存入更新目录。文件传输过程中采用应答机制加校验确保每帧数据的正确性和整个文件的完整性。现有技术中,数据校验是为保证数据完整性的一种手段,发送方用一种指定的算法对原始数据计算出一个校验值;接收方用同样的算法计算一次校验值,如果接收方计算的校验值和发送方随数据提供的校验值一样,说明数据完整。数据校验可以采用通用的校验方式,如奇偶校验、异或校验、CRC循环冗余校验、MD5校验等,可以根据情况选择合适的校验算法。如图2所示,嵌入式终端设备启动进入系统后,启动检测脚本判断在更新目录下是否有更新文件,如果有则拷贝到对应的应用程序目录和驱动目录下。完成拷贝后删除原来更新目录下的文件,加载驱动模块,主应用程序,还有升级服务程序。具体的说明如下:远程客户端和嵌入式终端双方认可的升级协议组成包括:帧头、帧长度、帧类型、数据内容以及校验值,如下表所示:帧头帧长度帧类型数据内容校验值4字节2字节2字节K字节2字节帧长度包括帧类型、数据内容、校验值节数。远程客户端操作:步骤1:打开远程客户端,用户选择更新文件,远程客户端软件计算总文件大小N字节、总文件校验值和总帧数M;每一帧数据内容最大长度为K字节,总帧数M包括:更新文件控制帧(1个),还有更新文件内容帧(假若N%K=0,M=N/K,否则M=N/K+1),本实施例中K=1024,校验方式采用CRC校验值。步骤2:开始传输,第一帧为更新文件控制帧,包含更新文件控制信息,首先填充升级协议:帧类型为1,数据内容包括文件总大小(4个字节),文件总CRC值(2字节)以及计算出的此帧CRC校验值;然后发送帧数据到嵌入式终端,收到终端应答确认后,继续步骤3;否则重复发送,重复次数达到三次后,继续步骤5;步骤3:开始更新文件内容帧传输,从第2帧到M帧,与步骤2步骤一样,帧类型为2,数据内容长度K不能大于1024字节,计算此帧CRC校验值,发送帧数据到嵌入式终端,收到终端应答确认后,继续下一帧发送,发送完成后继续步骤4;否则重复发送,发送次数达到三次后,继续步骤5;步骤4:等待终端升级状态应答,解析并显示;步骤5:升级结束。终端升级服务程序:步骤1:启动监听升级端口,有升级需求的话,继续步骤2;步骤2:接收远程客户端发送的数据,计算当前帧CRC校验值与远程客户端发送帧数据的校验值是否一致,若一致则通过校验,应答给远程客户端。解析帧数据的帧类型,根据帧类型提取信息,总文件的全部帧接收完成后,继续步骤3;若不一致,应答给远程客户端,远程客户端重发该帧数据;步骤3:计算接收到的总文件数据CRC校验值与第一帧更新文件控制信息中的文件总CRC校验值是否一致,如果一致,写入更新目录下,将各个文件CRC校验值以及对应的文件名称存入升级配置文件,更新状态为升级成功,应答远程客户端;否则,不写入文件信息,更新状态为升级错误,应答给远程客户端;继续步骤4;步骤4:升级结束。启动检测脚本:步骤1:启动检测脚本判断更新目录下是否有更新文件,如果有,判断是应用程序还是驱动模块,如果为应用程序则拷贝到apps目录下,如果为驱动模块,拷贝到drivers目录下,继续步骤2;步骤2:计算拷贝后文件的CRC校验值与升级配置文件中对应的CRC校验值,验证一致后,删除原来的更新目录的文件,继续步骤3;步骤3:加载dirvers目录下的驱动模块,启动app目录下的升级服务程序、主应用程序。上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。当前第1页1&nbsp2&nbsp3&nbsp

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值