CN110427195B - 一种程序加载校验算法 - Google Patents

一种程序加载校验算法 Download PDF

Info

Publication number
CN110427195B
CN110427195B CN201910647258.3A CN201910647258A CN110427195B CN 110427195 B CN110427195 B CN 110427195B CN 201910647258 A CN201910647258 A CN 201910647258A CN 110427195 B CN110427195 B CN 110427195B
Authority
CN
China
Prior art keywords
command
program
checksum
loading
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.)
Active
Application number
CN201910647258.3A
Other languages
English (en)
Other versions
CN110427195A (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.)
Shaanxi Qianshan Avionics Co Ltd
Original Assignee
Shaanxi Qianshan Avionics 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 Shaanxi Qianshan Avionics Co Ltd filed Critical Shaanxi Qianshan Avionics Co Ltd
Priority to CN201910647258.3A priority Critical patent/CN110427195B/zh
Publication of CN110427195A publication Critical patent/CN110427195A/zh
Application granted granted Critical
Publication of CN110427195B publication Critical patent/CN110427195B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明提供一种程序加载的校验方法,采用附加字段和附加校验和混合使用的方式,将用于校验的字段和校验和附加在执行程序文件的尾端,在目标机程序加载任务中运行校验操作。本发明有效解决了在程序加载过程中因文件选择或通讯错误而造成的程序无法运行的问题。

Description

一种程序加载校验算法
技术领域
本发明属于航空电子技术领域,涉及一种程序加载校验算法。
背景技术
随着航空电子设备的不断发展,越来越多的设备中使用了程序进行控制,随着产品的使用,程序中不完善处被发现,在线加载成为程序升级的最优方式。该方式可以在不改变硬件状态的情况下快速完成软件升级的工作,大大节约人力和时间。
目前主流的升级方法为将软件编译器编译生成的可执行代码直接覆盖原程序,一般容易出现操作失误的情况,进而导致文件加载错误,程序无法运行,此时只能通过外部手段重新烧录程序。
发明内容
发明目的:本发明提供一种程序加载的校验方法,使得在程序加载过程中能够避免因操作失误而导致将错误的文件加载到目标设备,降低程序加载错误或失败的几率。
本发明采用的方案是:采用附加字段和附加校验和混合使用的方式,将用于校验的字段和校验和附加在执行程序文件的尾端,在目标机程序加载任务中运行校验操作。
优选地,所述附加字段通过编译器附加或使用批处理执行的方式,将自定义字段附加在编译器编译的可执行代码的尾端。
优选地,所述附加校验和包括两个校验步骤,分别是命令校验和和程序校验和,其中所述命令校验和方法入下:
命令校验和,通常程序数据量较大,通过不同接口进行加载时,无法一次将全部数据发送,通过加载命令定义‘起始’、‘数据’、‘结束’命令来定义加载不同的阶段;
‘起始’命令为加载端开始加载或重新加载的首个命令,目标机接收到‘起始’命令将程序加载功能重新进行初始化,避免上一次加载错误等不确定状态被清除;命令格式为:命令字+标志字;
‘数据’命令包含程序数据,命令格式为:命令字+标志字+数据长度+数据+ 命令校验和;数据长度可根据不同系统进行设置,命令结尾处的标志字为加载端计算得出;
‘结束’命令已将全部数据发送完成;目标机接收到‘结束’命令后,开始进行附加字段和程序校验和的计算和校验;
所述程序校验和为加载端计算,并附加在程序数据的最后。
优选地,所述目标机校验的方法如下:
(1)目标机接收加载程序命令,计算当前命令数据校验和得到计算校验和 a,将计算校验和a与命令校验和进行对比,如果相等,则将命令数据放入缓冲区并调整缓冲区指针;如果不相等,则程序加载失败;
(2)工作直至接收到‘结束’命令,判断附加字段是否正确,如果正确,则进行下一个步骤,如果错误,则程序加载失败;
(3)计算缓冲区数据校验和,将计算校验和b与程序校验和进行对比,如果相等,则将程序文件写入程序存储器;如果不相等,则程序加载失败。
有益效果:本发明有效解决了在程序加载过程中因文件选择或通讯错误而造成的程序无法运行的问题。
附图说明
图1为本发明目标机校验流程图。
具体实施方式
下面通过具体实施方式对本发明作进一步的详细说明:
一种程序加载的校验方法,采用附加字段和附加校验和混合使用的方式,将用于校验的字段和校验和附加在执行程序文件的尾端,在目标机程序加载任务中运行校验操作。
所述附加字段通过编译器附加或使用批处理执行的方式,将自定义字段附加在编译器编译的可执行代码的尾端。
所述附加校验和包括两个校验步骤,分别是命令校验和和程序校验和,其中所述命令校验和方法入下:
命令校验和,通常程序数据量较大,通过不同接口进行加载时,无法一次将全部数据发送,通过加载命令定义‘起始’、‘数据’、‘结束’命令来定义加载不同的阶段;
‘起始’命令为加载端开始加载或重新加载的首个命令,目标机接收到‘起始’命令将程序加载功能重新进行初始化,避免上一次加载错误等不确定状态被清除;命令格式为:命令字+标志字;
‘数据’命令包含程序数据,命令格式为:命令字+标志字+数据长度+数据+ 命令校验和;数据长度可根据不同系统进行设置,命令结尾处的标志字为加载端计算得出;
‘结束’命令已将全部数据发送完成;目标机接收到‘结束’命令后,开始进行附加字段和程序校验和的计算和校验;
所述程序校验和为加载端计算,并附加在程序数据的最后。
如图1所示,所述目标机校验的方法如下:
(1)目标机接收加载程序命令,计算当前命令数据校验和得到计算校验和 a,将计算校验和a与命令校验和进行对比,如果相等,则将命令数据放入缓冲区并调整缓冲区指针;如果不相等,则程序加载失败;
(2)工作直至接收到‘结束’命令,判断附加字段是否正确,如果正确,则进行下一个步骤,如果错误,则程序加载失败;
(3)计算缓冲区数据校验和,将计算校验和b与程序校验和进行对比,如果相等,则将程序文件写入程序存储器;如果不相等,则程序加载失败。

Claims (2)

1.一种程序加载校验算法,其特征在于:采用附加字段和附加校验和混合使用的方式,将用于校验的字段和校验和附加在执行程序文件的尾端,在目标机程序加载任务中运行校验操作;
所述附加校验和包括两个校验步骤,分别是命令校验和和程序校验和,其中所述命令校验和方法入下:
命令校验和,通过加载命令定义‘起始’、‘数据’、‘结束’命令来定义加载不同的阶段;
‘起始’命令为加载端开始加载或重新加载的首个命令,目标机接收到‘起始’命令将程序加载功能重新进行初始化,命令格式为:命令字+标志字;
‘数据’命令包含程序数据,命令格式为:命令字+标志字+数据长度+数据+命令校验和;数据长度可根据不同系统进行设置,命令结尾处的标志字为加载端计算得出;
‘结束’命令已将全部数据发送完成;目标机接收到‘结束’命令后,开始进行附加字段和程序校验和的计算和校验;
所述程序校验和为加载端计算,并附加在程序数据的最后;
所述在目标机程序加载任务中运行校验操作的方法如下:
(1)目标机接收加载程序命令,计算当前命令数据校验和得到计算校验和a,将计算校验和a与命令校验和进行对比,如果相等,则将命令数据放入缓冲区并调整缓冲区指针;如果不相等,则程序加载失败;
(2)工作直至接收到‘结束’命令,判断附加字段是否正确,如果正确,则进行下一个步骤,如果错误,则程序加载失败;
(3)计算缓冲区数据校验和,将计算校验和b与程序校验和进行对比,如果相等,则将程序文件写入程序存储器;如果不相等,则程序加载失败。
2.根据权利要求1所述的一种程序加载校验算法,其特征在于:所述附加字段通过编译器附加或使用批处理执行的方式,将自定义字段附加在编译器编译的可执行代码的尾端。
CN201910647258.3A 2019-07-17 2019-07-17 一种程序加载校验算法 Active CN110427195B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910647258.3A CN110427195B (zh) 2019-07-17 2019-07-17 一种程序加载校验算法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910647258.3A CN110427195B (zh) 2019-07-17 2019-07-17 一种程序加载校验算法

Publications (2)

Publication Number Publication Date
CN110427195A CN110427195A (zh) 2019-11-08
CN110427195B true CN110427195B (zh) 2023-06-30

Family

ID=68410902

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910647258.3A Active CN110427195B (zh) 2019-07-17 2019-07-17 一种程序加载校验算法

Country Status (1)

Country Link
CN (1) CN110427195B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102023884A (zh) * 2010-11-25 2011-04-20 深圳市科陆电子科技股份有限公司 一种嵌入式系统开发程序校验码自动生成的方法
CN103473088A (zh) * 2013-08-30 2013-12-25 北京远特科技有限公司 一种单片机在线升级方法和系统
CN109510824A (zh) * 2018-11-12 2019-03-22 中国银行股份有限公司 一种接口报文的校验方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6880149B2 (en) * 2002-04-01 2005-04-12 Pace Anti-Piracy Method for runtime code integrity validation using code block checksums

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102023884A (zh) * 2010-11-25 2011-04-20 深圳市科陆电子科技股份有限公司 一种嵌入式系统开发程序校验码自动生成的方法
CN103473088A (zh) * 2013-08-30 2013-12-25 北京远特科技有限公司 一种单片机在线升级方法和系统
CN109510824A (zh) * 2018-11-12 2019-03-22 中国银行股份有限公司 一种接口报文的校验方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
弓成虎 ; .某系统外部通讯数据校验缺陷分析及解决.福建电脑.2015,(09),全文. *

Also Published As

Publication number Publication date
CN110427195A (zh) 2019-11-08

Similar Documents

Publication Publication Date Title
CN109358887B (zh) 一种单片机程序的在线升级方法、装置及系统
CN108052355B (zh) 星载载荷单元软件在轨重组方法
CN104007996A (zh) 一种分布式控制系统的可靠固件升级实现方法
CN104899065A (zh) 一种可批量软件在线恢复与软件在线升级的方法和系统
CN105373407A (zh) 嵌入式系统dsp和fpga在线升级方法
CN103226484A (zh) 一种星载综合电子系统程序的在轨更新方法
CN101950254B (zh) 一种软件更新方法和系统
CN109710320B (zh) 一种两级驱动的启动引导BootLoader方法
US20240070026A1 (en) Method For Remote Upgrade and Rollback of Unmanned Aerial Vehicle (UAV) Software
CN106775778B (zh) 嵌入式程序开发中程序更新识别方法及系统
CN108182078B (zh) 一种优化的弹载设备不拆弹软件在线升级方法
CN106851625A (zh) 一种蓝牙产品ota升级方法
CN113467813A (zh) 一种控制器在线升级方法、装置、电子设备及存储介质
CN114616544A (zh) 固件数据处理方法及装置
CN110932891A (zh) 防出错ota升级方法、装置、计算机设备及存储介质
CN110427195B (zh) 一种程序加载校验算法
CN105045671A (zh) 一种智能终端的系统升级方法及装置
CN112181444B (zh) 一种基于1553b总线的dsp多核数据烧写方法
CN109492305B (zh) 一种基于发射车多级缸起竖控制方法
CN100359485C (zh) 嵌入式系统的测试装置及测试方法
US20090210613A1 (en) Method for Programming a Controller in a Motor Vehicle
CN111552498B (zh) 一种实现显示屏的屏参升级的方法及系统
CN105808214B (zh) 一种数据编译方法和地图编译器
CN110597537B (zh) 一种物联网节点安全更新升级方法
CN113157329A (zh) 启动应用的方法、系统、服务器和存储介质

Legal Events

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