CN113867750A - 一种soc处理器软件在线升级方法 - Google Patents

一种soc处理器软件在线升级方法 Download PDF

Info

Publication number
CN113867750A
CN113867750A CN202110916621.4A CN202110916621A CN113867750A CN 113867750 A CN113867750 A CN 113867750A CN 202110916621 A CN202110916621 A CN 202110916621A CN 113867750 A CN113867750 A CN 113867750A
Authority
CN
China
Prior art keywords
area
program
flash
upgrading
software
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.)
Pending
Application number
CN202110916621.4A
Other languages
English (en)
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 Aerospace Changzheng Aircraft Institute
Original Assignee
Beijing Aerospace Changzheng Aircraft Institute
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 Aerospace Changzheng Aircraft Institute filed Critical Beijing Aerospace Changzheng Aircraft Institute
Priority to CN202110916621.4A priority Critical patent/CN113867750A/zh
Publication of CN113867750A publication Critical patent/CN113867750A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories

Abstract

本发明公开了一种SOC处理器软件在线升级方法,包括FLASH程序存储区划分,用于生成总的程序文件;上电加载运行软件流程,用于BOOT区程序运行及应用程序校验加载;在线升级及FLASH存储技术流程,用于校验和执行升级程序;处理器软件在线升级流程,用于SOC处理器软件在线升级。本发明不仅满足了软件升级高速运行的需求,同时,在系统无须拆卸、产品无须开盖的条件下,实现了SOC软件在线升级。

Description

一种SOC处理器软件在线升级方法
技术领域
本发明属于航天飞行器控制技术领域,具体涉及一种SOC处理器软件在线升级方法。
背景技术
决策处理软件是决策处理器的重要组成部分,运行在国产化SOC 处理器中。
当前国产化SOC软件升级过程,存在以下不足或问题:需要拆卸系统、产品开盖导致操作不便、软件升级成本过高、软件升级周期长,升级过程出现掉电等意外情况时无法再正常运行。
发明内容
针对上述问题,本发明提供了一种SOC处理器软件在线升级方法。
一种SOC处理器软件在线升级方法,具体由下列步骤组成:
步骤一,软件开发调试完毕后,生成应用程序bin文件,对该文件进行长度统计和CRC校验生成校验信息,其中,应用程序bin文件分别放入FLASH程序区A和程序区B,文件长度分别放在校验数据区A和B,CRC 校验信息放入校验数据区A;
步骤二,按照FLASH程序存储区的地址划分,将boot程序和应用程序的bin文件,利用合成工具生成总的程序bin文件,其中,boot.bin 文件放在BOOT程序区,应用程序bin文件分别放入FLASH程序区A和程序区B,文件长度分别放在校验数据区A和B,CRC校验信息放入校验数据区A;,其中,FLASH程序存储区的地址划分,从上到下依次为:BOOT 区、主程序A区、主程序B区、未使用区、校验数据区A、校验数据区 B,并且,BOOT程序、FLASH B区程序、FLASH A区程序与校验数据A和校验数据B各自使用不同的扇区,并且BOOT程序区、FLASH B区和校验数据B区永不擦除。
步骤三,通过FLASH烧写工具将总的程序bin文件烧写至FLASH 中。
步骤四,首先,上电工作,BOOT区程序自动运行并从校验存储区A 先读取FLASH A区程序有效标志、总长度和CRC校验码,进一步的,判断程序是否有效,如果程序有效,则根据程序总长度从FLASH A区读取程序数据并进行CRC校验;如果程序无效,则从校验区读取FLASH B区的程序数据长度,将FLASH B区程序加载到RAM区运行,
然后,判断CRC校验是否正确,如果正确,则将FLASH A区程序加载到 RAM区运行;如果CRC校验错误,则从校验存储区B读取FLASH B区的程序数据长度,将FLASH B区程序加载到RAM区运行。
步骤五,软件发生更改后,生成新的应用程序bin文件,对该文件进行长度统计和CRC校验生成校验信息;
步骤六,通过控制系统接口总线,将新的应用程序bin文件和数据长度、CRC校验信息发送给SOC软件;
步骤七,首先,主程序运行,并接收软件升级指令,从指令参数中获取升级程序的总长度和总CRC,
然后,接收缓存升级程序的数据帧,并对数据帧的总长度和总CRC 进行校验,如果校验成功,则擦除FLASH A区,并将升级程序数据写入 FLASH A区并回读比对;如果校验不成功,则不擦除FLASH A区程序和校验区数据A,向控制系统返回升级错误结果。
最后,将FLASH A区程序有效标志、程序总长度和总CRC写入校验数据区A,并向控制系统返回升级成功结果。
本发明提出了一种SOC处理器软件在线升级方法,与现有的技术相比,具有以下有益效果:
采用高速RAM运行+NOR FLASH存储+上电BOOT方式+在线升级的技术组合方案,不仅满足了升级软件高速运行的需求,并且,在系统无须拆卸、产品无须开盖条件下,实现了国产化SOC软件实时在线升级,以及,能够在中断、异常等情况出现后,实现系统上电后继续进行软件升级。
附图说明
图1为FLASH程序存储区划分图
图2为程序上电加载运行流程图
图3为程序在线升级FLASH存储流程图
具体实施方式
为了使本发明的目的、特征及优点能够更加的明显和易懂,下面通过实施例并结合附图对本技术方案进行详细说明。
步骤一,软件开发调试完毕后,生成应用程序bin文件,对该文件进行长度统计和CRC校验生成校验信息;
步骤二,按照FLASH程序存储区的地址划分,将boot程序和应用程序的bin文件,利用合成工具生成总的程序bin文件,,其中, boot.bin放在BOOT程序区,应用程序bin文件分别放入FLASH程序区A 和程序区B,文件长度分别放在校验数据区A和B,CRC校验信息放入校验数据区A;
如图1所示,FLASH程序存储区的地址划分,从上到下依次为:
BOOT区、主程序A区、主程序B区、未使用区、校验数据区A、校验数据区B,并且,BOOT程序、FLASH B区程序、FLASH A区程序与校验数据A和校验数据B各自使用不同的扇区,并且BOOT程序区、FLASH B 区和校验数据B区永不擦除。
步骤三,通过FLASH烧写工具将总的程序bin文件烧写至FLASH 中。
步骤四,首先,上电工作,BOOT区程序自动运行并从校验存储区A 先读取FLASH A区程序有效标志、总长度和CRC校验码,进一步的,进入判断逻辑。
如图2所示,判断逻辑具体为:
首先,判断程序是否有效,如果程序有效,则根据程序总长度从FLASH A 区读取程序数据并进行CRC校验;如果程序无效,则从校验区读取FLASH B区的程序数据长度,将FLASH B区程序加载到RAM区运行,然后,判断CRC校验是否正确,如果正确,则将FLASH A区程序加载到 RAM区运行;如果不正确,则从校验区读取FLASH B区的程序数据长度,将FLASHB区程序加载到RAM区运行。
步骤五,软件发生更改后,生成新的应用程序bin文件,对该文件进行长度统计和CRC校验生成校验信息;
步骤六,通过控制系统接口总线,将新的应用程序bin文件和数据长度、CRC校验信息发送给SOC软件;
步骤七,对SOC软件进行程序升级。
如图3所示,软件程序升级具体步骤为:
首先,主程序运行,并接收软件升级指令,从指令参数中获取升级程序的总长度和总CRC,
然后,接收缓存升级程序的数据帧,并对数据帧的总长度和总CRC 进行校验,如果校验成功,则擦除FLASH A区,并将升级程序数据写入 FLASH A区并回读比对;如果校验不成功,则不擦除FLASH A区程序和校验区数据A,向控制系统返回升级错误结果。
最后,将FLASH A区程序有效标志、程序总长度和总CRC写入校验数据区A,并向控制系统返回升级成功结果。
本实施例中,如果将升级程序数据写入FLASH A区后回读比对错误,则擦除校验数据区A,将FLASH A区程序有效标志置为无效,向控制系统返回升级错误结果。
本实施例中,如果升级过程中在擦除FLASH A区前出现掉电等意外情况,则不会擦除FLASH A区程序,重新上电后FLASH A区程序仍然可以正常运行,继续进行软件升级。
本实施例中,如果升级过程中在擦除FLASH A区后出现掉电等意外情况,则重新上电后能够识别FLASH A区错误并自动加载FLASH B区程序,继续进行软件升级。

Claims (9)

1.一种SOC处理器软件在线升级方法,其特征在于,由下列步骤组成:
步骤一,生成应用程序bin文件,对该文件进行长度统计和CRC校验生成校验信息;
步骤二,按照FLASH程序存储区的地址划分,将boot程序和应用程序的bin文件,利用合成工具生成总的程序bin文件,其中,boot.bin放在BOOT程序区,应用程序bin文件分别放入FLASH程序区A和程序区B,文件长度分别放在校验数据区A和B,CRC校验信息放入校验数据区A;
步骤三,通过FLASH烧写工具将总的程序bin文件烧写至FLASH中;
步骤四,加载以及运行软件;
步骤五,软件发生更改后,生成新的应用程序bin文件,对该文件进行长度统计和CRC校验生成校验信息;
步骤六,通过控制系统接口总线,将新的应用程序bin文件和数据长度、CRC校验信息发送给SOC软件;
步骤七,对SOC软件进行程序升级。
2.按照权利要求1所述的一种SOC处理器软件在线升级方法,其特征在于,所述按照FLASH程序存储区的地址划分,从上到下依次为:BOOT区、主程序A区、主程序B区、未使用区、校验数据区A、校验数据区B。
3.按照权利要求1所述的一种SOC处理器软件在线升级方法,其特征在于,所述按照FLASH程序存储区的地址划分,其特征在于,BOOT程序、FLASH B区程序、FLASH A区程序与校验数据A和校验数据B各自使用不同的扇区,并且BOOT程序区、FLASH B区和校验数据B区永不擦除。
4.按照权利要求1所述的一种SOC处理器软件在线升级方法,其特征在于,所述加载以及运行软件,具体过程如下:
首先,上电工作,BOOT区程序自动运行并从校验存储区A先读取FLASH A区程序有效标志、总长度和CRC校验码,进一步的,进入逻辑判断步骤。
5.按照权利要求3所述的一种SOC处理器软件在线升级方法,其特征在于,所述逻辑判断步骤,具体过程如下:
首先,判断程序是否有效,如果程序有效,则执行干支逻辑:根据程序总长度从FLASH A区读取程序数据并进行CRC校验;否则执行分支逻辑:从校验区读取FLASH B区的程序数据长度,将FLASH B区程序加载到RAM区运行,
然后,判断CRC校验是否正确,如果正确,则执行干支逻辑:将FLASH A区程序加载到RAM区运行;否则执行分支逻辑:从校验区读取FLASH B区的程序数据长度,将FLASH B区程序加载到RAM区运行。
6.按照权利要求1所述的一种SOC处理器软件在线升级方法,其特征在于,所述对SOC软件进行程序升级,包括干支逻辑和分支逻辑,干支逻辑具体过程如下:
首先,主程序运行,并接收软件升级指令,从指令参数中获取升级程序的总长度和总CRC,
然后,接收缓存升级程序的数据帧,并对数据帧的总长度和总CRC进行校验,校验成功后,擦除FLASH A区,将升级程序数据写入FLASH A区并回读比对,
最后,将FLASH A区程序有效标志、程序总长度和总CRC写入校验数据区A,并向控制系统返回升级成功结果;
干支逻辑具体过程如下:
升级过程中接收程序数据有误、接收超时、总数据包校验错误,则不擦除FLASH A区程序和校验区数据A,向控制系统返回升级错误结果。
7.按照权利要求1所述的一种SOC处理器软件在线升级方法,其特征在于,所述对SOC软件进行程序升级,如果将升级程序数据写入FLASH A区后回读比对错误,则擦除校验数据区A,将FLASH A区程序有效标志置为无效,向控制系统返回升级错误结果。
8.按照权利要求1所述的一种SOC处理器软件在线升级方法,其特征在于,所述对SOC软件进行程序升级,如果升级过程中在擦除FLASH A区前出现掉电等意外情况,则不会擦除FLASH A区程序,重新上电后FLASH A区程序仍然可以正常运行,继续进行软件升级。
9.按照权利要求1所述的一种SOC处理器软件在线升级方法,其特征在于,所述对SOC软件进行程序升级,如果升级过程中在擦除FLASH A区后出现掉电等意外情况,则重新上电后能够识别FLASH A区错误并自动加载FLASH B区程序,继续进行软件升级。
CN202110916621.4A 2021-08-11 2021-08-11 一种soc处理器软件在线升级方法 Pending CN113867750A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110916621.4A CN113867750A (zh) 2021-08-11 2021-08-11 一种soc处理器软件在线升级方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110916621.4A CN113867750A (zh) 2021-08-11 2021-08-11 一种soc处理器软件在线升级方法

Publications (1)

Publication Number Publication Date
CN113867750A true CN113867750A (zh) 2021-12-31

Family

ID=78990334

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110916621.4A Pending CN113867750A (zh) 2021-08-11 2021-08-11 一种soc处理器软件在线升级方法

Country Status (1)

Country Link
CN (1) CN113867750A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114924778A (zh) * 2022-04-01 2022-08-19 北京遥测技术研究所 一种基于zynq冗余备份的程序升级方法
CN114968317A (zh) * 2022-04-01 2022-08-30 北京遥测技术研究所 一种基于zynq防呆设计的程序升级方法
CN114968317B (zh) * 2022-04-01 2024-04-26 北京遥测技术研究所 一种基于zynq防呆设计的程序升级方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114924778A (zh) * 2022-04-01 2022-08-19 北京遥测技术研究所 一种基于zynq冗余备份的程序升级方法
CN114968317A (zh) * 2022-04-01 2022-08-30 北京遥测技术研究所 一种基于zynq防呆设计的程序升级方法
CN114968317B (zh) * 2022-04-01 2024-04-26 北京遥测技术研究所 一种基于zynq防呆设计的程序升级方法
CN114924778B (zh) * 2022-04-01 2024-04-26 北京遥测技术研究所 一种基于zynq冗余备份的程序升级方法

Similar Documents

Publication Publication Date Title
CN106095620B (zh) 一种嵌入式Linux存储分区的开发方法
US7321951B2 (en) Method for testing flash memory power loss recovery
CN106598654A (zh) 一种在线更新PowerPC主板引导芯片的方法
CN106547574A (zh) 一种dsp程序和fpga程序的外部下载系统及方法
CN1971536A (zh) 基本输入输出系统的纠错系统及方法
EP1701358B1 (en) Data write-in method for flash memory
CN102043725B (zh) 用于闪存的数据写入方法及其控制器与储存系统
CN106649137B (zh) 一种Nand Flash坏块管理方法、装置及存储器
CN110473585B (zh) 一种擦失效存储单元的替换方法、装置、设备及存储介质
CN113960391A (zh) 存储介质异常掉电测试装置及方法
CN113421606A (zh) flash检测方法及其检测系统
CN110473586B (zh) 一种写失效存储单元的替换方法、装置、设备及存储介质
CN113867750A (zh) 一种soc处理器软件在线升级方法
CN112835601A (zh) 一种固件更新方法、装置、设备及存储介质
CN113836600B (zh) 一种Embedded Flash误写保护方法
CN111158660B (zh) 一种多模式星载软件eeprom在轨编程方法
CN113094107A (zh) 数据保护方法、装置、设备及计算机存储介质
CN110119284B (zh) Flash存储器烧写系统及方法
CN112052112A (zh) 基于NOR Flash存储的位翻转错误检测方法、装置及存储介质
CN114995863B (zh) 一种软件重编程系统、基于重编程系统的软件重编程方法
CN111949426A (zh) 一种固件程序错误的检测方法、装置及存储设备
CN116594804A (zh) 一种edac码读写优化方法、系统、设备及存储介质
CN110910939B (zh) 存储单元的阈值调整方法、装置、存储设备和存储介质
CN101615420B (zh) 具数据修正功能的闪存储存装置
CN111475179B (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