1.一种基于sd卡和eeprom的固件程序更新方法,其特征在于,包括:
s1.嵌入式系统的mcu启动运行引导程序并初始化加载sd卡和eeprom存储器;其中所述sd卡用于存储更新固件程序的关联文件,所述eeprom存储器用于存储系统硬件版本信息;
s2.分析从eeprom存储器读取的第一系统硬件版本信息是否有效;若有效,则通过sha256认证加密算法验证mcu内部已存储的待更新固件程序是否完整;
s3.若所述待更新固件程序完整,则读取所述待更新固件程序的第一软件版本信息,并根据所述第一软件版本信息分析sd卡内是否含有能够对所述待更新固件程序进行更新的完整的新版固件程序;若sd卡内含有能够对所述待更新固件程序进行更新的完整的新版固件程序,则将所述新版固件程序写入mcu后,执行s4;
s4.读取mcu中当前的固件程序的数字签名信息,运用sha256认证加密算法验证当前的固件程序是否完整;
s5.若当前的固件程序完整,则启动mcu中当前的固件程序;否则,结束更新流程。
2.根据权利要求1所述的方法,其特征在于,所述s3包括:
s31.检测sd卡内是否存在所述第一软件版本信息的锁定文件;
s32.若sd卡内存在所述第一软件版本信息的锁定文件,则分析所述第一软件版本信息与所述锁定文件指定的第二软件版本信息是否相同;
s33.若所述第一软件版本信息与所述第二软件版本信息不相同,则检测sd卡内是否存在与所述第一系统硬件版本信息和所述第二软件版本信息均相同的第一程序文件;否则,继续执行s4;
s34.若sd卡内存在与所述第一系统硬件版本信息和所述第二软件版本信息均相同的第一程序文件,则分析所述第一程序文件所含的第三软件版本信息与所述第一软件版本信息是否相同;
s35.若所述第一程序文件所含的第三软件版本信息与所述第一软件版本信息相同,则将所述继续执行s4。
3.根据权利要求2所述的方法,其特征在于,所述s3还包括:
s36.若所述第一程序文件所含的第三软件版本信息与所述第一软件版本信息不相同,则解析所述第一程序文件的文件名所含的第二系统硬件版本信息和第三软件版本信息,分析所述第二系统硬件版本信息和第三软件版本信息是否与所述第一系统硬件版本信息和所述第一程序文件内部数据所含的第四软件版本信息相同;
s37.若所述第二系统硬件版本信息和第三软件版本信息与所述第一系统硬件版本信息和所述第一程序文件内部数据所含的第四软件版本信息相同,则从sd卡中获取所述第一程序文件内部所含的数字签名信息和所有数据值,利用sha256认证加密算法验证所述第一程序文件是否完整;否则,则继续执行s4;
s38.若所述第一程序文件完整,则读取所述第一程序文件内部所含的所有数据,然后继续执行s4。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
s6.若所述待更新固件程序不完整,则检测sd卡内是否存在与所述第一系统硬件版本信息相同、版本信息任意的第三程序文件;若sd卡内存在所述第三程序文件,则执行s36。
5.根据权利要求2所述的方法,其特征在于,所述方法还包括:
s39.若sd卡内不存在所述第一软件版本信息的锁定文件,则检测sd卡内是否存在与所述第一系统硬件版本信息相同并且比所述第一软件版本信息更新的第二程序文件;若sd卡内存在所述第二程序文件,则执行s34。
6.根据权利要求1所述的方法,其特征在于,所述s1与s2之间还包括;
检测加载sd卡内的固件程序文件存储分区是否成功;
若加载sd卡内的固件程序文件存储分区成功,则检测是否能够成功读取eeprom存储器所含的系统硬件版本信息;
若能够成功读取eeprom存储器所含的系统硬件版本信息,则继续执行s2。
7.一种基于sd卡和eeprom的固件程序更新系统,其特征在于,包括:mcu、sd卡和eeprom存储器;所述sd卡用于存储更新固件程序的关联文件,所述eeprom存储器用于存储系统硬件版本信息;
所述mcu用于启动运行引导程序并初始化加载sd卡和eeprom存储器;分析从eeprom存储器读取的第一系统硬件版本信息是否有效;若有效,则通过sha256认证加密算法验证mcu内部已存储的待更新固件程序是否完整;若所述待更新固件程序完整,则读取所述待更新固件程序的第一软件版本信息,并根据所述第一软件版本信息分析sd卡内是否含有能够对所述待更新固件程序进行更新的完整的新版固件程序;若sd卡内含有能够对所述待更新固件程序进行更新的完整的新版固件程序,则将所述新版固件程序写入mcu后,读取mcu中当前的固件程序的数字签名信息,运用sha256认证加密算法验证当前的固件程序是否完整;若当前的固件程序完整,则启动mcu中当前的固件程序;否则,结束更新流程。