CN113238790B - 基于sd卡和eeprom的固件程序更新方法及系统 - Google Patents

基于sd卡和eeprom的固件程序更新方法及系统 Download PDF

Info

Publication number
CN113238790B
CN113238790B CN202110592943.8A CN202110592943A CN113238790B CN 113238790 B CN113238790 B CN 113238790B CN 202110592943 A CN202110592943 A CN 202110592943A CN 113238790 B CN113238790 B CN 113238790B
Authority
CN
China
Prior art keywords
version information
firmware program
program
software version
card
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
CN202110592943.8A
Other languages
English (en)
Other versions
CN113238790A (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.)
Eoptolink Technology Inc ltd
EOPTOLINK TECHNOLOGY Inc
Original Assignee
Eoptolink Technology Inc ltd
EOPTOLINK TECHNOLOGY Inc
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 Eoptolink Technology Inc ltd, EOPTOLINK TECHNOLOGY Inc filed Critical Eoptolink Technology Inc ltd
Priority to CN202110592943.8A priority Critical patent/CN113238790B/zh
Publication of CN113238790A publication Critical patent/CN113238790A/zh
Application granted granted Critical
Publication of CN113238790B publication Critical patent/CN113238790B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • 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

Abstract

本发明提供一种基于SD卡和EEPROM的固件程序更新方法及系统,通过MCU与外部SD卡和EEPROM存储器等硬件设备配合存储嵌入式系统的硬件版本信息和待更新固件程序的软件版本信息,同时将系统的硬件版本信息和待更新固件程序的软件版本信息加入到待更新固件程序的内部数据中和固件程序的文件名中,保证了引导程序将正确软件版本的固件程序升级进入正确硬件版本的MCU;同时在引导程序升级固件程序过程中,利用标准的SHA256安全哈希算法对升级前固件程序文件所含内部数据、MCU内已更新的固件程序的所有数据,均进行了数据完整性认证检查,保证了引导程序将待更新固件程序文件的所有数据正确升级写入MCU内,提高了固件程序写入MCU的准确性。

Description

基于SD卡和EEPROM的固件程序更新方法及系统
技术领域
本发明涉及电子技术领域,具体而言,涉及一种基于SD卡和EEPROM的固件程序更新方法及系统。
背景技术
当前光通信嵌入式系统主要包括引导程序(Bootloader)和固件程序(Firmware),主要存储在MCU的Flash中。而引导程序(Bootloader)更新固件程序(Firmware)的方式,大部分利用编程器写入MCU的Flash中或者通过将Flash划分位为若干个不同的区域,存储相应的固件程序(Firmware)数据,运用自身MCU包含的引导程序,读取MCU内部Flash分区已存储的备份固件程序数据,更新运行的固件程序。在以上的更新方式中,进行固件程序更新升级时,大部分只简单将固件程序数据直接写入MCU的Flash中,未对实际写入的数据进行有效性检查,无法对当前硬件版本信息和软件版本信息进行验证。不能有效保证固件程序更新进入正确的硬件中,同时未对已写入MCU的Flash的固件程序数据进行检查,无法有效确保所有固件程序数据正确写入MCU。所以需要提供一种方案以提高固件程序写入MCU的准确性。
发明内容
本发明的目的在于提供一种基于SD卡和EEPROM的固件程序更新方法及系统,用以实现提高固件程序写入MCU的准确性的技术效果。
第一方面,本发明提供了一种基于SD卡和EEPROM的固件程序更新方法,包括S1.嵌入式系统的MCU启动运行引导程序并初始化加载SD卡和EEPROM存储器;其中所述SD卡用于存储更新固件程序的关联文件,所述EEPROM存储器用于存储系统硬件版本信息;
S2.分析从EEPROM存储器读取的第一系统硬件版本信息是否有效;若有效,则通过SHA256认证加密算法验证MCU内部已存储的待更新固件程序是否完整;
S3.若所述待更新固件程序完整,则读取所述待更新固件程序的第一软件版本信息,并根据所述第一软件版本信息分析SD卡内是否含有能够对所述待更新固件程序进行更新的完整的新版固件程序;若SD卡内含有能够对所述待更新固件程序进行更新的完整的新版固件程序,则将所述新版固件程序写入MCU后,执行S4;
S4.读取MCU中当前的固件程序的数字签名信息,运用SHA256认证加密算法验证当前的固件程序是否完整;
S5.若当前的固件程序完整,则启动MCU中当前的固件程序;否则,结束更新流程。
进一步地,所述S3包括:
S31.检测SD卡内是否存在所述第一软件版本信息的锁定文件;
S32.若SD卡内存在所述第一软件版本信息的锁定文件,则分析所述第一软件版本信息与所述锁定文件指定的第二软件版本信息是否相同;
S33.若所述第一软件版本信息与所述第二软件版本信息不相同,则检测SD卡内是否存在与所述第一系统硬件版本信息和所述第二软件版本信息均相同的第一程序文件;否则,继续执行S4;
S34.若SD卡内存在与所述第一系统硬件版本信息和所述第二软件版本信息均相同的第一程序文件,则分析所述第一程序文件所含的第三软件版本信息与所述第一软件版本信息是否相同;
S35.若所述第一程序文件所含的第三软件版本信息与所述第一软件版本信息相同,则将所述继续执行S4。
进一步地,所述S3还包括:
S36.若所述第一程序文件所含的第三软件版本信息与所述第一软件版本信息不相同,则解析所述第一程序文件的文件名所含的第二系统硬件版本信息和第三软件版本信息,分析所述第二系统硬件版本信息和第三软件版本信息是否与所述第一系统硬件版本信息和所述第一程序文件内部数据所含的第四软件版本信息相同;
S37.若所述第二系统硬件版本信息和第三软件版本信息与所述第一系统硬件版本信息和所述第一程序文件内部数据所含的第四软件版本信息相同,则从SD卡中获取所述第一程序文件内部所含的数字签名信息和所有数据值,利用SHA256认证加密算法验证所述第一程序文件是否完整;否则,则继续执行S4;
S38.若所述第一程序文件完整,则读取所述第一程序文件内部所含的所有数据,然后继续执行S4。
进一步地,所述方法还包括:
S6.若所述待更新固件程序不完整,则检测SD卡内是否存在与所述第一系统硬件版本信息相同、版本信息任意的第三程序文件;若SD卡内存在所述第三程序文件,则执行S36。
进一步地,S39.若SD卡内不存在所述第一软件版本信息的锁定文件,则检测SD卡内是否存在与所述第一系统硬件版本信息相同并且比所述第一软件版本信息更新的第二程序文件;若SD卡内存在所述第二程序文件,则执行S34。
进一步地,所述S1与S2之间还包括;
检测加载SD卡内的固件程序文件存储分区是否成功;
若加载SD卡内的固件程序文件存储分区成功,则检测是否能够成功读取EEPROM存储器所含的系统硬件版本信息;
若能够成功读取EEPROM存储器所含的系统硬件版本信息,则继续执行S2。
第二方面,本发明提供了一种基于SD卡和EEPROM的固件程序更新系统,包括:MCU、SD卡和EEPROM存储器;所述SD卡用于存储更新固件程序的关联文件,所述EEPROM存储器用于存储系统硬件版本信息;所述MCU用于启动运行引导程序并初始化加载SD卡和EEPROM存储器;分析从EEPROM存储器读取的第一系统硬件版本信息是否有效;若有效,则通过SHA256认证加密算法验证MCU内部已存储的待更新固件程序是否完整;若所述待更新固件程序完整,则读取所述待更新固件程序的第一软件版本信息,并根据所述第一软件版本信息分析SD卡内是否含有能够对所述待更新固件程序进行更新的完整的新版固件程序;若SD卡内含有能够对所述待更新固件程序进行更新的完整的新版固件程序,则将所述新版固件程序写入MCU后,读取MCU中当前的固件程序的数字签名信息,运用SHA256认证加密算法验证当前的固件程序是否完整;若当前的固件程序完整,则启动MCU中当前的固件程序;否则,结束更新流程。
本发明能够实现的有益效果是:本发明通过MCU与外部SD卡和EEPROM存储器等硬件设备配合存储嵌入式系统的硬件版本信息和待更新固件程序的软件版本信息,同时将系统的硬件版本信息和待更新固件程序的软件版本信息加入到待更新固件程序的内部数据中和固件程序的文件名中,保证了引导程序将正确软件版本的固件程序升级进入正确硬件版本的MCU;同时在引导程序升级固件程序过程中,利用标准的SHA256安全哈希算法对升级前固件程序文件所含内部数据、MCU内已更新的固件程序的所有数据,均进行了数据完整性认证检查,保证了引导程序将待更新固件程序文件的所有数据正确升级写入MCU内,提高了固件程序写入MCU的准确性。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本发明实施例提供的一种基于SD卡和EEPROM的固件程序更新方法的总体流程示意图;
图2为本发明实施例提供的一种基于SD卡和EEPROM的固件程序更新系统拓扑结构示意图。
图标:10-固件程序更新系统;100-MCU;200-SD卡;300-EEPROM存储器。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本发明的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
请参看图1,图1为本发明实施例提供的一种基于SD卡和EEPROM的固件程序更新方法的总体流程示意图。
在一种实施方式中,本发明实施例提供了一种基于SD卡和EEPROM的固件程序更新方法,其总体流程如下所述。
S1.嵌入式系统的MCU启动运行引导程序并初始化加载SD卡和EEPROM存储器;其中所述SD卡用于存储更新固件程序的关联文件,所述EEPROM存储器用于存储系统硬件版本信息。
S2.分析从EEPROM存储器读取的第一系统硬件版本信息是否有效;若有效,则通过SHA256认证加密算法验证MCU内部已存储的待更新固件程序是否完整。
具体地,可以分析当前从EEPROM存储器读取的系统硬件版本信息值是否为0,若值不为0,则该系统硬件版本信息是有效的;若值为0,则说明该信息是无效的。当该系统硬件版本信息有效时,可以读取MCU内部的Flash已存储的现有固件程序的数字签名信息值和所有数据值。利用SHA256认证加密算法计算得到当前MCU内部Flash已存储的所有数据值对应的数字签名信息。对比当前MCU内部Flash已存储的固件程序的数字签名信息是否与SHA256算法计算得到的数字签名信息相同,若两个数字签名信息相同,则说明当前MCU内部Flash已存储的现有固件程序数据是完整的;若两个数字签名信息不同,则说明当前MCU内部Flash已存储的现有固件程序数据已发生变动,并且是不完整的。
S3.若所述待更新固件程序完整,则读取所述待更新固件程序的第一软件版本信息,并根据所述第一软件版本信息分析SD卡内是否含有能够对所述待更新固件程序进行更新的完整的新版固件程序;若SD卡内含有能够对所述待更新固件程序进行更新的完整的新版固件程序,则将所述新版固件程序写入MCU后,执行S4。
在一种实施方式中,S3的执行过程可以按照以下步骤执行:
S31.检测SD卡内是否存在所述第一软件版本信息的锁定文件;
S32.若SD卡内存在所述第一软件版本信息的锁定文件,则分析所述第一软件版本信息与所述锁定文件指定的第二软件版本信息是否相同;
S33.若所述第一软件版本信息与所述第二软件版本信息不相同,则检测SD卡内是否存在与所述第一系统硬件版本信息和所述第二软件版本信息均相同的第一程序文件;否则,继续执行S4;
S34.若SD卡内存在与所述第一系统硬件版本信息和所述第二软件版本信息均相同的第一程序文件,则分析所述第一程序文件所含的第三软件版本信息与所述第一软件版本信息是否相同;
S35.若所述第一程序文件所含的第三软件版本信息与所述第一软件版本信息相同,则将所述继续执行S4。
当SD卡内不存在第一软件版本信息的锁定文件时,还可以按照以下步骤进行处理:
S36.若所述第一程序文件所含的第三软件版本信息与所述第一软件版本信息不相同,则解析所述第一程序文件的文件名所含的第二系统硬件版本信息和第三软件版本信息,分析所述第二系统硬件版本信息和第三软件版本信息是否与所述第一系统硬件版本信息和所述第一程序文件内部数据所含的第四软件版本信息相同。
S37.若所述第二系统硬件版本信息和第三软件版本信息与所述第一系统硬件版本信息和所述第一程序文件内部数据所含的第四软件版本信息相同,则从SD卡中获取所述第一程序文件内部所含的数字签名信息和所有数据值,利用SHA256认证加密算法验证所述第一程序文件是否完整;否则,则继续执行S4。
S38.若所述第一程序文件完整,则读取所述第一程序文件内部所含的所有数据,然后继续执行S4。
通过上述过程,可以在更新固件程序的过程中更好地校验SD卡中固件程序的完整性和准确性,从而提高固件程序写入前的准确性。
S4.读取MCU中当前的固件程序的数字签名信息,运用SHA256认证加密算法验证当前的固件程序是否完整。
具体地,MCU内部的固件程序更新后,读取MCU内部的Flash中更新的固件程序的数字签名信息值和所有数据值。利用SHA256认证加密算法计算得到MCU内部Flash存储的所有数据值对应的数字签名信息。对比MCU内部Flash已存储的固件程序的数字签名信息是否与SHA256算法计算得到的数字签名信息相同,若两个数字签名信息相同,则说明MCU内部Flash存储的更新后的固件程序数据是完整的;若两个数字签名信息不同,则说明当前MCU内部Flash存储的更新后的固件程序数据已发生变动,并且是不完整的。
在上述实现过程中,当更新程序写入MCU后,再次通过SHA256算法对更新的固件程序进行校验,充分保证了固件程序更新的准确性。
S5.若当前的固件程序完整,则启动MCU中当前的固件程序;否则,结束更新流程。
在一种实施方式中,上述方法还包括:若SD卡内不存在第一软件版本信息的锁定文件,则检测SD卡内是否存在与第一系统硬件版本信息相同并且比第一软件版本信息更新的第二程序文件;若SD卡内存在第二程序文件,则执行S34。通过上述方式,可以对MCU内部的固件程序进行有效的更新。
在一种实施方式中,S1与S2之间还包括;检测加载SD卡内的固件程序文件存储分区是否成功;若加载SD卡内的固件程序文件存储分区成功,则检测是否能够成功读取EEPROM存储器所含的系统硬件版本信息;若能够成功读取EEPROM存储器所含的系统硬件版本信息,则继续执行S2。
通过上述方式,可以保证各个硬件设备能够正常运行,以满足固件程序更新的需求。
在一种实施方式中,上述方法还包括:
S6.若所述待更新固件程序不完整,则检测SD卡内是否存在与所述第一系统硬件版本信息相同、版本信息任意的第三程序文件;若SD卡内存在所述第三程序文件,则执行S36。
通过上述方式,可以在MCU内部的程序存在异常,但SD卡中不存在更新程序时,保证MCU中的固件程序的完整性,保证MCU能够正常运行。
请参看图2,图2为本发明实施例提供的一种基于SD卡和EEPROM的固件程序更新系统拓扑结构示意图。
在一种实施方式中,本发明实施例还提供了一种基于SD卡和EEPROM的固件程序更新系统(10),包括MCU(100)、SD卡(200)和EEPROM存储器(300);SD卡(200)用于存储更新固件程序的关联文件,EEPROM存储器(300)用于存储系统硬件版本信息;MCU(100)用于启动运行引导程序并初始化加载SD卡(200)和EEPROM存储器(300);分析从EEPROM存储器(300)读取的第一系统硬件版本信息是否有效;若有效,则通过SHA256认证加密算法验证MCU(100)内部已存储的待更新固件程序是否完整;若待更新固件程序完整,则读取待更新固件程序的第一软件版本信息,并根据第一软件版本信息分析SD卡(200)内是否含有能够对待更新固件程序进行更新的完整的新版固件程序;若SD卡(200)内含有能够对待更新固件程序进行更新的完整的新版固件程序,则将新版固件程序写入MCU(100)后,读取MCU(100)中当前的固件程序的数字签名信息,运用SHA256认证加密算法验证当前的固件程序是否完整;若当前的固件程序完整,则启动MCU(100)中当前的固件程序;否则,结束更新流程。
综上所述,本发明实施例提供一种基于SD卡和EEPROM的固件程序更新方法及系统,通过MCU与外部SD卡和EEPROM存储器等硬件设备配合存储嵌入式系统的硬件版本信息和待更新固件程序的软件版本信息,同时将系统的硬件版本信息和待更新固件程序的软件版本信息加入到待更新固件程序的内部数据中和固件程序的文件名中,保证了引导程序将正确软件版本的固件程序升级进入正确硬件版本的MCU;同时在引导程序升级固件程序过程中,利用标准的SHA256安全哈希算法对升级前固件程序文件所含内部数据、MCU内已更新的固件程序的所有数据,均进行了数据完整性认证检查,保证了引导程序将待更新固件程序文件的所有数据正确升级写入MCU内,提高了固件程序写入MCU的准确性。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (5)

1.一种基于SD卡和EEPROM的固件程序更新方法,其特征在于,包括:
S1.嵌入式系统的MCU启动运行引导程序并初始化加载SD卡和EEPROM存储器;其中所述SD卡用于存储更新固件程序的关联文件,所述EEPROM存储器用于存储系统硬件版本信息;
S2.分析从EEPROM存储器读取的第一系统硬件版本信息是否有效;若有效,则通过SHA256认证加密算法验证MCU内部已存储的待更新固件程序是否完整;
S3.若所述待更新固件程序完整,则读取所述待更新固件程序的第一软件版本信息,并根据所述第一软件版本信息分析SD卡内是否含有能够对所述待更新固件程序进行更新的完整的新版固件程序;若SD卡内含有能够对所述待更新固件程序进行更新的完整的新版固件程序,则将所述新版固件程序写入MCU后,执行S4;具体的,S3包括:
S31.检测SD卡内是否存在所述第一软件版本信息的锁定文件;
S32.若SD卡内存在所述第一软件版本信息的锁定文件,则分析所述第一软件版本信息与所述锁定文件指定的第二软件版本信息是否相同;
S33.若所述第一软件版本信息与所述第二软件版本信息不相同,则检测SD卡内是否存在与所述第一系统硬件版本信息和所述第二软件版本信息均相同的第一程序文件;否则,继续执行S4;
S34.若SD卡内存在与所述第一系统硬件版本信息和所述第二软件版本信息均相同的第一程序文件,则分析所述第一程序文件所含的第三软件版本信息与所述第一软件版本信息是否相同;
S35.若所述第一程序文件所含的第三软件版本信息与所述第一软件版本信息相同,则将所述继续执行S4;
S36.若所述第一程序文件所含的第三软件版本信息与所述第一软件版本信息不相同,则解析所述第一程序文件的文件名所含的第二系统硬件版本信息和第三软件版本信息,分析所述第二系统硬件版本信息和第三软件版本信息是否与所述第一系统硬件版本信息和所述第一程序文件内部数据所含的第四软件版本信息相同;
S37.若所述第二系统硬件版本信息和第三软件版本信息与所述第一系统硬件版本信息和所述第一程序文件内部数据所含的第四软件版本信息相同,则从SD卡中获取所述第一程序文件内部所含的数字签名信息和所有数据值,利用SHA256认证加密算法验证所述第一程序文件是否完整;否则,则继续执行S4;
S38.若所述第一程序文件完整,则读取所述第一程序文件内部所含的所有数据,然后继续执行S4;
S4.读取MCU中当前的固件程序的数字签名信息,运用SHA256认证加密算法验证当前的固件程序是否完整;
S5.若当前的固件程序完整,则启动MCU中当前的固件程序;否则,结束更新流程。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
S6.若所述待更新固件程序不完整,则检测SD卡内是否存在与所述第一系统硬件版本信息相同、版本信息任意的第三程序文件;若SD卡内存在所述第三程序文件,则执行S36。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
S39.若SD卡内不存在所述第一软件版本信息的锁定文件,则检测SD卡内是否存在与所述第一系统硬件版本信息相同并且比所述第一软件版本信息更新的第二程序文件;若SD卡内存在所述第二程序文件,则执行S34。
4.根据权利要求1所述的方法,其特征在于,所述S1与S2之间还包括;
检测加载SD卡内的固件程序文件存储分区是否成功;
若加载SD卡内的固件程序文件存储分区成功,则检测是否能够成功读取EEPROM存储器所含的系统硬件版本信息;
若能够成功读取EEPROM存储器所含的系统硬件版本信息,则继续执行S2。
5.一种基于SD卡和EEPROM的固件程序更新系统,其特征在于,包括:MCU、SD卡和EEPROM存储器;所述SD卡用于存储更新固件程序的关联文件,所述EEPROM存储器用于存储系统硬件版本信息;
所述MCU用于启动运行引导程序并初始化加载SD卡和EEPROM存储器;分析从EEPROM存储器读取的第一系统硬件版本信息是否有效;若有效,则通过SHA256认证加密算法验证MCU内部已存储的待更新固件程序是否完整;若所述待更新固件程序完整,则读取所述待更新固件程序的第一软件版本信息,并根据所述第一软件版本信息分析SD卡内是否含有能够对所述待更新固件程序进行更新的完整的新版固件程序;若SD卡内含有能够对所述待更新固件程序进行更新的完整的新版固件程序,则将所述新版固件程序写入MCU;具体为:检测SD卡内是否存在所述第一软件版本信息的锁定文件;若SD卡内存在所述第一软件版本信息的锁定文件,则分析所述第一软件版本信息与所述锁定文件指定的第二软件版本信息是否相同;若所述第一软件版本信息与所述第二软件版本信息不相同,则检测SD卡内是否存在与所述第一系统硬件版本信息和所述第二软件版本信息均相同的第一程序文件;否则,读取MCU中当前的固件程序的数字签名信息,运用SHA256认证加密算法验证当前的固件程序是否完整;若SD卡内存在与所述第一系统硬件版本信息和所述第二软件版本信息均相同的第一程序文件,则分析所述第一程序文件所含的第三软件版本信息与所述第一软件版本信息是否相同;若所述第一程序文件所含的第三软件版本信息与所述第一软件版本信息相同,则读取MCU中当前的固件程序的数字签名信息,运用SHA256认证加密算法验证当前的固件程序是否完整;若所述第一程序文件所含的第三软件版本信息与所述第一软件版本信息不相同,则解析所述第一程序文件的文件名所含的第二系统硬件版本信息和第三软件版本信息,分析所述第二系统硬件版本信息和第三软件版本信息是否与所述第一系统硬件版本信息和所述第一程序文件内部数据所含的第四软件版本信息相同;若所述第二系统硬件版本信息和第三软件版本信息与所述第一系统硬件版本信息和所述第一程序文件内部数据所含的第四软件版本信息相同,则从SD卡中获取所述第一程序文件内部所含的数字签名信息和所有数据值,利用SHA256认证加密算法验证所述第一程序文件是否完整;否则,读取MCU中当前的固件程序的数字签名信息,运用SHA256认证加密算法验证当前的固件程序是否完整;若所述第一程序文件完整,则读取所述第一程序文件内部所含的所有数据,然后读取MCU中当前的固件程序的数字签名信息,运用SHA256认证加密算法验证当前的固件程序是否完整;若当前的固件程序完整,则启动MCU中当前的固件程序;否则,结束更新流程。
CN202110592943.8A 2021-05-28 2021-05-28 基于sd卡和eeprom的固件程序更新方法及系统 Active CN113238790B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110592943.8A CN113238790B (zh) 2021-05-28 2021-05-28 基于sd卡和eeprom的固件程序更新方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110592943.8A CN113238790B (zh) 2021-05-28 2021-05-28 基于sd卡和eeprom的固件程序更新方法及系统

Publications (2)

Publication Number Publication Date
CN113238790A CN113238790A (zh) 2021-08-10
CN113238790B true CN113238790B (zh) 2023-08-29

Family

ID=77135716

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110592943.8A Active CN113238790B (zh) 2021-05-28 2021-05-28 基于sd卡和eeprom的固件程序更新方法及系统

Country Status (1)

Country Link
CN (1) CN113238790B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113721953A (zh) * 2021-08-11 2021-11-30 西安诺瓦星云科技股份有限公司 固件程序升级方法、装置及显示控制设备
CN115906100A (zh) * 2022-11-29 2023-04-04 江苏云涌电子科技股份有限公司 一种确保微控制单元固件可信的系统及方法

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017186089A1 (zh) * 2016-04-25 2017-11-02 广州路派电子科技有限公司 一种车载解码器软件升级文件的方法
CN107608701A (zh) * 2017-10-20 2018-01-19 深圳市道通科技股份有限公司 一种升级固件的方法和装置
CN102981881B (zh) * 2012-12-10 2018-03-27 中兴通讯股份有限公司 一种防止移动终端升级到非法固件版本的方法及系统
US10007501B1 (en) * 2017-05-19 2018-06-26 Central South University Method of deploying applications rapidly based on customized android platform
CN108701039A (zh) * 2016-02-11 2018-10-23 现代自动车株式会社 用于无线更新车辆的软件的方法和设备
CN109002310A (zh) * 2018-08-07 2018-12-14 北京云迹科技有限公司 固件升级方法
CN109189434A (zh) * 2018-09-20 2019-01-11 安徽南瑞中天电力电子有限公司 一种电能表的在线升级方法
CN109189461A (zh) * 2018-11-27 2019-01-11 上海辛格林纳新时达电机有限公司 电梯控制系统的程序升级方法和电梯控制系统及电梯设备
CN111198701A (zh) * 2019-12-23 2020-05-26 宁波奥克斯电气股份有限公司 一种设备固件静默升级方法和升级系统
CN112817621A (zh) * 2021-01-22 2021-05-18 浪潮电子信息产业股份有限公司 一种bios固件刷新方法、装置及相关组件

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102981881B (zh) * 2012-12-10 2018-03-27 中兴通讯股份有限公司 一种防止移动终端升级到非法固件版本的方法及系统
CN108701039A (zh) * 2016-02-11 2018-10-23 现代自动车株式会社 用于无线更新车辆的软件的方法和设备
WO2017186089A1 (zh) * 2016-04-25 2017-11-02 广州路派电子科技有限公司 一种车载解码器软件升级文件的方法
US10007501B1 (en) * 2017-05-19 2018-06-26 Central South University Method of deploying applications rapidly based on customized android platform
CN107608701A (zh) * 2017-10-20 2018-01-19 深圳市道通科技股份有限公司 一种升级固件的方法和装置
CN109002310A (zh) * 2018-08-07 2018-12-14 北京云迹科技有限公司 固件升级方法
CN109189434A (zh) * 2018-09-20 2019-01-11 安徽南瑞中天电力电子有限公司 一种电能表的在线升级方法
CN109189461A (zh) * 2018-11-27 2019-01-11 上海辛格林纳新时达电机有限公司 电梯控制系统的程序升级方法和电梯控制系统及电梯设备
CN111198701A (zh) * 2019-12-23 2020-05-26 宁波奥克斯电气股份有限公司 一种设备固件静默升级方法和升级系统
CN112817621A (zh) * 2021-01-22 2021-05-18 浪潮电子信息产业股份有限公司 一种bios固件刷新方法、装置及相关组件

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
联想公司服务器技术支持升级包开发流程优化研究;张平;《中国优秀硕士学位论文全文数据库 信息科技辑》;I137-3 *

Also Published As

Publication number Publication date
CN113238790A (zh) 2021-08-10

Similar Documents

Publication Publication Date Title
US8423991B2 (en) Embedded network device and firmware upgrading method
CN108847950B (zh) 电子装置、云系统软件自动部署方法及存储介质
US20100058314A1 (en) Computer System and Related Method of Logging BIOS Update Operation
CN113238790B (zh) 基于sd卡和eeprom的固件程序更新方法及系统
US20190079746A1 (en) Software updating methods and systems
CN107783776B (zh) 固件升级包的处理方法及装置、电子设备
GB2466685A (en) Fault tolerant updating of firmware
CN101807152B (zh) 自我验证选择只读存储器的基本输出入系统及其验证方法
CN107678762B (zh) 一种系统版本升级方法及装置
US20200089507A1 (en) Low power embedded device using a write-once register to speed up the secure boot from sleep states of the device
US20100049961A1 (en) Update method for basic input/output system and update system thereof
CN106843947B (zh) 代码缺陷的处理方法和装置
US8788800B2 (en) OS processing method, system and non-transitory computer readable storage medium thereof
CN105677409A (zh) 一种系统升级方法及装置
US20060129520A1 (en) System and method for automatically updating a program in a computer
CN103455750B (zh) 一种嵌入式设备的高安验证方法及装置
CN114780019A (zh) 电子设备的管理方法、装置、电子设备及存储介质
CN112835601A (zh) 一种固件更新方法、装置、设备及存储介质
KR20180023575A (ko) 펌웨어 자동 업데이트 방법 및 이의 방법을 기록한 컴퓨터 판독 가능한 기록 매체
KR102598510B1 (ko) 소프트웨어의 무결성 검증 방법 및 그 장치
CN115951920A (zh) 移动设备升级方法、装置、存储单元和移动设备
CN111258617B (zh) 一种电子设备
CN112667444A (zh) 一种系统升级方法、存储介质及终端设备
US20210326125A1 (en) Installing application program code on a vehicle control system
CN112631621A (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