CN111475178B - 一种嵌入式系统固件烧写的进度计算方法及系统 - Google Patents
一种嵌入式系统固件烧写的进度计算方法及系统 Download PDFInfo
- Publication number
- CN111475178B CN111475178B CN202010576590.8A CN202010576590A CN111475178B CN 111475178 B CN111475178 B CN 111475178B CN 202010576590 A CN202010576590 A CN 202010576590A CN 111475178 B CN111475178 B CN 111475178B
- Authority
- CN
- China
- Prior art keywords
- data
- target board
- partition
- firmware
- board 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
Links
- 238000004364 calculation method Methods 0.000 title claims abstract description 20
- 238000000034 method Methods 0.000 claims abstract description 39
- 238000005192 partition Methods 0.000 claims description 109
- 230000015654 memory Effects 0.000 claims description 32
- 238000004891 communication Methods 0.000 claims description 25
- 238000004806 packaging method and process Methods 0.000 claims description 8
- 238000004519 manufacturing process Methods 0.000 abstract description 15
- 230000006870 function Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请公开了一种嵌入式系统固件烧写的进度计算方法,包括如下步骤。步骤S10:PC机连接目标板卡。步骤S20:PC机计算目标板卡在固件烧写过程中需要处理的数据总量,并在生成固件文件包时写入其中。步骤S30:PC机向目标板卡通知所述需要处理的数据总量。步骤S40:目标板卡接收所述需要处理的数据总量并保存在本地。步骤S50:PC机向目标板卡发送下载命令与下载数据。步骤S60:目标板卡把下载数据写入本地;每擦除本地的一个存储单元,或者每在本地写入一个数据块,都计算已经处理的数据量,并将已经处理的数据量与需要处理的数据总量的比值上报给PC机。步骤S70:PC机接收并显示目标板卡发送的固件烧写的进度量。上述方法能够精确地反映固件烧写的量产进度。
Description
技术领域
本申请涉及一种嵌入式系统的固件烧写方法,特别是涉及一种嵌入式系统在固件烧写过程中计算固件烧写进度的方法。
背景技术
嵌入式系统(embedded system)是一种包含有处理器、存储器、输入和/或输出外围设备的计算机系统,用于在一个较大的机械和/或电气系统中执行专用功能。嵌入式系统的存储器中保存有控制程序。
嵌入式系统在批量生产时,需要将固件(firmware)作为操作系统目标代码烧写到NAND Flash(与非门闪存)、NOR Flash(或非门闪存)、eMMC(embedded MultiMediaCard,嵌入式多媒体卡)等存储器中。固件是固化在存储介质的程序,决定了嵌入式系统的功能和性能。通常固件写入到嵌入式系统后无法被用户直接读出或者修改,如果在烧写过程中数据传输出现异常,就会导致产品无法正常启动,所以烧写的固件要保证安全可靠。
目前可以量产的固件烧写方式有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格式的分区的详细说明。
进一步地,所述步骤S70中,所述显示方式包括绘制以百分比显示的文字、数字、图形中的任一种或多种。这是几种优选示例。
本申请还提出了一种嵌入式系统固件烧写的进度计算系统,包括PC机和至少一个嵌入式系统的目标板卡;在PC机中具有第一串行通信接口、固件打包单元和固件烧写单元;在所述目标板卡中具有第二串行通信接口和下载单元。所述第一串行通信接口与所述第二串行通信接口相连接,从而实现PC机与所述嵌入式系统的目标板卡之间相连接。所述固件打包单元计算与PC机相连接的所述目标板卡在固件烧写过程中需要处理的数据总量,并把所述需要处理的数据总量写入生成的所述目标板卡的固件文件包内。所述固件烧写单元向所述目标板卡通知所述需要处理的数据总量;所述固件烧写单元还向与PC机相连接的所述目标板卡发送下载命令和下载数据;所述固件烧写单元16还接收并显示与PC机相连接的所述目标板卡发送的固件烧写的进度量。所述下载单元接收PC机发送的所述需要处理的数据总量,并保存在与PC机相连接的所述目标板卡本地;所述下载单元还接收并处理PC机发送的所述下载命令和下载数据,并把所述下载数据写入本地的非易失性存储器中;在写入过程中,当所述目标板卡每擦除本地的非易失性存储器的一个单元,或者每在本地的非易失性存储器中写入一个数据块,所述下载单元都计算已经处理的数据量,并将已经处理的数据量与所述需要处理的数据总量的比值作为固件烧写的进度量上报给PC机。上述系统能够精确地反映固件烧写的量产进度。
本申请取得的技术效果是按字节计算需要处理的数据总量、在所述嵌入式系统的目标板卡的本地的非易失性存储器的擦除和写入过程中不断重复计算固件烧写的进度并汇报给PC机,从而精确地反映固件烧写的量产进度。
附图说明
图1是本申请提出的嵌入式系统固件烧写的进度计算方法的流程图。
图2是本申请提出的嵌入式系统固件烧写的进度计算系统的结构示意图。
图中附图标记说明:10为PC机、12为第一串行通信接口、14为固件打包单元、16为固件烧写单元、20为嵌入式系统的目标板卡、22为第二串行通信接口、24为下载单元。
具体实施方式
请参阅图1,本申请提出的嵌入式系统固件烧写的进度计算方法包括如下步骤。
步骤S10:PC机通过串行通信接口连接到某个嵌入式系统的目标板卡的串行通信接口。所述串行通信接口例如是USB接口。
步骤S20:PC机计算所述目标板卡在固件烧写过程中需要处理的数据总量,并在生成的所述目标板卡的固件文件包时将所述需要处理的数据总量写入其中。所述目标板卡的固件文件包通常包括多个镜像文件,还包括配置文件等。
步骤S30:PC机向所述目标板卡通知所述需要处理的数据总量。
步骤S40:所述目标板卡接收所述需要处理的数据总量,并保存在本地。
步骤S50:PC机向所述目标板卡发送下载命令与下载数据。所述下载命令例如是擦除分区的指令、写入分区的指令等。所述下载数据例如是所述目标板卡的固件文件包中的一个个镜像文件。
例如,擦除分区的指令是Erase命令,Erase命令传入的参数是分区名称。程序在执行Erase命令时,按Erase命令的参数提供的分区名称去擦除整个分区。Erase命令可以按所述目标板卡的非易失性存储器的最小擦除单元(例如扇区,sector)来擦除,也可以按所述目标板卡的非易失性存储器的最大擦除单元(例如块,block)来擦除。
又如,写入分区的指令是flash命令,flash命令传入的参数是分区名称。程序在执行flash命令之前,先下载镜像文件的数据到缓存区,然后按flash命令的参数提供的分区名称去擦除整个分区或部分分区,再从缓存区把数据写入已擦除的整个分区或部分分区中。
程序在执行flash命令时,会分析flash命令的参数提供的分区名称的分区类型,也就是文件格式。分区类型通常包括RAW和UBI两种,对应于RAW和UBI两种镜像文件的格式。
RAW格式就是纯粹的二进制的文件,连续地写数据。RAW类型的分区是先按扇区或块擦除,再按页(page)写数据。扇区的典型大小为4KB,块的典型大小为64KB,页的典型大小为256字节。
UBI格式不是连续地写数据的,它的写的单元是一个个peb(physicaleraseblock,物理擦除块),物理擦除块的典型大小为4KB。UBI类型的分区必须一次性擦除整个分区,然后每次按物理擦除块写数据。一个分区由多个物理擦除块组成。在一次性擦除整个分区后,每个物理擦除块的ec(erase counter,擦除计数器)值均加1。然后在写入数据时,会找ec值最小的物理擦除块去写入,其目的是为了使I/O的负载均衡,所以不是连续地写入物理擦除块的。
步骤S60:所述目标板卡接收并处理所述下载命令和下载数据,并把所述下载数据写入本地的非易失性存储器(例如Flash)中。在写入过程中,当所述目标板卡每擦除本地的非易失性存储器的一个单元(例如扇区或块),或者每在本地的非易失性存储器中写入一个数据块(例如一页或一个物理擦除块的数据),都计算已经处理的数据量,并将已经处理的数据量与所述需要处理的数据总量的比值作为固件烧写的进度量上报给PC机。
步骤S70:PC机接收并显示所述目标板卡发送的固件烧写的进度量,显示方式例如是绘制以百分比显示的文字、数字、图形(进度条、饼状图等)。
所述步骤S20中,PC机计算所述目标板卡在固件烧写过程中需要处理的数据总量例如采用如下方式:PC机依次处理所述目标板卡的每一个固件文件的镜像文件,处理完最后一个固件文件的镜像文件后将计算出的需要处理的数据总量记录在生成的固件文件包的配置文件中。所述步骤S30中,PC机向所述目标板卡发送所述配置文件,以告知所述需要处理的数据总量。所述步骤S40中,所述目标板卡接收所述配置文件,以获取所述需要处理的数据总量并保存在本地。
所述步骤S20中,PC机生成的所述目标板卡的固件文件包时,对所述固件文件的每一个镜像文件按照存储单元对齐,并预设目标存储单元数量P。对于RAW格式的镜像文件,存储单元是扇区。对于UBI格式的镜像文件,存储单元是物理擦除块。预设的目标存储单元数量P通常大于该镜像文件的实际大小。例如,某个镜像文件的大小为19个扇区或物理擦除块的大小,但是预设的目标存储单元数量P例如为24个(或29个)扇区或物理擦除块,多出的5个(或10个)扇区或物理擦除块为了实现I/O的负载均衡使用。所述步骤S50中,PC机向所述目标板卡发送下载命令时,对该镜像文件预设的24个目标存储单元中,有19个存储单元对应于写入分区的指令,另有5个存储单元对应于擦除分区的指令。
所述步骤S20中,根据固件文件的每一个镜像文件预设的存储单元的不同操作类型,采用不同的计算方式来计算需要处理的数据总量。
第一种情况,当某个镜像文件的某个存储单元对应于擦除分区的指令,计算需要处理的数据总量时仅叠加该分区的擦除字节数。如果是按照扇区擦除,那么该分区的擦除字节数E就是扇区大小,典型大小为4KB。
第二种情况,当某个镜像文件的某个存储单元对应于写入分区的指令,计算需要处理的数据总量时叠加该分区的擦除字节数以及该镜像文件在该分区的写入字节数。
所述步骤S60中,所述目标板卡将下载数据写入本地的非易失性存储器中。如果下载数据是RAW格式的镜像文件,写入操作按照如下方式执行。目标板卡从PC机下载RAW格式的镜像文件,写入所述目标板卡的非易失性存储器的RAW格式的分区。目标板卡不是擦写整个RAW分区,而是按扇区进行擦除,每擦除一个扇区就重新计算固件烧写的进度量并上报给PC机。然后目标板卡在已擦除的扇区中按页写入数据,每写入一页数据重新计算一次固件烧写的进度量并上报给PC机,直至写满了该已擦除的扇区。目标板卡再擦除一个新的扇区,接着向新的已擦除的扇区中写入数据,如此循环直到完成整个RAW格式的镜像文件的写操作。
所述步骤S60中,所述目标板卡将下载数据写入本地的非易失性存储器中。如果下载数据是UBI格式的镜像文件,写入操作按照如下方式执行。目标板卡从PC机下载UBI格式的镜像文件,写入所述目标板卡的非易失性存储器的UBI格式的分区。目标板卡首先擦除整个UBI分区,例如按扇区进行擦除,每擦除一个扇区就重新计算一次固件烧写的进度量并上报给PC机。擦除完整个UBI分区后,目标板卡开始按物理擦除块写入UBI格式的镜像文件的数据。目标板卡在该UBI分区中每写入一个物理擦除块的数据,重新计算一次固件烧写的进度量并上报给PC机,直至完成整个UBI格式的镜像文件的写操作。
请参阅图2,本申请提出的嵌入式系统固件烧写的进度计算系统包括PC机10和至少一个嵌入式系统的目标板卡20。在PC机10中具有第一串行通信接口12、固件打包单元14和固件烧写单元16。在所述目标板卡20中具有第二串行通信接口22和下载单元24。
所述第一串行通信接口12、第二串行通信接口22例如均为USB接口。所述第一串行通信接口12与所述第二串行通信接口22相连接,从而实现PC机10与所述嵌入式系统的目标板卡20之间相连接。
所述固件打包单元14计算与PC机相连接的所述目标板卡在固件烧写过程中需要处理的数据总量,并把所述需要处理的数据总量写入生成的所述目标板卡的固件文件包内。
所述固件烧写单元16向所述目标板卡通知所述需要处理的数据总量。所述固件烧写单元16还向与PC机相连接的所述目标板卡发送下载命令和下载数据。所述固件烧写单元16还接收并显示与PC机相连接的所述目标板卡发送的固件烧写的进度量。
所述下载单元24接收PC机发送的所述需要处理的数据总量,并保存在与PC机相连接的所述目标板卡本地。所述下载单元24还接收并处理PC机发送的所述下载命令和下载数据,并把所述下载数据写入本地的非易失性存储器中。在写入过程中,当所述目标板卡每擦除本地的非易失性存储器的一个单元,或者每在本地的非易失性存储器中写入一个数据块,所述下载单元24都计算已经处理的数据量,并将已经处理的数据量与所述需要处理的数据总量的比值作为固件烧写的进度量上报给PC机。
以上仅为本申请的优选实施例,并不用于限定本申请。对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (11)
1.一种嵌入式系统固件烧写的进度计算方法,其特征是,包括如下步骤;
步骤S10:PC机通过串行通信接口连接到某个嵌入式系统的目标板卡的串行通信接口;
步骤S20:PC机计算所述目标板卡在固件烧写过程中需要处理的数据总量,并在生成所述目标板卡的固件文件包时将所述需要处理的数据总量写入其中;所述目标板卡的固件文件包中包括多个固件文件的镜像文件;PC机生成所述目标板卡的固件文件包时,对每一个固件文件的镜像文件按照存储单元对齐,并预设目标存储单元数量P;预设的目标存储单元数量P大于该镜像文件的实际大小所占用的存储单元数量,多出的存储单元为了实现I/O的负载均衡;
步骤S30:PC机向所述目标板卡通知所述需要处理的数据总量;
步骤S40:所述目标板卡接收所述需要处理的数据总量,并保存在本地;
步骤S50:PC机向所述目标板卡发送下载命令与下载数据;所述下载命令包括擦除分区的指令、写入分区的指令;实际写入镜像文件的存储单元对应于写入分区的指令,实际不写入镜像文件而是多出的存储单元对应于擦除分区的指令;所述下载数据包括所述目标板卡的固件文件包中的镜像文件;
步骤S60:所述目标板卡接收并处理所述下载命令和下载数据,并把所述下载数据写入本地的非易失性存储器中;在写入过程中,当所述目标板卡每擦除本地的非易失性存储器的一个单元,或者每在本地的非易失性存储器中写入一个数据块,都计算已经处理的数据量,并将已经处理的数据量与所述需要处理的数据总量的比值作为固件烧写的进度量上报给PC机;
步骤S70:PC机接收并显示所述目标板卡发送的固件烧写的进度量。
2.根据权利要求1所述的嵌入式系统固件烧写的进度计算方法,其特征是,所述步骤S10中,所述串行通信接口是USB接口。
3.根据权利要求1所述的嵌入式系统固件烧写的进度计算方法,其特征是,所述步骤S20中,所述目标板卡的固件文件包中还包括配置文件;PC机依次处理所述目标板卡的每一个固件文件的镜像文件,处理完最后一个固件文件的镜像文件后将计算出的需要处理的数据总量记录在生成的固件文件包的配置文件中;
所述步骤S30中,PC机向所述目标板卡发送所述配置文件,以告知所述需要处理的数据总量;
所述步骤S40中,所述目标板卡接收所述配置文件,以获取所述需要处理的数据总量并保存在本地。
4.根据权利要求3所述的嵌入式系统固件烧写的进度计算方法,其特征是,所述步骤S20中,根据每一个固件文件的镜像文件预设的存储单元对应的指令,采用不同的计算方式来计算需要处理的数据总量;
当某个镜像文件的某个存储单元对应于擦除分区的指令,计算需要处理的数据总量时仅叠加该分区的擦除字节数;
当某个镜像文件的某个存储单元对应于写入分区的指令,计算需要处理的数据总量时叠加该分区的擦除字节数以及该镜像文件在该分区的写入字节数。
5.根据权利要求1所述的嵌入式系统固件烧写的进度计算方法,其特征是,所述步骤S50中,所述擦除分区的指令是Erase命令,Erase命令传入的参数是分区名称;在执行Erase命令时,按Erase命令的参数提供的分区名称去擦除整个分区。
6.根据权利要求1所述的嵌入式系统固件烧写的进度计算方法,其特征是,所述步骤S50中,所述写入分区的指令是flash命令,flash命令传入的参数是分区名称;在执行flash命令之前,先下载镜像文件的数据到缓存区,然后按flash命令的参数提供的分区名称去擦除整个分区或部分分区,再从缓存区把数据写入已擦除的整个分区或部分分区中。
7.根据权利要求6所述的嵌入式系统固件烧写的进度计算方法,其特征是,所述步骤S50中,在执行flash命令时,会分析flash命令的参数提供的分区名称的分区类型,分区类型包括RAW和UBI两种,对应于RAW和UBI两种镜像文件的格式;
RAW类型的分区是先按扇区或块擦除,再按页写数据;RAW格式的镜像文件连续地写数据;
UBI类型的分区是一次性擦除整个分区,再按物理擦除块写数据;UBI格式的镜像文件或者连续、或者非连续地写数据。
8.根据权利要求7所述的嵌入式系统固件烧写的进度计算方法,其特征是,所述步骤S60中,如果下载数据是RAW格式的镜像文件,写入操作按照如下方式执行;目标板卡从PC机下载RAW格式的镜像文件,写入所述目标板卡的非易失性存储器的RAW格式的分区;目标板卡按扇区擦除RAW分区,每擦除一个扇区就重新计算固件烧写的进度量并上报给PC机;然后目标板卡在已擦除的扇区中按页写入数据,每写入一页数据重新计算一次固件烧写的进度量并上报给PC机,直至写满了该已擦除的扇区;目标板卡再擦除一个新的扇区,接着向新的已擦除的扇区中写入数据,如此循环直到完成整个RAW格式的镜像文件的写操作。
9.根据权利要求7所述的嵌入式系统固件烧写的进度计算方法,其特征是,所述步骤S60中,如果下载数据是UBI格式的镜像文件,写入操作按照如下方式执行;目标板卡从PC机下载UBI格式的镜像文件,写入所述目标板卡的非易失性存储器的UBI格式的分区;目标板卡首先擦除整个UBI分区,每擦除一个扇区就重新计算一次固件烧写的进度量并上报给PC机;擦除完整个UBI分区后,目标板卡开始按物理擦除块写入UBI格式的镜像文件的数据;目标板卡在该UBI分区中每写入一个物理擦除块的数据,重新计算一次固件烧写的进度量并上报给PC机,直至完成整个UBI格式的镜像文件的写操作。
10.根据权利要求1所述的嵌入式系统固件烧写的进度计算方法,其特征是,所述步骤S70中,所述显示方式包括绘制以百分比显示的文字、数字、图形中的任一种或多种。
11.一种嵌入式系统固件烧写的进度计算系统,其特征是,包括PC机和至少一个嵌入式系统的目标板卡;在PC机中具有第一串行通信接口、固件打包单元和固件烧写单元;在所述目标板卡中具有第二串行通信接口和下载单元;
所述第一串行通信接口与所述第二串行通信接口相连接,从而实现PC机与所述嵌入式系统的目标板卡之间相连接;
所述固件打包单元计算与PC机相连接的所述目标板卡在固件烧写过程中需要处理的数据总量,并把所述需要处理的数据总量写入生成的所述目标板卡的固件文件包内;所述目标板卡的固件文件包中包括多个固件文件的镜像文件;所述固件打包单元生成所述目标板卡的固件文件包时,对每一个固件文件的镜像文件按照存储单元对齐,并预设目标存储单元数量P;预设的目标存储单元数量P大于该镜像文件的实际大小所占用的存储单元数量,多出的存储单元为了实现I/O的负载均衡;
所述固件烧写单元向所述目标板卡通知所述需要处理的数据总量;所述固件烧写单元还向与PC机相连接的所述目标板卡发送下载命令和下载数据;所述下载命令包括擦除分区的指令、写入分区的指令;实际写入镜像文件的存储单元对应于写入分区的指令,实际不写入镜像文件而是多出的存储单元对应于擦除分区的指令;所述下载数据包括所述目标板卡的固件文件包中的镜像文件;所述固件烧写单元还接收并显示与PC机相连接的所述目标板卡发送的固件烧写的进度量;
所述下载单元接收PC机发送的所述需要处理的数据总量,并保存在与PC机相连接的所述目标板卡本地;所述下载单元还接收并处理PC机发送的所述下载命令和下载数据,并把所述下载数据写入本地的非易失性存储器中;在写入过程中,当所述目标板卡每擦除本地的非易失性存储器的一个单元,或者每在本地的非易失性存储器中写入一个数据块,所述下载单元都计算已经处理的数据量,并将已经处理的数据量与所述需要处理的数据总量的比值作为固件烧写的进度量上报给PC机。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010576590.8A CN111475178B (zh) | 2020-06-23 | 2020-06-23 | 一种嵌入式系统固件烧写的进度计算方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010576590.8A CN111475178B (zh) | 2020-06-23 | 2020-06-23 | 一种嵌入式系统固件烧写的进度计算方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111475178A CN111475178A (zh) | 2020-07-31 |
CN111475178B true CN111475178B (zh) | 2020-09-18 |
Family
ID=71763989
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010576590.8A Active CN111475178B (zh) | 2020-06-23 | 2020-06-23 | 一种嵌入式系统固件烧写的进度计算方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111475178B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113327639B (zh) * | 2021-05-26 | 2023-09-15 | 翱捷科技股份有限公司 | 一种基于lvgl的固件存储读取方法及装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107632846B (zh) * | 2017-09-25 | 2019-09-20 | 华为技术有限公司 | 固件升级方法及装置、机框管理模块 |
CN109471822A (zh) * | 2018-10-24 | 2019-03-15 | 中国空空导弹研究院 | 一种基于多类型总线的dsp通用软件烧写装置 |
CN109901851B (zh) * | 2019-02-28 | 2022-07-12 | 广州小鹏汽车科技有限公司 | 一种固件烧录系统和方法 |
CN111008033A (zh) * | 2019-10-30 | 2020-04-14 | 中国航空工业集团公司洛阳电光设备研究所 | 一种基于串口的通用dsp在线升级系统及升级方法 |
-
2020
- 2020-06-23 CN CN202010576590.8A patent/CN111475178B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN111475178A (zh) | 2020-07-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20180260137A1 (en) | Data-storage device and data maintenance method thereof | |
TWI512467B (zh) | 實體儲存對照表維護方法以及使用該方法的裝置 | |
CN110673789B (zh) | 固态硬盘的元数据存储管理方法、装置、设备及存储介质 | |
JPH08195093A (ja) | 不揮発性メモリのファイル管理装置 | |
CN105718281A (zh) | 一种触摸屏固件升级方法及装置 | |
CN103677653A (zh) | 一种基于ssd的数据处理方法及电子设备 | |
CN104765569A (zh) | 数据写入方法、存储器控制电路单元与存储器储存装置 | |
CN111475178B (zh) | 一种嵌入式系统固件烧写的进度计算方法及系统 | |
CN105023612A (zh) | 闪存中的双向计数器 | |
CN109697017B (zh) | 数据储存装置以及非挥发式存储器操作方法 | |
CN1346085A (zh) | 用于嵌入式微控制单元的更新程序码方法 | |
US10628301B1 (en) | System and method for optimizing write amplification of non-volatile memory storage media | |
TWI545433B (zh) | 實體儲存對照表維護方法以及使用該方法的裝置 | |
CN113032246A (zh) | Ssd固件运行方法、装置、可读存储介质及电子设备 | |
TWI457941B (zh) | 區塊為基礎快閃記憶體之位元組存取的方法與裝置 | |
CN111694580B (zh) | 存储设备升级及初始化的方法、装置、电子设备 | |
JP5996129B2 (ja) | 不揮発性半導体マスメモリを安全に消去するための方法、コンピュータシステム、及びコンピュータプログラム | |
US20180329629A1 (en) | Data wiping of solid-state drives | |
CN113868019B (zh) | 一种数据处理方法、装置及相关设备 | |
JP4334331B2 (ja) | フラッシュメモリのアクセス制御方法 | |
US6898680B2 (en) | Minimization of overhead of non-volatile memory operation | |
JP2010205167A (ja) | 不揮発性メモリ、その制御方法及びプログラム | |
US8200611B2 (en) | File system and data management method | |
CN112433892B (zh) | 存储器验证方法及存储器验证系统 | |
CN116994636B (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 | ||
CP03 | Change of name, title or address |
Address after: 201203 Floor 9, building 10, No. 399, Keyuan Road, China (Shanghai) free trade pilot zone, Pudong New Area, Shanghai Patentee after: Aojie Technology Co., Ltd Address before: 201203 No. 399, Keyuan Road, Zhangjiang High-tech Park, Pudong New Area, Shanghai Patentee before: Aojie Technology (Shanghai) Co.,Ltd. |
|
CP03 | Change of name, title or address |