CN103412770A - 一种基于操作***支持的嵌入式***通用在线固化方法 - Google Patents

一种基于操作***支持的嵌入式***通用在线固化方法 Download PDF

Info

Publication number
CN103412770A
CN103412770A CN201310316991XA CN201310316991A CN103412770A CN 103412770 A CN103412770 A CN 103412770A CN 201310316991X A CN201310316991X A CN 201310316991XA CN 201310316991 A CN201310316991 A CN 201310316991A CN 103412770 A CN103412770 A CN 103412770A
Authority
CN
China
Prior art keywords
program
operating system
machine
curing
programming
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
CN201310316991XA
Other languages
English (en)
Other versions
CN103412770B (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.)
Beijing Institute of Control Engineering
Original Assignee
Beijing Institute of Control Engineering
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 Beijing Institute of Control Engineering filed Critical Beijing Institute of Control Engineering
Priority to CN201310316991.XA priority Critical patent/CN103412770B/zh
Publication of CN103412770A publication Critical patent/CN103412770A/zh
Application granted granted Critical
Publication of CN103412770B publication Critical patent/CN103412770B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

一种基于操作***支持的嵌入式***通用在线固化方法,本发明的硬件由目标机和地面机组成,两者互相连通,软件由操作***、烧写程序和通用在线固化软件构成。操作***运行于目标机程序存储器中,烧写软件运行于目标机内存中,通用在线固化软件运行于地面机上。目标机首先运行操作***,操作***成功接收到通用在线固化软件发送的烧写程序并通过校验后,跳转至烧写程序运行,烧写程序再成功接收到通用在线固化软件发送的待固化软件后,将待固化软件烧写至目标存储器中。本发明不需要调试器/仿真器,具有灵活性强、空间开销小、在线固化过程安全性和可靠性高的优点。

Description

一种基于操作***支持的嵌入式***通用在线固化方法
技术领域
本发明涉及一种嵌入式***中通用的在线程序固化方法,特别是基于操作***支持的嵌入式***非易失性存储器的通用在线固化方法。
背景技术
程序和数据的固化是嵌入式软件开发、测试过程中的重要环节,随着软件的不断升级,需要频繁地将程序和数据烧写到芯片中,一种好的固化方法能够大幅降低开发成本,缩短研制周期。
目前的嵌入式***程序在线固化的主要方法是首先通过调试器(例如JTAG调试器)获取处理器的控制权,随后在调试器软件中将烧写软件及待固化程序加载至目标机内存中,最后运行烧写软件,使待固化程序被烧写到指定的非易失性存储器中。
传统在线固化方法的缺点是必须依赖调试器获取CPU的控制权,而在航天航空等大型军工产品的研制和测试中,为避免调试器对硬件产品造成器件损伤,调试器的使用受到许多限制。
目前,国内外已在嵌入式***程序在线固化方面开展了一些研究,如《单片机与嵌入式***应用》2008年第3期发表的“ARM***代码固化的串口实现”及专利“一种基于J-LINK间接烧写程序到NANDFLASH的方法”均提出先通过调试器将烧写软件加载至内存中,再通过串口将待固化程序上传至内存,最后进行烧写的方法。然而这一方法仍需要调试器的辅助。专利“一种机载嵌入式计算机数据加载方法”提出另一种在线固化方法,即在启动程序中内置一种在线编程工作模式,进入该模式后,接收待固化的程序并进行程序在线升级固化。《机电一体化》2011年第2期发表的“基于RS-232的FLASH在线编程研究”一文也提出类似方法。然而这种内置在线编程工作模式的方法对于程序存储用非易失性存储器资源有限的***,如航天飞行器控制计算机,空间开销过大。
发明内容
本发明的技术解决问题是:克服现有技术的不足,提供一种基于操作***支持的嵌入式***通用在线固化方法,本方法不需要任何调试器的支持,也不需要在启动程序中内置在线编程固化的程序代码,适用于嵌入式***中各类非易失性可编程程序存储器上的在线固化,解决了目前嵌入式软件固化的灵活性较差、可靠性不高、效率不高及程序空间浪费较大的问题。
本发明的技术解决方案是:
一种基于操作***支持的嵌入式***通用在线固化方法,其步骤如下:
(1)地面机向目标机循环发送键码序列;
(2)目标机操作***启动后接收键码序列,若接收到有效键码序列,则向地面机发送握手回送标志建立连接并进入步骤(3),否则进入步骤(10);
(3)目标机操作***接收地面机发送的数据帧头1、烧写程序和烧写程序的校验码;
(4)目标机操作***按照目标机-地面机通讯协议中的数据校验算法对接收到的烧写程序计算校验码,并与步骤(3)中接收到的烧写程序的校验码进行比对,若比对一致则进入步骤(5),否则进入步骤(10);
(5)烧写程序接收地面机发送的数据帧头2、待固化程序和待固化程序的校验码;
(6)烧写程序按照目标机-地面机通讯协议中指定的数据校验算法对接收到的待固化程序计算校验码,并与步骤(5)中接收到的待固化程序的校验码进行比对,若比对一致则进入步骤(7),否则进入步骤(11);
(7)烧写程序将待固化程序写入数据帧头2中的烧写目标地址;
(8)烧写程序从烧写目标地址中读取步骤(7)中待固化程序并计算待固化程序的校验码,并与步骤(5)中接收到的待固化程序的校验码再次进行比对,并将比对结果发送给地面机,地面机进入步骤(9),烧写程序进入步骤(11);
(9)地面机接收并显示目标机发送的固化程序比对结果;
(10)目标机操作***正常进行任务调度;
(11)烧写程序自动重启目标机。
所述步骤(2)中目标机接收地面机循环发送的键码序列期间,字节间隔超过通讯字节最大间隔,则认为通讯失败,目标机操作***正常进行任务调度。
所述步骤(2)中有效键码序列是指目标机将接收到的键码序列与目标机-地面机通讯协议中要求的键码序列比对,若比对一致,则认为接收到了有效的键码序列,并立即向地面机发送握手回送标志,继续执行;若在目标机-地面机通讯协议中要求的最大等待时间内未接收到有效的键码序列,则停止数据接收,目标机操作***正常进行任务调度。
所述步骤(3)中的数据帧头1包含目标内存地址1和上传数据的长度。
所述步骤(3)中的烧写程序的长度是步骤(3)中上传数据的长度;所述步骤(3)中目标机操作***将接收到的烧写程序保存至以目标内存地址1为起始的内存中。
所述步骤(5)中的数据帧头2包含目标内存地址2、烧写目标地址和程序长度;所述步骤(5)中的待固化程序的长度是程序长度;所述步骤(5)中的目标机烧写程序将接收到的待固化程序保存至以目标内存地址2为起始的内存中。
本发明与现有技术相比的有益效果是:
(1)本发明摆脱了嵌入式程序在线固化过程对调试器的依赖,从根本上避免了调试器对硬件产品造成器件损伤的可能性,大幅度提高了嵌入式程序固化过程的安全性。
(2)本发明用在整星/船/器等大型航天航空产品调试、测试过程中,可避免对硬件器件的重复插拔及加断电操作,程序固化的时间可由原先的30分钟到1小时缩短到几分钟,工作效率显著提高。
(3)本发明采用多重校验的方式,保证了目标机接收到的烧写程序及被固化程序的数据正确性,以及固化结果的正确性,有效保证了固化过程的可靠性。
(4)本发明只需要对操作***进行少量的修改以增加监控上传的功能,与内置在线编程固化的程序代码相比,只占用极少的程序空间,大大节省了操作***启动程序存储空间。
(5)本发明通过接收到的键码序列判断是否接受上传程序,并不需要在硬件上设计任何特殊的工作模式标志,且无论是所使用的非易失性可编程存储器还是通讯传输链路,都不局限于特定的硬件器件,可根据器件资源情况选用合适的器件实现本方法,具有良好的通用性。
附图说明
图1为本发明***示意图;
图2为本发明流程图。
具体实施方式
下面结合附图对本发明的具体实施方式进行进一步的详细描述。
如图1所示,本发明一种基于操作***支持的嵌入式***通用在线固化方法,本发明所实现的嵌入式软件固化***分为软件和硬件两部分。硬件由目标机和地面机组成,目标机与地面机互相连通。目标机中的存储器主要由程序存储器、内存以及目标存储器三部分组成(通常情况下,程序存储器和目标存储器为不同的存储器芯片,但二者也可以为同一存储器芯片)。软件由操作***、烧写程序和通用在线固化软件三部分组成。操作***运行于目标机程序存储器中,烧写软件运行于目标机内存中,通用在线固化软件运行于地面机上。目标机启动后首先运行操作***,操作***成功接收到通用在线固化软件发送的烧写程序后,跳转至烧写程序运行,烧写程序成功接收到通用在线固化软件发送的待固化软件后,将待固化软件烧写至目标存储器中。为了提高在线固化过程的可靠性,本发明提出“目标机-地面机监控上传通讯协议”,其中包含键码序列、握手回送标志、通讯字节最大间隔以及数据校验算法;该协议用于保证通讯过程的可靠性以及数据的有效性。
如图2所示,本发明一种基于操作***支持的嵌入式***通用在线固化方法,其具体步骤如下:
(1)地面机向目标机循环发送键码序列Shanding
(2)目标机操作***完成处理器和内存初始化后首先进入监控上传模式;在监控上传模式中,目标机操作***若接收到有效键码序列Shanding,则向地面机发送握手回送标志Fhanding建立连接;目标机操作***接收地面机发送的键码序列期间,若字节间隔超过通讯字节最大间隔Ttimeout,则认为通讯失败,退出监控上传模式,目标机操作***正常进行任务调度;目标机操作***将接收到的键码序列Shanding与目标机-地面机通讯协议中要求的键码序列比对,若比对一致,则认为接收到了有效的键码序列,并立即向地面机发送握手回送标志,进入步骤(3),若在目标机-地面机通讯协议中要求的最大等待时间内未接收到有效的键码序列,退出监控上传模式,目标机操作***正常进行任务调度;
(3)目标机操作***接收地面机发送的数据帧头1FH1、烧写程序P1和烧写程序校验码CHK1;数据帧头1包含目标内存地址1Addr1和上传数据的长度Length1;烧写程序P1的长度是上传数据的长度Length1;目标机操作***将接收到的烧写程序P1保存至目标内存地址1Addr1起始的内存中;
(4)目标机操作***按照目标机-地面机通讯协议中的数据校验算法计算烧写程序的校验码CHK1',并与步骤(3)中接收到的烧写程序校验码CHK1进行比对,若比对一致则目标机操作***将控制权交予烧写程序并进入步骤(5),否则退出监控上传模式,进入步骤(10);
(5)烧写程序接收数据帧头2FH2、待固化程序P2和待固化程序校验码CHK2;数据帧头2包含目标内存地址2Addr2、烧写目标地址BAddr和程序长度Length2;待固化程序P2的长度是程序长度Length2;烧写程序将接收到的待固化程序P2保存至目标内存地址2Addr2起始的内存中;
(6)烧写程序按照目标机-地面机通讯协议中指定的数据校验算法计算待固化程序的校验码CHK2',并与接收到的待固化程序校验码CHK2进行比对,若比对一致则进入步骤(7),否则放弃固化操作,进入步骤(11);
(7)烧写程序将待固化程序P2写入烧写目标地址BAddr起始的存储器区域中;
(8)烧写程序从烧写目标地址起始的存储器区域中读取步骤(7)中固化的全部程序P2',计算P2'的校验码CHK2'',将其与步骤(5)中接收到的待固化程序的校验码CHK2再次进行比对,并将比对结果发送给地面机,地面机进入步骤(9),烧写程序进入步骤(11);
(9)地面机接收并显示目标机发送的固化程序比对结果;
(10)目标机操作***正常进行任务调度;
(11)烧写程序自动重启目标机。
本发明说明书中未作详细描述的内容属于本领域技术人员的公知技术。

Claims (6)

1.一种基于操作***支持的嵌入式***通用在线固化方法,其特征在于步骤如下:
(1)地面机向目标机循环发送键码序列;
(2)目标机操作***启动后接收键码序列,若接收到有效键码序列,则向地面机发送握手回送标志建立连接并进入步骤(3),否则进入步骤(10);
(3)目标机操作***接收地面机发送的数据帧头1、烧写程序和烧写程序的校验码;
(4)目标机操作***对接收到的烧写程序计算校验码,并与步骤(3)中接收到的烧写程序的校验码进行比对,若比对一致则进入步骤(5),否则进入步骤(10);
(5)烧写程序接收地面机发送的数据帧头2、待固化程序和待固化程序的校验码;
(6)烧写程序对接收到的待固化程序计算校验码,并与步骤(5)中接收到的待固化程序的校验码进行比对,若比对一致则进入步骤(7),否则进入步骤(11);
(7)烧写程序将待固化程序写入数据帧头2中的烧写目标地址;
(8)烧写程序从烧写目标地址中读取步骤(7)中待固化程序并计算待固化程序的校验码,并与步骤(5)中接收到的待固化程序的校验码再次进行比对,并将比对结果发送给地面机,地面机进入步骤(9),烧写程序进入步骤(11);
(9)地面机接收并显示目标机发送的固化程序比对结果;
(10)目标机操作***正常进行任务调度;
(11)烧写程序自动重启目标机。
2.根据权利要求1所述的一种基于操作***支持的嵌入式***通用在线固化方法,其特征在于:所述步骤(2)中目标机接收地面机循环发送的键码序列期间,字节间隔超过通讯字节最大间隔,则认为通讯失败,目标机操作***正常进行任务调度。
3.根据权利要求1所述的一种基于操作***支持的嵌入式***通用在线固化方法,其特征在于:所述步骤(2)中有效键码序列是指目标机将接收到的键码序列与目标机-地面机通讯协议中要求的键码序列比对,若比对一致,则认为接收到了有效的键码序列,并立即向地面机发送握手回送标志,继续执行;若在目标机-地面机通讯协议中要求的最大等待时间内未接收到有效的键码序列,则停止数据接收,目标机操作***正常进行任务调度。
4.根据权利要求1所述的一种基于操作***支持的嵌入式***通用在线固化方法,其特征在于:所述步骤(3)中的数据帧头1包含目标内存地址1和上传数据的长度。
5.根据权利要求1所述的一种基于操作***支持的嵌入式***通用在线固化方法,其特征在于:所述步骤(3)中的烧写程序的长度是步骤(3)中上传数据的长度;所述步骤(3)中目标机操作***将接收到的烧写程序保存至以目标内存地址1为起始的内存中。
6.根据权利要求1所述的一种基于操作***支持的嵌入式***通用在线固化方法,其特征在于:所述步骤(5)中的数据帧头2包含目标内存地址2、烧写目标地址和程序长度;所述步骤(5)中的待固化程序的长度是程序长度;所述步骤(5)中的目标机烧写程序将接收到的待固化程序保存至以目标内存地址2为起始的内存中。
CN201310316991.XA 2013-07-25 2013-07-25 一种基于操作***支持的嵌入式***通用在线固化方法 Active CN103412770B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310316991.XA CN103412770B (zh) 2013-07-25 2013-07-25 一种基于操作***支持的嵌入式***通用在线固化方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310316991.XA CN103412770B (zh) 2013-07-25 2013-07-25 一种基于操作***支持的嵌入式***通用在线固化方法

Publications (2)

Publication Number Publication Date
CN103412770A true CN103412770A (zh) 2013-11-27
CN103412770B CN103412770B (zh) 2015-05-27

Family

ID=49605783

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310316991.XA Active CN103412770B (zh) 2013-07-25 2013-07-25 一种基于操作***支持的嵌入式***通用在线固化方法

Country Status (1)

Country Link
CN (1) CN103412770B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104615532A (zh) * 2015-01-04 2015-05-13 南京航空航天大学 基于VxWorks操作***的航天软件在轨调试方法
CN105718398A (zh) * 2014-12-01 2016-06-29 中国航空工业集团公司第六三一研究所 基于gjb289a总线的在线编程方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102629212A (zh) * 2012-04-28 2012-08-08 广东宝莱特医用科技股份有限公司 一种基于j-link间接烧写程序到nandflash的方法
CN103092659A (zh) * 2013-01-31 2013-05-08 中国航空无线电电子研究所 脱离仿真器支持环境的dsp软件升级***及其升级方法
CN103164242A (zh) * 2013-02-01 2013-06-19 中国人民解放军国防科学技术大学 卫星星务软件上注方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102629212A (zh) * 2012-04-28 2012-08-08 广东宝莱特医用科技股份有限公司 一种基于j-link间接烧写程序到nandflash的方法
CN103092659A (zh) * 2013-01-31 2013-05-08 中国航空无线电电子研究所 脱离仿真器支持环境的dsp软件升级***及其升级方法
CN103164242A (zh) * 2013-02-01 2013-06-19 中国人民解放军国防科学技术大学 卫星星务软件上注方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105718398A (zh) * 2014-12-01 2016-06-29 中国航空工业集团公司第六三一研究所 基于gjb289a总线的在线编程方法
CN104615532A (zh) * 2015-01-04 2015-05-13 南京航空航天大学 基于VxWorks操作***的航天软件在轨调试方法

Also Published As

Publication number Publication date
CN103412770B (zh) 2015-05-27

Similar Documents

Publication Publication Date Title
CN104102518B (zh) 一种双cpu***及其程序升级方法
CN103593250A (zh) 一种带外修改BIOS Setup选项的实现方法
DE112013007734T5 (de) Mehrchipgehäuseverbindung
CN107122032A (zh) 终端、死机复位控制电路及方法
WO2014183557A1 (zh) 一种星敏感器在轨维护方法
CN104021104B (zh) 一种基于双总线结构的协同***及其通信方法
CN105282743A (zh) 一种无线路由器的状态控制方法及无线路由器
CN104572569A (zh) 基于arm和fpga的高性能计算节点及计算方法
CN105404538A (zh) 一种fpga的加载和升级目标代码的装置及方法
CN102541608A (zh) 一种星敏感器数据存储与注入模块和方法
CN103412770B (zh) 一种基于操作***支持的嵌入式***通用在线固化方法
US20210294772A1 (en) Systems, Apparatus And Methods For Rapid Peripheral Component Interconnect Express (PCIE) System Boot
CN104820655B (zh) 一种基于fpga的cpu热插拔实现方法及***
CN110389772B (zh) 双核mcu应用程序升级方法
WO2016033941A1 (zh) Boot在线升级装置及方法
CN110018791A (zh) 基于ssd soc的功耗管理控制方法和***
CN104699620B (zh) 一种加速芯片中断控制器验证的***及方法
CN104391718A (zh) 一种ePLC程序远程下载方法
CN101964709A (zh) 一种通过3g模组独立传输信息的usb key
CN104965743B (zh) 一种mmc子模块软件程序在线升级方法、***及mmc子模块
CN103259845B (zh) 基于网络中断的数据备份任务的改进方法
CN105138379A (zh) 一种基于Ymodem协议的在线升级方法
CN104133805A (zh) Atp车载设备中的数据同步方法与装置
RU2015132473A (ru) Способ, модули обработки и система для выполнения способного к исполнению кода
CN116700765A (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
C14 Grant of patent or utility model
GR01 Patent grant