一种嵌入式系统固件烧写的进度计算方法及系统技术方案

技术编号:25086655 阅读:32 留言:0更新日期:2020-07-31 23:30
本申请公开了一种嵌入式系统固件烧写的进度计算方法,包括如下步骤。步骤S10:PC机连接目标板卡。步骤S20:PC机计算目标板卡在固件烧写过程中需要处理的数据总量,并在生成固件文件包时写入其中。步骤S30:PC机向目标板卡通知所述需要处理的数据总量。步骤S40:目标板卡接收所述需要处理的数据总量并保存在本地。步骤S50:PC机向目标板卡发送下载命令与下载数据。步骤S60:目标板卡把下载数据写入本地;每擦除本地的一个存储单元,或者每在本地写入一个数据块,都计算已经处理的数据量,并将已经处理的数据量与需要处理的数据总量的比值上报给PC机。步骤S70:PC机接收并显示目标板卡发送的固件烧写的进度量。上述方法能够精确地反映固件烧写的量产进度。

【技术实现步骤摘要】
一种嵌入式系统固件烧写的进度计算方法及系统
本申请涉及一种嵌入式系统的固件烧写方法,特别是涉及一种嵌入式系统在固件烧写过程中计算固件烧写进度的方法。
技术介绍
嵌入式系统(embeddedsystem)是一种包含有处理器、存储器、输入和/或输出外围设备的计算机系统,用于在一个较大的机械和/或电气系统中执行专用功能。嵌入式系统的存储器中保存有控制程序。嵌入式系统在批量生产时,需要将固件(firmware)作为操作系统目标代码烧写到NANDFlash(与非门闪存)、NORFlash(或非门闪存)、eMMC(embeddedMultiMediaCard,嵌入式多媒体卡)等存储器中。固件是固化在存储介质的程序,决定了嵌入式系统的功能和性能。通常固件写入到嵌入式系统后无法被用户直接读出或者修改,如果在烧写过程中数据传输出现异常,就会导致产品无法正常启动,所以烧写的固件要保证安全可靠。目前可以量产的固件烧写方式有FLASH烧录器、SD卡方式和USB方式等。FLASH烧录器和SD卡烧写方式无法跟踪量产进度信息。USB烧写方式可以实时显示量产进度,并且可以同时量产多个产品设备,现有的嵌入式系统普遍采用USB方式进行固件数据的量产烧写。现有的量产进度计算方式是按阶段初略估算的,不能精确跟踪具体的量产状态,为方便产线工人精确地跟踪量产进度状态,需要一种精确计算固件烧写进度的方法。
技术实现思路
本申请所要解决的技术问题是提供一种嵌入式系统在固件烧写过程中精确计算固件烧写进度的方法,从而能够更方便地跟踪固件烧写的量产进度状态。为解决上述技术问题,本申请提出了一种嵌入式系统固件烧写的进度计算方法,包括如下步骤。步骤S10:PC机通过串行通信接口连接到某个嵌入式系统的目标板卡的串行通信接口。步骤S20:PC机计算所述目标板卡在固件烧写过程中需要处理的数据总量,并在生成的所述目标板卡的固件文件包时将所述需要处理的数据总量写入其中。步骤S30:PC机向所述目标板卡通知所述需要处理的数据总量。步骤S40:所述目标板卡接收所述需要处理的数据总量,并保存在本地。步骤S50:PC机向所述目标板卡发送下载命令与下载数据;所述下载命令包括擦除分区的指令、写入分区的指令;所述下载数据包括所述目标板卡的固件文件包中的镜像文件。步骤S60:所述目标板卡接收并处理所述下载命令和下载数据,并把所述下载数据写入本地的非易失性存储器中;在写入过程中,当所述目标板卡每擦除本地的非易失性存储器的一个单元,或者每在本地的非易失性存储器中写入一个数据块,都计算已经处理的数据量,并将已经处理的数据量与所述需要处理的数据总量的比值作为固件烧写的进度量上报给PC机。步骤S70:PC机接收并显示所述目标板卡发送的固件烧写的进度量。上述方法能够精确地反映固件烧写的量产进度。进一步地,所述步骤S10中,所述串行通信接口是USB接口。这是一种优选示例。进一步地,所述步骤S20中,所述目标板卡的固件文件包中包括多个固件文件的镜像文件,还包括配置文件;PC机依次处理所述目标板卡的每一个固件文件的镜像文件,处理完最后一个固件文件的镜像文件后将计算出的需要处理的数据总量记录在生成的固件文件包的配置文件中。所述步骤S30中,PC机向所述目标板卡发送所述配置文件,以告知所述需要处理的数据总量。所述步骤S40中,所述目标板卡接收所述配置文件,以获取所述需要处理的数据总量并保存在本地。这是在固件文件包中记录需要处理的数据总量的一种优选实现方式。进一步地,所述步骤S20中,PC机生成所述目标板卡的固件文件包时,对每一个固件文件的镜像文件按照存储单元对齐,并预设目标存储单元数量P;预设的目标存储单元数量P大于该镜像文件的实际大小所占用的存储单元数量,多出的存储单元为了实现I/O的负载均衡。所述步骤S50中,PC机向所述目标板卡发送下载命令时,实际写入该镜像文件的存储单元对应于写入分区的指令,实际不写入该镜像文件而是多出的存储单元对应于擦除分区的指令。这是对固件文件的镜像文件所对应的指令的详细说明。进一步地,所述步骤S20中,根据每一个固件文件的镜像文件预设的存储单元对应的指令,采用不同的计算方式来计算需要处理的数据总量。当某个镜像文件的某个存储单元对应于擦除分区的指令,计算需要处理的数据总量时仅叠加该分区的擦除字节数。当某个镜像文件的某个存储单元对应于写入分区的指令,计算需要处理的数据总量时叠加该分区的擦除字节数以及该镜像文件在该分区的写入字节数。这是对如何计算需要处理的数据总量的详细说明。进一步地,所述步骤S50中,所述擦除分区的指令是Erase命令,Erase命令传入的参数是分区名称;在执行Erase命令时,按Erase命令的参数提供的分区名称去擦除整个分区。这是对擦除分区的指令的详细说明。进一步地,所述步骤S50中,所述写入分区的指令是flash命令,flash命令传入的参数是分区名称;在执行flash命令之前,先下载镜像文件的数据到缓存区,然后按flash命令的参数提供的分区名称去擦除整个分区或部分分区,再从缓存区把数据写入已擦除的整个分区或部分分区中。这是对写入分区的指令的详细说明。进一步地,所述步骤S50中,在执行flash命令时,会分析flash命令的参数提供的分区名称的分区类型,分区类型包括RAW和UBI两种,对应于RAW和UBI两种镜像文件的格式。RAW类型的分区是先按扇区或块擦除,再按页写数据;RAW格式的镜像文件连续地写数据。UBI类型的分区是一次性擦除整个分区,再按物理擦除块写数据;UBI格式的镜像文件或者连续、或者非连续地写数据。这是对两种分区类型及其对应的两种镜像文件的格式的详细说明。进一步地,所述步骤S60中,如果下载数据是RAW格式的镜像文件,写入操作按照如下方式执行;目标板卡从PC机下载RAW格式的镜像文件,写入所述目标板卡的非易失性存储器的RAW格式的分区;目标板卡按扇区擦除RAW分区,每擦除一个扇区就重新计算固件烧写的进度量并上报给PC机;然后目标板卡在已擦除的扇区中按页写入数据,每写入一页数据重新计算一次固件烧写的进度量并上报给PC机,直至写满了该已擦除的扇区;目标板卡再擦除一个新的扇区,接着向新的已擦除的扇区中写入数据,如此循环直到完成整个RAW格式的镜像文件的写操作。这是对RAW格式的镜像文件写入RAW格式的分区的详细说明。进一步地,所述步骤S60中,如果下载数据是UBI格式的镜像文件,写入操作按照如下方式执行;目标板卡从PC机下载UBI格式的镜像文件,写入所述目标板卡的非易失性存储器的UBI格式的分区;目标板卡首先擦除整个UBI分区,每擦除一个扇区就重新计算一次固件烧写的进度量并上报给PC机;擦除完整个UBI分区后,目标板卡开始按物理擦除块写入UBI格式的镜像文件的数据;目标板卡在该UBI分区中每写入一个物理擦除块的数据,重新计算一次固件烧写的进度量并上报给PC机,直至完成整个UBI格式的镜像文件的写操作。这是对UBI格式的镜像文件写入UBI格式的分区的详细说明。进一步地,所述本文档来自技高网...

【技术保护点】
1.一种嵌入式系统固件烧写的进度计算方法,其特征是,包括如下步骤;/n步骤S10:PC机通过串行通信接口连接到某个嵌入式系统的目标板卡的串行通信接口;/n步骤S20:PC机计算所述目标板卡在固件烧写过程中需要处理的数据总量,并在生成的所述目标板卡的固件文件包时将所述需要处理的数据总量写入其中;/n步骤S30:PC机向所述目标板卡通知所述需要处理的数据总量;/n步骤S40:所述目标板卡接收所述需要处理的数据总量,并保存在本地;/n步骤S50:PC机向所述目标板卡发送下载命令与下载数据;所述下载命令包括擦除分区的指令、写入分区的指令;所述下载数据包括所述目标板卡的固件文件包中的镜像文件;/n步骤S60:所述目标板卡接收并处理所述下载命令和下载数据,并把所述下载数据写入本地的非易失性存储器中;在写入过程中,当所述目标板卡每擦除本地的非易失性存储器的一个单元,或者每在本地的非易失性存储器中写入一个数据块,都计算已经处理的数据量,并将已经处理的数据量与所述需要处理的数据总量的比值作为固件烧写的进度量上报给PC机;/n步骤S70:PC机接收并显示所述目标板卡发送的固件烧写的进度量。/n

【技术特征摘要】
1.一种嵌入式系统固件烧写的进度计算方法,其特征是,包括如下步骤;
步骤S10:PC机通过串行通信接口连接到某个嵌入式系统的目标板卡的串行通信接口;
步骤S20:PC机计算所述目标板卡在固件烧写过程中需要处理的数据总量,并在生成的所述目标板卡的固件文件包时将所述需要处理的数据总量写入其中;
步骤S30:PC机向所述目标板卡通知所述需要处理的数据总量;
步骤S40:所述目标板卡接收所述需要处理的数据总量,并保存在本地;
步骤S50:PC机向所述目标板卡发送下载命令与下载数据;所述下载命令包括擦除分区的指令、写入分区的指令;所述下载数据包括所述目标板卡的固件文件包中的镜像文件;
步骤S60:所述目标板卡接收并处理所述下载命令和下载数据,并把所述下载数据写入本地的非易失性存储器中;在写入过程中,当所述目标板卡每擦除本地的非易失性存储器的一个单元,或者每在本地的非易失性存储器中写入一个数据块,都计算已经处理的数据量,并将已经处理的数据量与所述需要处理的数据总量的比值作为固件烧写的进度量上报给PC机;
步骤S70:PC机接收并显示所述目标板卡发送的固件烧写的进度量。


2.根据权利要求1所述的嵌入式系统固件烧写的进度计算方法,其特征是,所述步骤S10中,所述串行通信接口是USB接口。


3.根据权利要求1所述的嵌入式系统固件烧写的进度计算方法,其特征是,所述步骤S20中,所述目标板卡的固件文件包中包括多个固件文件的镜像文件,还包括配置文件;PC机依次处理所述目标板卡的每一个固件文件的镜像文件,处理完最后一个固件文件的镜像文件后将计算出的需要处理的数据总量记录在生成的固件文件包的配置文件中;
所述步骤S30中,PC机向所述目标板卡发送所述配置文件,以告知所述需要处理的数据总量;
所述步骤S40中,所述目标板卡接收所述配置文件,以获取所述需要处理的数据总量并保存在本地。


4.根据权利要求3所述的嵌入式系统固件烧写的进度计算方法,其特征是,所述步骤S20中,PC机生成所述目标板卡的固件文件包时,对每一个固件文件的镜像文件按照存储单元对齐,并预设目标存储单元数量P;预设的目标存储单元数量P大于该镜像文件的实际大小所占用的存储单元数量,多出的存储单元为了实现I/O的负载均衡;
所述步骤S50中,PC机向所述目标板卡发送下载命令时,实际写入该镜像文件的存储单元对应于写入分区的指令,实际不写入该镜像文件而是多出的存储单元对应于擦除分区的指令。


5.根据权利要求3所述的嵌入式系统固件烧写的进度计算方法,其特征是,所述步骤S20中,根据每一个固件文件的镜像文件预设的存储单元对应的指令,采用不同的计算方式来计算需要处理的数据总量;
当某个镜像文件的某个存储单元对应于擦除分区的指令,计算需要处理的数据总量时仅叠加该分区的擦除字节数;
当某个镜像文件的某个存储单元对应于写入分区的指令,计算需要处理的数据总量时叠加该分区的擦除字节数以及该镜像文件在该分区的写入字节数。


6.根据权利要求1所述的嵌入式系统固件烧写的进度计算方法,其特征是,所述步骤S50中,所述擦除分区的指令是Erase命令,Erase命令传入的参数是分区名称;在执行Erase命令时,按Erase命令的参数提供的分区名称去擦除整个分区。


7.根据权利要求1所述的嵌入式系统固件烧写的进度计算方法,其特征是,所述步骤S50中,所述写入分区的指令是flash命令,flash命令传入的参数是分区名称;在执行flash命令之前,先下载镜...

【专利技术属性】
技术研发人员:胡文黄金华于嘉
申请(专利权)人:翱捷科技上海有限公司
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1