System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及一种申威平台固件在线更新工具的构建方法,属于软件。
技术介绍
1、在x86平台,整机制造厂商如联想、惠普、戴尔等,均提供了专门的工具,使得用户能够在操作系统内便捷地管理固件更新。微软更进一步,将驱动更新程序整合进windowsupdate,使得符合要求的硬件设备能够无缝接收到最新的更新。而在linux环境下,lvfs(linux vendor firmware service)服务的推出,为不同硬件和linux发行版之间的固件更新流程提供了标准化解决方案。对于arm平台,fota(firmware over-the-air)技术得到了广泛应用,特别是在嵌入式和物联网设备领域,它允许设备远程接收并应用固件更新。谷歌等公司及众多物联网设备制造商为fota更新提供了坚实的基础设施支持。同时,在linux系统内,fwupd工具被用于后台管理固件更新,为各类设备提供了统一的固件更新接口。在sw平台,外接调试卡通过jtag接口实现固件更新,这种方式为精准更新存在bug的固件部位提供了可能。此外,它还支持远程更新,显著提升了调试的灵活性和效率。尤为重要的是,当固件内容受损导致操作系统无法正常启动时,外接调试卡可以作为恢复固件、防止设备变砖的重要手段。
2、尽管sw平台的外接调试卡通过jtag接口为固件更新提供了灵活性和恢复手段,但其现有技术仍存在诸多不足。首先,jtag接口的硬件实现相对复杂,其并行性和较多的控制线增加了软件工程师和运维人员的使用难度。此外,调试卡的配置过程也颇为繁琐,需要确保硬件线路稳定且连接正确,
技术实现思路
1、本专利技术的目的是提供一种申威平台固件在线更新工具的构建方法,通过操作spi控制寄存构建flash读工具和flash写工具,实现了flash存储芯片的读写功能,解决了传统固件更新复杂低效的问题,提高了更新效率并填补了申威平台的技术空白。
2、为解决上述技术问题,本专利技术是采用下述技术方案实现的。
3、本专利技术提供一种申威平台固件在线更新工具的构建方法,包括:
4、将以下操作封装为可执行二进制文件得到flash读工具:
5、将spi控制寄存器映射到内存并获取操作返回的内存指针间接配置相关的寄存器;
6、调用spi_flash_buffer_read接口完成以块为单位的读操作;
7、将以下操作封装为可执行二进制文件得到flash写工具:
8、将spi控制寄存器映射到内存并获取操作返回的内存指针间接配置相关的寄存器;
9、若待写入数据64k对齐时,调用spi_flash_block_erase接口对存储芯片flash上待写入数据的区域进行擦除,调用spi_flash_buffer_write接口写入数据;
10、若待写入数据不足64k或未按照64k对齐时,调用spi_flash_buffer_read接口将存储芯片flash中存储的64k内容读取到内存中,并将待写入的数据与已读取的内容合并,调用spi_flash_block_erase接口对存储芯片flash上待写入数据的进行擦除,调用spi_flash_buffer_write接口完成以块为单位的写操作;
11、将所述flash读工具和flash写工具封装在申威平台的应用层,得到申威平台固件在线更新工具,用于对硬件层的任意存储芯片flash的任意起始位置/任意大小进行读/写操作以在线更新申威平台固件。
12、进一步地,所述硬件层还包括内置spi控制寄存器的cpu和响应flash读工具/flash写工具的读/写请求的spi总线,通过所述spi总线与存储芯片flash进行通信。
13、进一步地,还包括,为所述申威平台固件在线更新工具封装更新脚本,用于接收用户的输入参数,作为用户和flash读工具以及flash写工具交互的接口。
14、进一步地,所述更新脚本,包括检测主板拓扑结构接口,用于分别对单路、双路以及四路机器进行不同的烧写流程,其中,单路机器只烧录硬件层第一个cpu的存储芯片flash,双路机器烧录硬件层前两个cpu的存储芯片flash,四路机器烧录硬件层前四个cpu的存储芯片flash。
15、进一步地,所述更新脚本,还包括检测固件规范标准接口,用于根据申威平台固件的幻数信息或cpu型号信息判断固件文件的更新的位置以及存储格式。
16、进一步地,所述更新脚本,还包括核对文件一致性接口,用于根据flash读工具读取的文件的md5值和源文件的md5值,核对文件是否与源文件一致;其中,若flash读工具读取的文件与源文件一致,返回0;若flash读工具读取的文件与源文件不一致返回-1,并输出提示信息,所述源文件为写入存储芯片flash时所配置过的文件。
17、进一步地,所述更新脚本,还包括带有校验功能的写操作接口,用于待写入文件的数据不足64k时,校验写入的文件是否正确,包括:
18、调用检测主板拓扑结构接口,根据主板拓扑结构将源文件写入与所述主板拓扑结构对应的存储芯片flash中;
19、使用flash读工具,根据主板拓扑结构将所述主板拓扑结构对应的存储芯片flash中所覆盖区域的内容再次读取并重定向到不同的临时文件中;
20、调用核对文件一致性接口,根据主板拓扑结构将源文件分别与各个临时文件是否与源文件一致,若一致,则返回0执行写操作;若不一致,则返回-1并输出提示信息。
21、进一步地,所述更新脚本,还包括回收资源接口,用于防止用户误操作导致的spi控制寄存器出现冲突或其他未知错误,其中,当获取到用户发出的sigint中断信号时,将正在运行的读写进程都终止,回收所占用的系统资源,并且输出提示信息。
22、进一步地,还包括,为所述申威平台固件在线更新工具配置并行操作工具,用于批量在线更新申威平台固件,包括将控制机与待更新的机器做免密操作,将更新固件包分发到待更新固件的机器上,并行执行更新。
23、进一步地,将控制机与待更新的机器做免密操作,将更新固件包分发到待更新固件的机器上,并行执行更新的方法,包括:
24、根据待更新的机器的ip范围以及用户名,循环生成一张机器ip列表,其中机器ip列表中的本文档来自技高网...
【技术保护点】
1.一种申威平台固件在线更新工具的构建方法,其特征在于,包括:
2.根据权利要求1所述的申威平台固件在线更新工具的构建方法,其特征在于,所述硬件层还包括内置SPI控制寄存器的CPU和响应flash读工具/flash写工具的读/写请求的SPI总线,通过所述SPI总线与存储芯片flash进行通信。
3.根据权利要求1所述的申威平台固件在线更新工具的构建方法,其特征在于,还包括,为所述申威平台固件在线更新工具封装更新脚本,用于接收用户的输入参数,作为用户和flash读工具以及flash写工具交互的接口。
4.根据权利要求3所述的申威平台固件在线更新工具的构建方法,其特征在于,所述更新脚本,包括检测主板拓扑结构接口,用于分别对单路、双路以及四路机器进行不同的烧写流程,其中,单路机器只烧录硬件层第一个CPU的存储芯片flash,双路机器烧录硬件层前两个CPU的存储芯片flash,四路机器烧录硬件层前四个CPU的存储芯片flash。
5.根据权利要求4所述的申威平台固件在线更新工具的构建方法,其特征在于,所述更新脚本,还包括检测固件规范标准接口
6.根据权利要求5所述的申威平台固件在线更新工具的构建方法,其特征在于,所述更新脚本,还包括核对文件一致性接口,用于根据flash读工具读取的文件的md5值和源文件的md5值,核对文件是否与源文件一致;其中,若flash读工具读取的文件与源文件一致,返回0;若flash读工具读取的文件与源文件不一致返回-1,并输出提示信息,所述源文件为写入存储芯片flash时所配置过的文件。
7.根据权利要求6所述的申威平台固件在线更新工具的构建方法,其特征在于,所述更新脚本,还包括带有校验功能的写操作接口,用于待写入文件的数据不足64K时,校验写入的文件是否正确,包括:
8.根据权利要求1所述的申威平台固件在线更新工具的构建方法,其特征在于,所述更新脚本,还包括回收资源接口,用于防止用户误操作导致的SPI控制寄存器出现冲突或其他未知错误,其中,当获取到用户发出的SIGINT中断信号时,将正在运行的读写进程都终止,回收所占用的系统资源,并且输出提示信息。
9.根据权利要求1所述的申威平台固件在线更新工具的构建方法,其特征在于,还包括,为所述申威平台固件在线更新工具配置并行操作工具,用于批量在线更新申威平台固件,包括将控制机与待更新的机器做免密操作,将更新固件包分发到待更新固件的机器上,并行执行更新。
10.根据权利要求9所述的申威平台固件在线更新工具的构建方法,其特征在于,将控制机与待更新的机器做免密操作,将更新固件包分发到待更新固件的机器上,并行执行更新的方法,包括:
...【技术特征摘要】
1.一种申威平台固件在线更新工具的构建方法,其特征在于,包括:
2.根据权利要求1所述的申威平台固件在线更新工具的构建方法,其特征在于,所述硬件层还包括内置spi控制寄存器的cpu和响应flash读工具/flash写工具的读/写请求的spi总线,通过所述spi总线与存储芯片flash进行通信。
3.根据权利要求1所述的申威平台固件在线更新工具的构建方法,其特征在于,还包括,为所述申威平台固件在线更新工具封装更新脚本,用于接收用户的输入参数,作为用户和flash读工具以及flash写工具交互的接口。
4.根据权利要求3所述的申威平台固件在线更新工具的构建方法,其特征在于,所述更新脚本,包括检测主板拓扑结构接口,用于分别对单路、双路以及四路机器进行不同的烧写流程,其中,单路机器只烧录硬件层第一个cpu的存储芯片flash,双路机器烧录硬件层前两个cpu的存储芯片flash,四路机器烧录硬件层前四个cpu的存储芯片flash。
5.根据权利要求4所述的申威平台固件在线更新工具的构建方法,其特征在于,所述更新脚本,还包括检测固件规范标准接口,用于根据申威平台固件的幻数信息或cpu型号信息判断固件文件的更新的位置以及存储格式。
6.根据权利要求5所述的申威平台固件在线更新工具的构建方法,其特征在于,所述更新脚本,还包括核对文件一致性接口,用...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。