汽车存储芯片模组中预置资源完整性的控制方法与流程

文档序号:27317701发布日期:2021-11-10 00:10阅读:145来源:国知局
1.本发明涉及一种预置资源的控制方法,尤其是汽车存储芯片模组中预置资源完整性的控制方法。
背景技术
::2.汽车组装厂对于上游采购带存储芯片的模组,经常有预置特定资源的需求,比如汽车对采购的4g核心板有预置地图资源的需求,模组厂在预置资源时,经常会出现预置的资源文件不完整,比如文件损坏或文件数目不完整等情况,导致下游无法使用。技术实现要素:3.为解决上述问题,本发明提供一种汽车存储芯片模组中预置资源完整性的控制方法,通过对相应的预置资源生成md5值,并根据该值对拷贝后的预置资源进行校验,进而保证文件的完整性,操作方便、可靠,具体技术方案为:为解决上述问题,本发明提供一种汽车存储芯片模组中预置资源完整性的控制方法,通过对相应的预置资源生成md5值,并根据该值对拷贝后的预置资源进行校验,进而保证文件的完整性,操作方便、可靠,具体技术方案为:汽车存储芯片模组中预置资源完整性的控制方法,包括以下步骤:s1、针对要预置资源的每个文件生成md5值的数据库,并记录文件总数;s2、每递归拷贝完一个文件进行一次md5值校验;s3、拷贝完成后对已拷贝文件总数进行计数统计,并比较拷贝文件的总数是否一致;s4、模组系统软件重启一次;s5、模组系统软件重启后,重新从emmc递归回读预置资源的每个文件,并重新进行一次md5值校验和已读回文件总数的判断;s6、在二次md5值检测通过和文件总数正确的情况下,判定预置资源流程正常,并结束。4.优选的,所述步骤s1中,将md5值以键值对的形式保存到固定文件中,以每个文件的相对路径为key,并记录预制资源的总文件数。5.优选的,所述步骤s2中,计算已写入文件的md5值,并与数据库中对应文件的md5值进行比较。6.优选的,所述步骤s3中,通过计数器filenum统计拷贝文件的总数,将已拷贝文件中个数的计数器filenum统计的文件总数与记录在模组系统软件中总文件数进行比较。7.优选的,所述步骤s1包括以下步骤:s10、将预置资源中的每个文件均生成相对应的md5值;s20、将生成的所有md5值以键值对的形式保存到固定文件中,得到md5值文件,md5值文件以每个文件的相对路径为key;s30、将该固定的md5值文件预置到拷贝模组的存储芯片中;s40、统计预制资源的总文件数,并将预置资源的总文件数记录在拷贝模组的系统软件中;s50、拷贝模组的系统软件开机后,将拷贝模组的存储芯片中的md5值文件中的md5值逐一导入程序数据库;以文件相对路径为数据库中表的关键字;s60、记录已拷贝文件个数的计数器filenum置0;所述步骤s2包括以下步骤:s70、从工装夹具u盘中的指定路径下递归读取预置资源文件;s80、判断是否是文件夹,若是文件夹则进入到s90,否则进入s81;s81、进入文件夹递归读取下一个文件,并进入s80;s90、循环读取工装夹具u盘中预置资源的一个文件,并写入汽车模组的存储芯片的指定路径;s100、判断该文件是否读取完毕,若该文件读取完毕则进入s110,否则返回s90;s110、计算已写入汽车模组的存储芯片中的该文件的md5值;s120、将计算所得的md5值与数据库中该文件的md5值进行比较;s130、判断md5值是否相等,若md5值相等则进入s140,否则进入s131;s131、文件拷贝出错,停止预置资源拷贝流程,并在工装夹具显示屏幕上弹框提示失败信息,并结束;s140、已拷贝文件个数的计数器filenum加1;s150、判断递归是否结束,若结束则进入s160,否则返回s70;所述步骤s3包括以下步骤:s160、已拷贝文件个数的计数器filenum记录的文件总数与记录在拷贝模组的系统软件中的预制资源的文件总数进行比较;s170、比较已拷贝文件中的总数与预制资源的文件的总数是否相等,若相等则进入s180,否则进入s171;s171、提示资源总个数不正确,资源预置失败,并结束;所述步骤s4包括以下步骤:s180、重启拷贝模组的系统软件;s190、将已复制资源文件总数filenum置0;并将固定文件中的md5值重新生成数据库;所述步骤s5包括以下步骤:s200、递归从汽车模组的存储芯片中读取文件,并针对每个文件重新计算md5值,并与数据库中的md5值进行比对;s210、判断md5值是否相等,若md5值相等则进入s220,否则进入s211;s211、文件拷贝出错,停止预置资源拷贝流程,在工装夹具显示屏幕上弹框提示失败信息,并结束;s220、已拷贝文件个数的计数器filenum加1;s230、判断递归是否结束,若结束则进入s240,否则返回s200;所述步骤s6包括以下步骤:s240、已拷贝文件个数的计数器filenum记录的已复制在汽车模组的存储芯片中的资源文件的总数与拷贝模组的系统软件中记录的预置的文件的总数进行比较;s250、若汽车模组的存储芯片的资源文件总数与预置文件总数相等则进入s260,否则进入s251;s251、提示资源总个数不正确,资源预置失败;s260、提示资源预置成功。8.优选的,所述步骤s50中,数据库中保存有文件名为“md5”的table表,该表共有两个字段,分别为path和md5,所述path用于记录路径,所述md5用于记录md5值。9.与现有技术相比本发明具有以下有益效果:本发明提供的汽车存储芯片模组中预置资源完整性的控制方法通过对相应的预置资源生成md5值,并根据该值对拷贝后的预置资源进行校验,进而保证文件的完整性,操作方便、可靠。附图说明10.图1是汽车存储芯片模组中预置资源完整性的控制方法的流程图;图2是实施例一第一部分的流程图;图3是实施例一第二部分的流程图;图4是实施例一第三部分的流程图;图5是实施例一第四部分的流程图。具体实施方式11.现结合附图对本发明作进一步说明。12.模组的系统软件在拷贝预置资源的过程中,先对预置资源生成md5数据库,然后验证每个已拷贝文件的md5值是否一致,以及最终已拷贝文件的总个数是否一致,在两者都确认一致的情况下,重启一次模组的系统软件,然后再次对已预置进模组存储芯片中的文件重新进行回读,并计算生成md5值,将生成的md5值与数据库中的md5值进行比对,同时重新统计已预置进模组存储芯片中的文件总个数是否正确,再次判断文件的完整性,从而保证预置资源的完整。13.如图1所示,汽车存储芯片模组中预置资源完整性的控制方法,包括以下步骤:s1、针对要预置资源的每个文件生成md5值的数据库,并记录文件总数;s2、每递归拷贝完一个文件进行一次md5值校验;s3、拷贝完成后对已拷贝文件总数进行计数统计,并比较拷贝文件的总数是否一致;s4、模组系统软件重启一次;s5、模组系统软件重启后,重新从emmc递归回读预置资源的每个文件,并重新进行一次md5值校验和已读回文件总数的判断;s6、在二次md5值检测通过和文件总数正确的情况下,判定预置资源流程正常,并结束。14.bird:md5英语全称为message‑digestalgorithm,信息摘要算法。是一种被广泛使用的密码散列函数,针对文件内容可以产生出一个128位的散列值,用于确保信息传输完整一致。15.md5值是非常成熟的算法,因此,各大平台软件库都有成熟的接口可直接生成相关文件的md5值,非常方便快捷。16.emmc英文全称为embeddedmultimediacard,嵌入式多媒体卡。主要应用于对存储容量有较高要求的电子产品。如果校验不通过,会终止资源预置流程,并在产线工装夹具显示屏上进行信息提示,对该模组在产线上进行拦截。17.整个流程开始拷贝前,系统软件确实会先确认下u盘上的资源对不对,若不对,就直接推出流程,不能进行拷贝。18.实施例一对高德地图3.0车机版地图资源进行预置,如图2至图5所示,汽车存储芯片模组中预置资源完整性的控制方法,包括以下步骤:s10、将预置资源中的每个文件均生成相对应的md5值;每个文件的md5值可以通过ubuntu操作系统的标准系统命令md5sum进行生成,每个文件的md5值均由32位的16进制字符组成;由于md5值的算法是标准的,因此,这里通过操作系统md5sum命令生成的md5和后面通过java标准类库提供软件接口生成的md5值是一致的;s20、将生成的所有md5值以键值对的形式保存到固定文件中,得到md5值文件,md5值文件以每个文件的相对路径为key;md5保存为txt文件,保持路径为:system/etc/data/md5.txt;鉴于每个文件的相对路径都是唯一的,后续在依据该文件自动生成数据库table表时,可以方便地以每个文件的相对路径作为查询table表的关键字,可以提高查询数据库table表读取指定文件的md5值的准确性和效率;s30、将该固定的md5值文件预置到拷贝模组的存储芯片中;该md5值文件md5.txt是由模组芯片的烧录工具随模组系统软件一起烧录到拷贝模组的存储芯片的指定区域中,即,指定烧录到存储芯片的/system/etc/data/区域;s40、统计预制资源的总文件数,并将预置资源的总文件数记录在拷贝模组的系统软件中;高德地图3.0车机版地图资源总文件个数为1868个,总大小为12.4g;s50、拷贝模组的系统软件开机后,将拷贝模组的存储芯片中的md5值文件中的md5值逐一导入程序数据库;以文件相对路径为数据库中表的关键字;数据库中最终存在一张名为“md5”的table表,该表共有两个字段,分别取名为“path”和“md5”,例如高德地图3.0车机版地图资源中的m1.ans这个文件,该文件在名为“md5”表中对应的一条记录为(amapauto9/data/navi/compile_v2/chn/a0/m1.ans,f87a28d6b81a4cb1d8cbf089496aa030),也就是“path”字段的值为“amapauto9/data/navi/compile_v2/chn/a0/m1.ans”,“md5”字段的值为“f87a28d6b81a4cb1d8cbf089496aa030”;s60、记录已拷贝文件个数的计数器filenum置0;这里是正式拷贝预置资源前的准备工作,filenum这个变量用于记录已拷贝完成的文件总个数,相当于一个计数器,开始拷贝前初始化值为0,每拷贝完成一个文件,filenum自动加1,拷贝结束时,记录的就是总的已拷贝文件总个数;例如,若高德地图3.0车机版地图资源正常拷贝结束的话,filenum的值将为1868;s70、从工装夹具u盘中的指定路径下递归读取预置资源文件;s80、判断是否是文件夹,若是文件夹则进入到s90,否则进入s81;s90、循环读取工装夹具u盘中预置资源的一个文件,并写入汽车模组的存储芯片的指定路径;指定路径由下游客户提供,高德地图3.0车机版地图资源的预置路径是存储芯片resources分区的amapauto9目录下;s100、判断文件是否读取完毕,若文件读取完毕则进入s110,否则返回s90;判断文件是否读取完毕时,以java类库fileinputstream类的read接口返回值为0时认为读取完毕;s110、计算已写入汽车模组的存储芯片中的该文件的md5值;采用java标准类库java.security.messagedigest类中的update方法和digest方法来进行md5值计算;s120、将计算所得的md5值与数据库中对应文件的md5值进行比较;s130、判断md5值是否相等,若md5值相等则进入s140,否则进入s131;s140、已拷贝文件个数的计数器filenum加1;s150、判断递归是否结束,若结束则进入s160,否则返回s70;s160、已拷贝文件个数的计数器filenum记录的文件总数与记录在拷贝模组的系统软件中的预制资源的文件总数进行比较;s170、计算与总文件数是否相等,若相等则进入s180,否则进入s171;此时拷贝结束时,filenum记录的是已拷贝的文件总个数,若高德地图3.0车机版地图资源拷贝完整,则此时filenum的值为1868,若高德地图3.0车机版地图资源拷贝不完整,filenum的值将小于1868;s180、重启拷贝模组的系统软件;s190、将已复制资源文件总数filenum置0;并将固定文件中的md5值重新生成数据库;这里固定文件中的md5值还是之前预置在存储芯片/system/etc/data/md5.txt的这个文件的md5值,重新生成数据库是因为在s180步骤中,系统进行了重启,之前生成在内存中的数据库因为系统重启而消失,系统重新运行后,数据库数据需要重新生成;s200、递归从汽车模组的存储芯片中读取文件,并针对每个文件重新计算md5值,并与数据库中的md5值进行比对;s210、判断md5值是否相等,若md5值相等则进入s220,否则进入s211;s220、已复制资源文件总数filenum加1;s230、判断递归是否结束,若结束则进入s240,否则返回s200;s240、已拷贝文件个数的计数器filenum记录的已复制在汽车模组的存储芯片中的资源文件的总数与拷贝模组的系统软件中记录的预置的文件的总数进行比较;s250、若资源文件总数与预置文件总数相等则进入s260,否则进入s251;s260、提示资源预置成功;s81、进入文件夹递归读取下一个文件,并进入s80;s131、文件拷贝出错,停止预置资源拷贝流程,并在工装夹具显示屏幕上弹框提示失败信息,并结束;s171、提示资源总个数不正确,资源预置失败,并结束;s211、文件拷贝出错,停止预置资源拷贝流程,在工装夹具显示屏幕上弹框提示失败信息,并结束;s251、提示资源总个数不正确,资源预置失败。19.指定路径是由具体需求决定的。例如如果预置的资源是供高德地图车机版app使用的全国地图包,那这个路径就是和高德约定的amapauto9这个文件夹目录路径;如果预置的资源是供百度地图app使用的全国地图资源包,那这个路径就是和百度约定的map这个文件夹目录路径。即这里的“指定路径”是根据具体的资源预置需求跟需求方一起约定的一个资源存放路径,是随需求变化而变化的,针对每一个具体的需求又是固定的。20.filenum相当于一个计数器,在正式拷贝前初始值为0,在拷贝的过程中,每拷贝完一个文件,filenum计数器加1,正常情况下,等拷贝结束时,filenum计数器的值和文件总个数相等,若不相等,则说明文件拷贝不完整。21.对于步骤s90中在实际生产中,低概率出现数据并未写入存储芯片模组中的情况,而又无法发现问题如何产生的。22.整个预置资源的拷贝过程,是由模组中的系统软件完成的,任何操作系统在往物理存储介质写数据时,都有缓存的机制,即写数据时都是先写在高速缓存区域,再由系统调度最终写入物理存储介质;在实际产线生产过程中,工人只要见到显示设备上的“地图拷贝完成”弹框会立即断开电源,从工装夹具中取下模组使其迅速流入下一个工位;为了防止已拷贝的数据还在缓存中,未正式写入物理的存储芯片,因此加了一个软件重启的环节,确保缓存中的数据能最终都写入物理的存储芯片,解决了低概率出现数据并未最终写入存储芯片模组中的情况。23.步骤s200中,重新计算的md5值,是针对已经拷贝到存储芯片上的预置资源进行回读计算得到的,跟步骤s110中的md5值的区别是:步骤s110是在系统软件认为已往存储芯片写入完一个文件后进行的md5值计算,而步骤s200是在系统认为所有资源已拷贝完成并且重启系统后重新从存储芯片回读每个文件时进行的md5值计算,是为了确保所有的数据确实已从缓存写入了物理存储芯片。步骤s110中计算md5值是为了确保当时写入的文件完整正确,而s200中计算md5值是为了保证之前写入的文件确实都由缓存写入到了物理存储芯片上,从而保证资源的完整性。24.重启前后两次生成数据库的固定文件md5值,只有一份,即通过模组芯片烧录工具随模组系统软件一起烧录在存储芯片指定位置/system/etc/data/md5.txt的这份文件。这份md5值和需要预置的资源文件是一一对应的关系,也是唯一的比对依据。生成数据库只是为了将数据从读写速度比较低的存储芯片导入读写速度比较高的内存中,并从文本的格式转换为数据库的格式,目的是为了加快比对过程。25.通过上述方案能够保证预制的地图的完整性,从而保证模组厂预制资源的可靠性和完整性,汽车销售后导航地图能够正常使用。26.以上结合具体实施例描述了本发明的技术原理。这些描述只是为了解释本发明的原理,而不能以任何方式解释为对本发明保护范围的限制。基于此处的解释,本领域的技术人员不需要付出创造性的劳动即可联想到本发明的其它具体实施方式,这些方式都将落入本发明权利要求的保护范围之内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1