System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术属于远程固件升级,具体为一种基于zynq mpsoc的可靠远程固件升级方法。
技术介绍
1、在目前的zynq mpsoc(多处理器系统芯片)嵌入式系统中,常常使用对应的下载器(如jtag)进行开发和烧写。开发完成后,会生成相应的固件,并通过jtag和特定的烧录程序将固件烧写到zynq设备中的flash芯片中。然而,由于zynq通常被封装在产品结构件中,作为数字信号处理设备使用,如果仍然采用jtag方式对产品进行升级,则需要拆除产品结构件,这不仅非常不方便且缺乏灵活性,而且给后期的维护带来很大困难。因此,迫切需要一种远程固件升级的解决方案。
2、然而,在远程固件升级过程中,可能会出现异常情况导致固件数据丢失,从而导致远程升级失败,使得产品无法正常启动。为了解决这个问题,需要设计一个回退机制,以保证产品在固件升级失败的情况下,能够利用回退功能从备份分区启动芯片。回退机制的设计思路是,在固件升级过程中,首先将当前运行的固件备份到另一个分区中。然后,将新的固件进行烧写和更新。如果固件升级成功,系统可以正常启动并使用新的固件。但如果在升级过程中发生异常导致失败,系统可以自动切换到备份分区,并重新启动芯片,以确保系统的可靠性和稳定性。
3、通过这样的回退机制,即使在远程固件升级过程中出现问题,也能够保证设备的正常运行。当需要修复或重新尝试升级时,可以通过远程方式重新触发固件升级流程,从而实现灵活、方便的远程固件升级。
技术实现思路
1、本专利技术提出了一种基于
2、实现本专利技术目的的技术方案为:一种基于zynq mpsoc的可靠远程固件升级方法,包括:
3、步骤1:将zynq mpsoc嵌入式系统的存储介质分为主分区、备份分区、日志分区,并对zynq mpsoc嵌入式系统初始化外设及时钟;
4、步骤2:zynq mpsoc嵌入式系统通过tftp协议与服务器进行握手,建立通信;
5、步骤3:zynq mpsoc嵌入式系统在接收到服务器发出的升级固件指令后,中断当前任务并回复服务器已准备升级;
6、步骤4:服务器收到zynq发出的准备完成信号后,将升级固件按照事先约定的通信协议发送给客户端;
7、步骤5:zynq根据相应通信协议解析服务器传来的数据得到升级固件后,计算接收到的固件数据的循环冗余校验码;
8、步骤6:将计算得到的循环冗余校验码与通信协议中的循环冗余校验码对比,若校验码一致,则代表接收到的升级固件数据的正确且完整;若校验码不一致,则回复服务器固件数据错误,服务器将重新发出升级固件指令,即跳转到步骤3;。
9、步骤7:将接收到的升级固件数据通过flash控制器烧写到flash芯片的主分区中,并将日志分区中的升级标志位置位;
10、步骤8:烧录完成后,zynq通过看门狗实现嵌入式系统的软复位,重启系统进入zynq芯片固化的引导程序;加载第一阶段引导加载程序;
11、步骤9:第一阶段引导加载程序根据日志分区中的标志位,引导启动主分区并将日志分区中的首次启动标志位置位;若主分区启动失败,则由第一阶段引导加载程序重新引导备份分区启动,跳转到步骤1,重新升级zynq嵌入式系统;若主分区成功启动,则代表升级完成。
12、优选地,主分区用于存放正常工作的固件数据,并且主分区始终为远程升级的目的分区;备份分区用于存放安全模式的固件数据,此固件数据能够实现远程升级的基本功能,并且备份分区的固件数据处于写保护状态,确保其中的固件数据不被改变;日志分区中存放升级和启动时的标志位信息,第一阶段引导加载程序fsbl会根据其中的标志位信息选择相应的分区启动。
13、优选地,所述固件数据由boot header、partition header、fsbl image、xxx.bit、u-boot.elf和xxx.elf构成。
14、优选地,zynq mpsoc嵌入式系统通过tftp协议与服务器进行握手时zynq嵌入式系统作为tftp的客户端。
15、优选地,所述通信协议数据由起始位、数据长度、固件版本号、固件数据、循环冗余校验码、结束位组成。
16、优选地,步骤7中将接收到的升级固件数据通过flash控制器烧写到flash芯片的主分区中,并将日志分区中的升级标志位置位的具体步骤为:
17、步骤7.1:读取flash芯片id,并根据flash芯片id号读取相应的闪存页大小;
18、步骤7.2:向flash芯片中日志分区写入升级标志位,并将升级标志位置1;
19、步骤7.3:擦除flash芯片中主分区的主固件数据;
20、步骤7.4:根据闪存页大小将升级固件数据划分成若干份,并依次烧写到flash芯片的主分区中;
21、步骤7.5:从flash芯片中读取主分区中写入的固件数据,与通信协议解析出的固件数据比对,若一致,则写入固件数据的正确;若不一致,则跳转到步骤7.3。
22、优选地,第一阶段引导加载程序fsbl根据日志分区的标志位信息选择相应的分区启动,具体包括如下步骤:
23、步骤9.1:在首次引导程序加载完成后,将第一阶段引导加载程序的程序加载到片内ram中;
24、步骤9.2:第一阶段引导加载程序读取日志分区中的启动标志位;
25、步骤9.3:根据标志位信息,第一阶段引导加载程序设置multiboot寄存器的值;
26、步骤9.4:根据multiboot寄存器的值,跳转到flash对应地址加载比特流文件和可执行文件。
27、本专利技术与现有技术相比,其显著优点为:本专利技术采用外部通信接口(如以太网口)实现对产品固件的远程升级,避免了使用下载器进行固件烧写的复杂步骤,大大提高了升级的便捷性和效率;针对一般远程固件升级过程中可能出现的固件数据错误或丢失等问题,本专利技术还采取了一种多分区启动的方案。通过在系统中设置备份分区,当升级过程中出现问题时,系统可以重新启动到备份分区,并重新进行固件升级,从而保证整个升级过程的可靠性和安全性。
28、下面结合附图对本专利技术做进一步详细的描述。
本文档来自技高网...【技术保护点】
1.一种基于ZYNQ MPSoC的可靠远程固件升级方法,其特征在于,包括:
2.根据权利要求1所述的基于ZYNQ MPSoC的可靠远程固件升级方法,其特征在于,主分区用于存放正常工作的固件数据,并且主分区始终为远程升级的目的分区;备份分区用于存放安全模式的固件数据,此固件数据能够实现远程升级的基本功能,并且备份分区的固件数据处于写保护状态,确保其中的固件数据不被改变;日志分区中存放升级和启动时的标志位信息,第一阶段引导加载程序FSBL会根据其中的标志位信息选择相应的分区启动。
3.根据权利要求2所述的基于ZYNQ MPSoC的可靠远程固件升级方法,其特征在于,所述固件数据由Boot Header、Partition Header、FSBL Image、xxx.bit、u-boot.elf和xxx.elf构成。
4.根据权利要求1所述的基于ZYNQ MPSoC的可靠远程固件升级方法,其特征在于,ZYNQMPSoC嵌入式系统通过TFTP协议与服务器进行握手时ZYNQ嵌入式系统作为TFTP的客户端。
5.根据权利要求1所述的基于ZYNQ
6.根据权利要求1所述的基于ZYNQ MPSoC的可靠远程固件升级方法,其特征在于,步骤7中将接收到的升级固件数据通过FLASH控制器烧写到FLASH芯片的主分区中,并将日志分区中的升级标志位置位的具体步骤为:
7.根据权利要求1所述的基于ZYNQ MPSoC的可靠远程固件升级方法,其特征在于,第一阶段引导加载程序FSBL根据日志分区的标志位信息选择相应的分区启动,具体包括如下步骤:
...【技术特征摘要】
1.一种基于zynq mpsoc的可靠远程固件升级方法,其特征在于,包括:
2.根据权利要求1所述的基于zynq mpsoc的可靠远程固件升级方法,其特征在于,主分区用于存放正常工作的固件数据,并且主分区始终为远程升级的目的分区;备份分区用于存放安全模式的固件数据,此固件数据能够实现远程升级的基本功能,并且备份分区的固件数据处于写保护状态,确保其中的固件数据不被改变;日志分区中存放升级和启动时的标志位信息,第一阶段引导加载程序fsbl会根据其中的标志位信息选择相应的分区启动。
3.根据权利要求2所述的基于zynq mpsoc的可靠远程固件升级方法,其特征在于,所述固件数据由boot header、partition header、fsbl image、xxx.bit、u-boot.elf和xxx.elf构成。
4.根据权利要...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。